- Home
- Categorie
- Coding e Sistemistica
- Coding
- Problema con menù a categorie
-
Problema con menù a categorie
Salve ragazzi, il codice che sto cercando di fare funzionare è questo:
//CATEGORY SELECT GOES FROM HERE mysql_select_db("cms",$connection); $query=mysql_query("SELECT * FROM pcategory") or die ("Query error: " . mysql_error()); //TO HERE while($fetch=mysql_fetch_array($query)) { $id=$fetch['id']; $name=$fetch['name']; $sql=mysql_query("SELECT * FROM pages WHERE id='$id' or puser='$name' LIMIT 500") or die ("Query error: " . mysql_error()); $fetcha=mysql_fetch_array($sql); print '<br />'; print '<b>- ' . $fetch['name'] . ' -</b><br />'; print '<a href="p/' . $fetcha['title'] . '.php">' . $fetcha['title'] . '</a>'; } ```In pratica si dovrebbe visualizzare un menù diviso per categorie e ogni categoria contiene varie pagine che le vengono assegnate. Il problema è che le pagine vengono assegnate a caso partendo dalla prima categoria e massimo una per categoria... cosa sto sbagliando nello script?
-
Ad una prima occhiata manca il ciclo while all'altezza della seconda query.
-
L'ho modificato aggiungendo il secondo ciclo while:
//CATEGORY SELECT GOES FROM HERE mysql_select_db("cms",$connection); $query=mysql_query("SELECT * FROM pcategory") or die ("Query error: " . mysql_error()); //TO HERE while($fetch=mysql_fetch_array($query)) { $id=$fetch['id']; $name=$fetch['name']; $sql=mysql_query("SELECT * FROM pages WHERE content='$id' or puser='$name'") or die ("Query error: " . mysql_error()); print '<br />'; print '<b>- ' . $fetch['name'] . ' -</b>'; print '<br />'; while($fetcha=mysql_fetch_array($sql)) { print '<a href="p/' . $fetcha['title'] . '.php">' . $fetcha['title'] . '</a>'; } }
Il problema è che visualizza massimo una pagina per categoria, per esempio se io assegno alla prima categoria 2 pagine lui trova la prima, si visualizza e si ferma. Se la cetegoria sotto è vuota la visualizza li altrimenti niente. Come posso fare per fargli continuare la cerca dopo che ha trovato il primo risultato fino al fondo della tabella?
max
-
Ciao, prova a usare questo codice:
$categoria = "SELECT * FROM pcategory";
mysql_select_db("cms",$connection);
$sel_categoria=mysql_query($categoria, $connection) or die(mysql_error());
$row_sel_categoria = mysql_fetch_assoc($sel_categoria);
$totalRows_sel_categoria = mysql_num_rows($sel_categoria);if ($totalRows_sel_categoria > 0) { // Show if recordset not empty
do {
$id = $row_sel_categoria['id'];
$name=$row_sel_categoria['name'];print '<br />'; print '<b>- ' . $name . ' -</b>'; print '<br />'; $pagine = "SELECT * FROM pages WHERE content=".$id." or puser='".$name."'": $sel_pagine=mysql_query($pagine, $connection) or die(mysql_error()); $row_sel_pagine = mysql_fetch_assoc($sel_pagine); $totalRows_sel_pagine = mysql_num_rows($sel_pagine); if ($totalRows_sel_pagine > 0) { // Show if recordset not empty do { $title = $row_sel_pagine['title']; print '<a href="p/'.$title.'.php">'.$title.'</a>'; } while ($row_sel_pagine = mysql_fetch_assoc($sel_pagine));
} while ($row_sel_categoria = mysql_fetch_assoc($sel_categoria));
} // Show if recordset not empty ?>
if ($totalRows_sel_categoria == 0) { // Show if recordset empty
} // Show if recordset empty