Menu a tendina

  • Creatore Discussione Creatore Discussione minatore
  • Data di inizio Data di inizio

minatore

Utente Attivo
25 Set 2007
410
0
0

Ciao a tutti, chiedo un parere a chi ne sa più di me, se questa cosa è fattibile.
Avete presente il classico menù a tendina, uno va sopra il menù e sotto appare un altro menù, io ho una cosa del genere, se lo lascio statico funziona, mentre se lo rendo dinamico mi crea dei problemi.
Ho 2 tabelle
MENU
id_menu
titolo_menu
SMENU
id_smenu
titolo_smenu
id_menu
ho fatto questo script
PHP:
<table cellspacing="0" cellpadding="0" border='0'>
	<tr>
		<?php
		$query_menu=mysql_query("SELECT * FROM menu")
		or die("Errore nella query_menu;".mysql_error());
		while($ris=mysql_fetch_assoc($query_menu))
			{
				echo"
				<td align='center'>
					<ul id='jsddm'>
						<li>
					 		<a href='#'>$ris[titolo_menu]</a>
							<ul>";
								$query=mysql_query("SELECT * FROM smenu
								WHERE id_menu='1'")
								or die("Errore nella query;".mysql_error());
								while($ris_2=mysql_fetch_assoc($query))
									{
										echo"
											<li>
												<a href='#'>$ris_2[titolo_smenu]</a>
											</li>"; 	
									}
							echo"
							</ul>
						</li>
					</ul>
				</td>
				<td>|</td>";
			}
		?>
	</tr>
</table>
PHP:
WHERE id_menu='1'"
così funziona, ma il lavoro non va bene, in quanto visualizza solo una voce del menu quella con id_menu=1
cosa dovrei mettere al posto del numero 1
Grazie da minatore
 
Tu intendi stamparli tutti? In tal caso ti basterebbe togliere la condizione WHERE e fare un semplice select
 
Tu intendi stamparli tutti? In tal caso ti basterebbe togliere la condizione WHERE e fare un semplice select

Ciao e grazie per la risposta, ma se tolgo la condizione, non riesco a comporre il sottomenu,
il primo while mi elenca il menu, il secondo invece dovrebbe compormi il sottomenu tenendo conto dell'id del primo.
Ciao
 

Ciao e grazie per la risposta, ma se tolgo la condizione, non riesco a comporre il sottomenu,
il primo while mi elenca il menu, il secondo invece dovrebbe compormi il sottomenu tenendo conto dell'id del primo.
Ciao

hai provato cosi?

Codice:
SELECT * FROM smenu ORDER BY id_menu ASC
 
Ho letto ora che devono essere dipendenti fra di loro, sorry, allora non potresti selezionarlo dal fetch del primo while?

Cioè una cosa del genere

PHP:
$query=mysql_query("SELECT * FROM smenu 
                                WHERE id_menu='".$ris['id_menu']."'")
 
hai provato cosi?

Codice:
SELECT * FROM smenu ORDER BY id_menu ASC

Ciao, forse sono stato poco chiare e me ne scuso,
ho un menu che carico dal db
pippo(id_1) - pluto(id_2)
adesso a pippo è associato un sottomenu tramite id_menu anche questo lo carica da db, infatti nel primo post ho elencato le 2 tabelle, quando mi posiziono su pippo mi dovrebbe apparire il sottomenu associato a pippo
tipo
pippo
---casa
---terra
---barca
mentre se mi posizione su pluto mi dovrebbe apparire il sottomenu associato a pluto e cioè con id_2

Grazie da minatore
 

Ciao, facendo così ottengo il risultato sperato solo sul primo elemento del menu
PHP:
<?php
		$query_menu=mysql_query("SELECT * FROM menu")
		or die("Errore nella query_menu;".mysql_error());
		while($ris=mysql_fetch_assoc($query_menu))
			{
				echo"
				<td align='center'>
					<ul id='jsddm'>
						<li>
					 		<a href='index.php?settore=storia&id=$ris[id_menu]'>$ris[id_menu]</a>
							<ul>"; 
								$query=mysql_query("SELECT * FROM smenu
								WHERE id_menu='$ris[id_menu]'")
								or die("Errore nella query;".mysql_error());
								while($ris_2=mysql_fetch_assoc($query))
									{
										echo"
											<li>
												<a href='#'>$ris_2[titolo_smenu]</a>
											</li>"; 	
									}
							echo"
							</ul>
						</li>
					</ul>
				</td>
				<td>|</td>";
			}
		?>
 
Stampando singolarmente $ris[id_menu] che risultato viene ogni volta? Nei risultati dopo il primo che cosa viene stampato?
 
12.png13.png
Stampando singolarmente $ris[id_menu] che risultato viene ogni volta? Nei risultati dopo il primo che cosa viene stampato?

PHP:
$ris[id_menu]
Lo stampo la prima volta per farmi ritornare i dati dalla tabella menu ed ottengo
id_menu(1) | id_menu(2) |
Spero di aver capito bene la tua domanda, ho postato 2 immagini per farti vedere cosa accade, nella prima mi posiziono sul numero 3 e mi appare il sottomenu, nella seconda mi posiziono su qualsiasi elemento successivo al 3 e non succede nulla
Ciao
 
Ultima modifica:
Vedi l'allegato 1340Vedi l'allegato 1341

PHP:
$ris[id_menu]
Lo stampo la prima volta per farmi ritornare i dati dalla tabella menu ed ottengo

Spero di aver capito bene la tua domanda, ho postato 2 immagini per farti vedere cosa accade, nella prima mi posiziono sul numero 3 e mi appare il sottomenu, nella seconda mi posiziono su qualsiasi elemento successivo al 3 e non succede nulla
Ciao
Senza che vengano inseriti nel menu, i titoli vengono stampati? Quindi non mettendolo fra i tag, oppure controlla il sorgente potrebbe essere un problema del css o di qualche tag non chiuso
 

Ciao, ho provato ed tutto bene, secondo me il problema è nel codice, perchè ho provato a cambiare la query in
PHP:
$query=mysql_query("SELECT * FROM smenu
								WHERE id_menu='4'")
								or die("Errore nella query;".mysql_error());
ma l'azione è sempre sul primo elemento del menu, in quanto il numero 4 è l'id del secondo elemento, comunque ci lavorerò sopra per vedere cosa non va.
Se qualcuno degli amici del forum mi darà una mano la accetto volentieri.
Ciao da minatore
 

Discussioni simili