• User Newbie

    Errore Query fetch

    Salve a tutti ho un problema riguardante una query alla quale inserisco una condizione subquery che mi restituisce errore e non riesco a capire il perchè :

    
    $studio=str_replace("-", " ",$_POST['d-list']);
    $result=mysql_query("SELECT codice FROM Studi WHERE nome='".$studio."'"); 
    $row = mysql_fetch_row($result);
    $codice=$row[0];
    $result=mysql_query("SELECT id, nome , cognome FROM Volontari WHERE id= (SELECT id FROM Adesioni WHERE $codice='1')"); 
    $nDati = mysql_fetch_row($result);
    
    

    Il mio intento è prendere il codice dello studio dalla tabella studi quando la variabile inviata post è uguale al nome dello studio.
    Successivamente leggere id nome e cognome da volontari quando id presente in adesioni ha nome della colonna uguale al nome del codice dentro studi = a 1 (In poche parole se uno ha aderito ad uno studio sotto la colonna del codice ha 1 o 0 se non ha aderito).
    Ma restituisce il classico errore mysql , eliminando la subquery non restituisce errore quindi il problema è quest'ultima "La prima volta che ne uso una" , per altro mi sapreste dire se a livello logico il mio codice è buono e se per caso si puo' usare un'altra strada per ricavare gli stessi dati ?

    Grazie anticipatamente a tutti


  • User Attivo

    Ti dà errore perché nella seconda query, la colonna $codice, non esiste. $codice è una variabile PHP. Se il campo si chiama codice, allora la query è:

    $result=mysql_query("SELECT id, nome , cognome FROM Volontari WHERE id= (SELECT id FROM Adesioni WHERE codice=$codice)");


  • User Newbie

    Ho risolto cosi

    
    $studio=str_replace("-", " ",$_POST['d-list']);
    $result=mysql_query("SELECT codice FROM Studi WHERE nome='$studio'"); 
    $row = mysql_fetch_row($result);
    $codice=$row[0];
    $result=mysql_query("SELECT  nome, cognome , citta , data , tel ,info ,ninfo, email FROM Volontari WHERE id IN (SELECT id FROM Adesioni WHERE $codice='1') AND activation = '1'"); 
    $nDati = mysql_num_rows($result);
    
    

  • User Attivo

    Forse non ho capito quale sia il contesto, ma non ho capito che cosa hai risolto...

    SELECT nome, cognome , citta , data , tel ,info ,ninfo, email FROM Volontari WHERE id IN (SELECT id FROM Adesioni WHERE $codice='1') AND activation = '1'

    $codice è un valore... ammesso che vale 1, quella query è 1='1', non è il nome di un campo...

    Se però dici che va bene per te, va bene anche per me. 😄


  • User Newbie

    Praticamente invio da un form uno studio ad esempio "crema-viso" viene sistemato diventando "crema viso" e messo nella variabile studio.
    Effettuo la queri dove cerco il codice dalla tabella studi con nome = studio.
    Effettuo un fetch e mi trovo il rispettivo codice dello studio prelevandolo dalla tabella studi ad esempio ipotiziamo che il codice sia ASD.
    Successivamente prelevo tutti i dati dalla tabella volontari quando l'id è uguale a quello presente nella tabella adesioni al quale sotto la colonna che ha come nome ASD cè 1 quindi si avrà :

    $studio=str_replace("-", " ",$_POST['d-list']); //crema-viso -> crema viso$result=mysql_query("SELECT codice FROM Studi WHERE nome='$studio'"); $row = mysql_fetch_row($result);$codice=$row[0]; // crema viso -> ASD$result=mysql_query("SELECT nome, cognome , citta , data , tel ,info ,ninfo, email FROM Volontari WHERE id IN (SELECT id FROM Adesioni WHERE $codice='1') AND activation = '1'"); //$codice= ASD $nDati = mysql_num_rows($result);