- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema lettura dati dopo query su più tabelle
-
Problema lettura dati dopo query su più tabelle
Salve a tutti. Premetto che sono un novizio del PHP.
In una pagina risultato.php devo recuperare e visualizzare dati da due tabelle differenti in base ad un valore (la provincia di appartenenza) che recupero dalla pagina di precedente. Il codice da me scritto è il seguente:
<?
$prov=$_GET["prov"];$query = mysql_query("SELECT * FROM collab_compensi,collab_anagrafica WHERE (provincia='".$prov."') AND (collab_compensi.cf=collab_anagrafica.cf)");
$result = mysql_num_rows($query);
if($result == 0)
{
echo("Nessun collaboratore presente in questa provincia");
}
else
{
for($x=0; $x<$result; $x++)
{
$rs = mysql_fetch_row($query);
$nome = $rs[collab_anagrafica.nome];
$compenso = $rs[collab_compensi.compenso];
echo "Collaboratore: " . $nome . "<br>";
echo "Compenso ? " . $compenso . "<br><br>";
}
}
?>Logicamente funziona tutto bene, in quanto in base alla provincia che seleziono visualizzo un esatto numero di volte Collaboratore e Compenso. Se in una provincia ad esempio ho 2 collaboratori visualizzo:
Collaboratore:
Compenso ?Collaboratore:
Compenso ?Il problema sta nel fatto che accanto ad ogni voce dovrebbe apparire la relativa voce letta dal DB, invece niente. Non so se è un problema di struttura dello script o semplicemente di sintassi quando tramite $rs cerco di leggere i valori nelle tabelle. Spero che qualcuno possa aiutarmi.
Se vi occorrono ulteriori informazioni chiedete pure, io non ho scritto per evitare lungaggini...
Grazie a tutti.
-
Prova a modificare le righe cosi.
$nome = $rs[0];
$compenso = $rs[1];
-
Grandioso, funziona!!!!!!!:D
La cosa da tenere in considerazione, che magari potrà essere utile a qualcuno che abbia avuto il mio stesso problema, è che a [0] corrisponde il primo campo della prima tabella indicata nella query, e seguendo progressivamente l'ordine numerico si passa alla seconda. Infatti la prima tabella aveva 4 campi corrispondenti a [0] [1] [2] [3] e per richiamare il primo campo della seconda tabella ho dovuto indicare [4].Grazie MILLE marcocarrieri; preciso, veloce e conciso: meglio di così non si può.......
-
Bene.