semmelbroesel
07-12-2002, 10:37
hi
ich hab einen algorithmus geschrieben der 2 mysql tabellen gleichzeitig abfragt und dann ein assoziatives array mit teilen aus beiden tabellen zurueckgibt.
mein problem ist, das bei folgendem code die innere while-schleife nur beim 1. durchlauf der aeusseren genutzt wird.
bei jedem weiteren durchlauf wird die innere schleife scheinbar ignoriert.
hier ist der code:
function show($theme_id)
{
global $MYSQL_DATA;
mysql_connect($MYSQL_DATA["con"]["host"],$MYSQL_DATA["con"]["user"],$MYSQL_DATA["con"]["pwd"]);
mysql_select_db($MYSQL_DATA["dbs"]["board"]);
if($theme_id == "all")
{
$query_themes = "SELECT id, title FROM themes ;";
}
else
{
$query_themes = "SELECT id, title FROM themes WHERE id=$theme_id;";
}
$query_categories = "SELECT id, theme_id, title FROM categories ";
$result_themes = mysql_query($query_themes);
$result_categories = mysql_query($query_categories);
if(mysql_num_rows($result_themes)>0)
{
$return = array();
$category = array();
$i = 0;
while($fetched_themes=mysql_fetch_object($result_t hemes))
{
$j = 0;
while($fetched_categories=mysql_fetch_object($resu lt_categories))
{
if($fetched_themes->id == $fetched_categories->theme_id)
{
$category[$j] = array(
"id"=>$fetched_categories->id,
"title"=>$fetched_categories->title
);
}
$j++;
}
if(count($category)==0)
{
$category = false;
}
$return[$i] = array(
"id"=>$fetched_themes->id,
"title"=>$fetched_themes->title,
"category"=> $category
);
$i++;
}
}
else
{
$return = mysql_errno().": ".mysql_error();
}
mysql_close();
return $return;
}
ich hab einen algorithmus geschrieben der 2 mysql tabellen gleichzeitig abfragt und dann ein assoziatives array mit teilen aus beiden tabellen zurueckgibt.
mein problem ist, das bei folgendem code die innere while-schleife nur beim 1. durchlauf der aeusseren genutzt wird.
bei jedem weiteren durchlauf wird die innere schleife scheinbar ignoriert.
hier ist der code:
function show($theme_id)
{
global $MYSQL_DATA;
mysql_connect($MYSQL_DATA["con"]["host"],$MYSQL_DATA["con"]["user"],$MYSQL_DATA["con"]["pwd"]);
mysql_select_db($MYSQL_DATA["dbs"]["board"]);
if($theme_id == "all")
{
$query_themes = "SELECT id, title FROM themes ;";
}
else
{
$query_themes = "SELECT id, title FROM themes WHERE id=$theme_id;";
}
$query_categories = "SELECT id, theme_id, title FROM categories ";
$result_themes = mysql_query($query_themes);
$result_categories = mysql_query($query_categories);
if(mysql_num_rows($result_themes)>0)
{
$return = array();
$category = array();
$i = 0;
while($fetched_themes=mysql_fetch_object($result_t hemes))
{
$j = 0;
while($fetched_categories=mysql_fetch_object($resu lt_categories))
{
if($fetched_themes->id == $fetched_categories->theme_id)
{
$category[$j] = array(
"id"=>$fetched_categories->id,
"title"=>$fetched_categories->title
);
}
$j++;
}
if(count($category)==0)
{
$category = false;
}
$return[$i] = array(
"id"=>$fetched_themes->id,
"title"=>$fetched_themes->title,
"category"=> $category
);
$i++;
}
}
else
{
$return = mysql_errno().": ".mysql_error();
}
mysql_close();
return $return;
}