menu dinamico

  • Creatore Discussione Creatore Discussione vide91
  • Data di inizio Data di inizio

vide91

Nuovo Utente
31 Mag 2012
26
0
0
Salve,
vorrei creare un menu dinamico di oggetti (es. ebay)...cliccando sul nome o descrizione vorrei aprire un'altra pagina dove comprarla...ecc.ecc. ma a quello ci penso dopo...io per ora sono capace solo di stampare due vettori uno accanto all'altro sto distante molto dalla soluzione ...qualcuno può darmi una mano...?
PHP:
<?php                                                                  
mysql_connect("localhost", "root", "root") or die(mysql_error());  
mysql_select_db("risorsa") or die(mysql_error()); 


function ricercanome() 
{ 
$query="SELECT (nome) FROM risorsa"; 
$risultati=mysql_query($query);     
$num=mysql_numrows($risultati);   
$i=0; while ($i < $num) {                           
$nome=mysql_result($risultati,$i,"nome");               
echo "<br>$nome</b><br>"; 
$i++; }     
}  



function ricercadescrizione() 
{ 
$queryid="SELECT (descrizione) FROM risorsa"; 
$risultatiid=mysql_query($queryid);     
$numid=mysql_numrows($risultatiid);   
$iid=0; while ($iid < $numid) {                  
$descrizione=mysql_result($risultatiid,$iid,"descrizione");               
echo "<br>$descrizione</b><br>"; 
$iid++; }    
 } 




<div> 
         
<table> 
<tr><tr><td width="45%"> Nome </td><td width = "75%">Descrizione</td> 
tr><tr><td><?php ricercanome() ?></td><td><?php ricercadescrizione() ?></td>         

</table> 
</div>

come posso far diventare gli elementi di un vettore link?
 
Intanto ti consiglio di sistemare quello script:
PHP:
<?php
mysql_connect('localhost', 'root', 'password') or die(mysql_error());
mysql_select_db('database') or die(mysql_error());

echo <<<EOF
<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Nome</th>
            <th>Descrizione</th>
        </tr>
    </thead>
    <tbody>
EOF;

$sql = 'SELECT id, nome, descrizione FROM tabella';
$query = mysql_query($sql) or die(mysql_error());

while ($row = mysql_fetch_assoc($query)) {
    echo <<<EOF
        <tr>
            <td>{$row['id']}</td>
            <td><a href="view.php?id={$row['id']}">{$row['nome']}</a></td>
            <td>{$row['descrizione']}</td>
        </tr>
EOF;
}

echo <<<EOF
    </tbody>
</table>
EOF;
?>
Ora, come vedi, il nome del prodotto porta alla pagina view.php, alla quale è passato l'ID come parametro dell'URL.

Quello che dovrai fare nella pagina view.php è recuperare l'ID ($_GET['id']), e selezionare la relativa riga dal database, per poi visualizzare le informazioni sul singolo prodotto.

Ti consiglio inoltre di leggerti un buon manuale di PHP, perché:
  • l'estensione mysql è deprecata;
  • le funzioni si usano per codice ripetitivo, non come fai tu;
  • è sconsigliato mischiare PHP e HTML nella stessa pagina;
  • i tuoi script sono illeggibili;
 
grazie..per i consigli...però il tuo script non mi sta funzionando mi da errore "Parse error: syntax error, unexpected T_SL in C:\Program Files (x86)\EasyPHP-5.3.9\www\risorsa\sito.php on line 5"...vedo se intanto riesco a trovare l'errore io...solo che non lo mai visto....comunque ci stanno manuali on-line?...io ne ho letto un libro ma era troppo di base base..cioè non faceva tutti i giochetti che volevo fare con le pagine html ecc ecc...me ne sai indicare qualcuno??
Grazie mille ancora
 
ri-posto il tuo codice...non sto riuscendo a trovare quell'errore:crying:
PHP:
<?php 
mysql_connect('localhost', 'root', 'root') or die(mysql_error()); 
mysql_select_db('risorsa') or die(mysql_error()); 
echo<<<EOF; 
<table> 
    <thead> 
        <tr> 
            <th>ID</th> 
            <th>Nome</th> 
            <th>Descrizione</th> 
        </tr> 
    </thead> 
    <body> 
EOF; 

$sql='SELECT id_risorsa, nome, descrizione FROM risorsa'; 
$query = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_assoc($query)){ 
    echo <<<EOF 
        <tr> 
            <td>{$row['id_risorsa']}</td> 
            <td><a href="descrizione.php?id_risorsa={$row['id_risorsa']}">{$row['nome']}</a></td> 
            <td>{$row['descrizione']}</td> 
        </tr> 
EOF; 
} 
echo<<<EOF;
    </body> 
</table> 
EOF; 
?>
 
@vide91
Togli quel punto e virgola dall'apertura della sintassi heredoc ("<<<EOF" non "<<<EOF;")

@Ale
l'estensione mysql non è deprecata, più semplicemente non è raccomandata per i nuovi script; in futuro lo sarà (Long term deprecation announced).
 
così gisuto?
PHP:
<?php 
mysql_connect('localhost', 'root', 'root') or die(mysql_error()); 
mysql_select_db('risorsa') or die(mysql_error()); 
echo <<<EOF
<table> 
    <thead> 
        <tr> 
            <th>ID</th> 
            <th>Nome</th> 
            <th>Descrizione</th> 
        </tr> 
    </thead> 
    <body> 
EOF 

$sql='SELECT id_risorsa, nome, descrizione FROM risorsa'; 
$query = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_assoc($query)){ 
    echo <<<EOF 
        <tr> 
            <td>{$row['id_risorsa']}</td> 
            <td><a href="descrizione.php?id_risorsa={$row['id_risorsa']}">{$row['nome']}</a></td> 
            <td>{$row['descrizione']}</td> 
        </tr> 
EOF 
} 
echo <<<EOF
    </body> 
</table> 
EOF 
?>

solo che dopo il primo echo quando tolgo il ; diventa tutto il codice grigio(cioè in notepad++ lo considera argomento di echo)
 
quando chiudi l'heredoc il punto e virgola ci vuole, ad esempio non:
PHP:
    <body> 
EOF
ma
PHP:
    <body> 
EOF;
 
con il tuo suggerimento la situazione che me lo rendeva grigio non cambiava ma lo aggiunto perchè sicuramente diventava un errore futuro...pensando sul suggerimento di non lasciare spazi dopo echo <<<EOF ho fatto questa prova e infatti ora mi riconosce tutte le parole chiavi...ma ancora quell'errore maledetto ci sta...riporto il codice con le ultime modifiche
PHP:
<?php 
mysql_connect('localhost', 'root', 'root') or die(mysql_error()); 
mysql_select_db('risorsa') or die(mysql_error()); 
echo <<<EOF<table> 
    <thead> 
        <tr> 
            <th>ID</th> 
            <th>Nome</th> 
            <th>Descrizione</th> 
        </tr> 
    </thead> 
    <body> 
EOF;

$sql='SELECT id_risorsa, nome, descrizione FROM risorsa'; 
$query = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_assoc($query)){ 
    echo <<<EOF 
        <tr> 
            <td>{$row['id_risorsa']}</td> 
            <td><a href="descrizione.php?id_risorsa={$row['id_risorsa']}">{$row['nome']}</a></td> 
            <td>{$row['descrizione']}</td> 
        </tr>
EOF; 
} 
echo <<<EOF</body> 
</table> 
EOF; 
?>
 
PHP:
echo <<<EOF
<table>
//etc.
attento che non ci siano spazi o tab dopo EOF
 

Discussioni simili