• User

    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.


  • ModSenior

    Prova a modificare le righe cosi.
    $nome = $rs[0];
    $compenso = $rs[1];


  • User

    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ò.......

    :ciauz:


  • ModSenior

    Bene. 🙂