Visualizzazione risultati 1 fino 4 di 4

Discussione: variabile php raccoglie molti ID e li passa a un'altra query

  1. #1
    Guest

    Predefinito variabile php raccoglie molti ID e li passa a un'altra query

    Salve. Torno a questo forum che già mi è stato di grande aiuto in precedenza.
    Ho risolto infatti il problema di raccogliere (con una ricerca tramite select) gli IDcoop delle cooperative che svolgono un determinato servizio. Esempio: l'utente seleziona la voce "Segreteria" e dalla tabella "settori" la query mi estrae l'id delle ditte che fanno segreteria. I dati anagrafici delle cooperative si trovano però in un'altra tabella chiamata "coop" nella quale ho il campo IDcoop in comune con quello della tabella settori.
    Quindi ho tentato di raccogliere in una variabile tutti gli IDcoop estratti dalla prima query e passarli ad una seconda query che interroga la tabella "coop" per estrarre i dati "Ragione_sociale", "indirizzo", eccetera.
    Faccio vedere qui il codice completo (di cui la prima parte è merito di Eurosalute), che però sulla seconda query mi da errore di sintassi alla riga
    Codice PHP:
    while ($riga = mysql_fetch_array($row_Rs_ricerca){
    Codice completo:
    Codice PHP:
    <?php require_once('Connections/ConnCoop.php'); ?>

    <?php

    //questo è un controllo di sicurezza anti sql injction:
    $array_voci=array('TRASCRIZIONE','SEGRETERIA','VERDE_MANUTENZIONE','PULIZIE');//qui aggiungerò tutte le altre voci del select option

    if (isset($_GET['servizi']) AND !empty($_GET['servizi'])) $select_utente = $_GET['servizi'];
    else
    $error="Errore: campo obbligatorio, devi scegliere una delle voci.";

    $servizio=$select_utente;

    // prima query
    mysql_select_db($database_ConnCoop, $ConnCoop);
    $query_Rs_ricerca = "SELECT ".$servizio.", IDcoop FROM settori WHERE ".$servizio." = '1'";
    $Rs_ricerca = mysql_query($query_Rs_ricerca, $ConnCoop) or die(mysql_error());
    $row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca);
    $totalRows_Rs_ricerca = mysql_num_rows($Rs_ricerca);

    // seconda query
    if($totalRows_Rs_ricerca) {
    while (
    $riga = mysql_fetch_array($row_Rs_ricerca){
    mysql_select_db($database_ConnCoop, $ConnCoop);
    $query_RsCoop = sprintf("SELECT * FROM coop WHERE IDcoop = '".$row_Rs_ricerca['IDcoop']."'";
    $RsCoop = mysql_query($query_RsCoop, $ConnCoop) or die(mysql_error());
    $row_RsCoop = mysql_fetch_assoc($RsCoop);
    $totalRows_RsCoop = mysql_num_rows($RsCoop);
    }
    }
    else echo
    $error;
    ?>
    Sono nuovo di php-MySql. In precedenza ho fatto dei lavori con asp-Access.
    Non riesco a risolvere l'errore. Grazie del sostegno

  2. #2
    Guest

    Predefinito

    Le join dovrebbero fare al caso tuo.

  3. #3
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    hai fatto un pò di errori.....

    Codice PHP:
    //qui hai eseguito un assoc array:
    $row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca);
    //poi array su assoc:
    while ($riga = mysql_fetch_array($row_Rs_ricerca){
    //poi hai richiamato select db in un while:
    mysql_select_db($database_ConnCoop, $ConnCoop);
    //poi il sprintf() è sbagliato:
    $query_RsCoop = sprintf("SELECT * FROM coop WHERE IDcoop = '".$row_Rs_ricerca['IDcoop']."'";
    //poi non hai definito,controllato e validato $error
    per l'utilizzo di JOIN, avendo come inner join IDcoop, prova questa query:
    Codice PHP:
    $query_Rs_ricerca = "SELECT * FROM settori AS s JOIN coop AS c ON s.IDcoop = c.IDcoop WHERE ".$servizio." = '1'";

    //e come fare questa query:

    $query_Rs_ricerca = "SELECT * FROM settori AS s , coop AS c WHERE s.IDcoop = c.IDcoop AND ".$servizio." = '1'";
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  4. #4
    Guest

    Predefinito

    Grande! Ho visto oggi le risposte (da venerdì scorso).
    Ho provato le query, tramite PhpMyAdmin, sul database direttamente ed hanno fuzionato entrambe allo stesso modo.
    Mi resta solo da trovare la sintassi per mostrare i dati nella tabella della pagina web facendo ripetere le righe di dati tramite php.
    Grazie EuroSalute

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •