Ciao,
ho un problema sulla selezione e visualizzazione dei risultati di una ricerca. Mi spiego meglio:
ho questo script che ha il compito di effettuare una riucerca nel database e restituire a video dei risultati tabellati. All'estrema destra della colnna ho posizionato un pulsante, che quando premuto passa tramite POST l'id alla pagina visualizzaProfilo.php e quindi dovrebbe visualizzare il profilo di un utente.
Questo è il codice che utilizzo adesso:
Codice PHP:
<?php
if ($_POST['search']){
if (!empty($_POST['keywords'])) {
$searchStr = $_POST['keywords'];
if (ereg("^[A-Za-z0-9_@']+$", $searchStr)) {
mysql_connect($host,$user,$password)or die("non riesco a connettermi");
mysql_select_db($database)or die("non riesco selezionare il database");
print "<center>Stai visualizzando i risultati della tua ricerca: [b]<font color=#FF0000> \"$searchStr\"</font>[/b]
</center>";
$keys = explode(" ", $searchStr);
for ($x = 0; $x < count($keys); $x++) {
$querystr = "SELECT * FROM tabella WHERE lower(ruolo1) like \"%$keys[$x]%\"";
$result = mysql_query($querystr);
if ($frow = mysql_fetch_array($result)) {
$found = true;
echo "<div align=\"center\">";
echo "<table border=\"0\" width=\"998\" cellspacing=\"4\" cellpadding=\"0\">
<tr>
<td width=\"100\" style=\"border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom: 1px solid #FFFFFF\" align=\"left\">[b]Nome[/b]</td>
<td width=\"100\" style=\"border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom: 1px solid #FFFFFF\" align=\"left\">[b]Cognome[/b]</td>
<td width=\"100\" style=\"border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom: 1px solid #FFFFFF\" align=\"left\">[b]Ruolo 1[/b]</td>
<td width=\"100\" style=\"border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom: 1px solid #FFFFFF\" align=\"left\">[b]Ruolo 0 3[/b]</td>
<td width=\"100\" style=\"border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom: 1px solid #FFFFFF\" align=\"left\">[b]Ruolo 2[/b]</td>
<td width=\"30\" style=\"border-right-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom: 1px solid #FFFFFF\" align=\"right\"></td>
<td width=\"30\" style=\"border-right-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom: 1px solid #FFFFFF\" align=\"right\"></td>
</tr>";
do {
echo "<tr>
<td width=\"100\" align=\"left\">" . $frow["nome"] . "</td>
<td width=\"100\" align=\"left\">" . $frow["cognome"] . "</td>
<td width=\"100\" align=\"left\">" . $frow["ruolo1"] . "</td>
<td width=\"100\" align=\"left\">" . $frow["ruolo0"] . "</td>
<td width=\"100\" align=\"left\">" . $frow["ruolo2"] . "</td>
<td width=\"30\" align=\"left\"></td>
<td> <input type=\"hidden\" name=\"user_id\" size=\"1\" value=". $frow["user_id"] ."><input type=\"submit\" value=\"Dettagli\"></td>
</tr>";
} while ($frow = mysql_fetch_array($result));
echo "</table>";
echo "</div>";
}
}
Il problema: se la ricerca restituisce più di un risultato ad esempio tre risultati, quando clicco sul bottone dettagli di uno dei tre risultati restituiti, mi visualizza sempre e solo l'ultimo risultato, anche se gli id che gli passa sono corretti perchè ho provato a stamparli a video e ciascun risultato ha il suo user_id corretto.
Il mio dubbio è l'ultilizzo mysql_fetch_array perchè ho letto che restituisce sempre l'ultimo valore http://www.goldenweb.it/manuale_php/...etch-array.php
Come posso rislvere questo problemone?
Grazie