Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Problema su Query

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71

    Problema su Query

    Ciao a tutti, ho un piccolo problema con una query. In pratica voglio estrarre da una join di due tabelle determinati risultati dato un campo passato via POST.

    Nella prima tabella c'è una condizione che mi serve per filtrare i risultati mentre nella seconda tabella c'è una ulteriore condizione. Veniamo al dunque la query è questa:

    Codice PHP:
    if(isset($_POST['articolo'])){      
                
    $articolo=$_POST['articolo'];
    }
    $query mysql_query("select * from clienti, prodotti_acquistati where prodotti_acquistati.articolo=".$articolo." AND clienti.tipo_di_pagamento='anticipato'"$connessione); 
    Non riesco a capire come mai questa query mi restituisce solo i risultati di clienti.tipo_di_pagamento='anticipato', qualcuno di voi mi sa spiegare dov'è che sbaglio?

    Grazie mille in anticipo

  2. #2
    Per prima cosa il controllo che fai sull'esistenza del valore in POST non va bene così com'è in quanto se la condizione è falsa allora $articolo non sarà definito.
    Per quanto riguarda la query mi sembra ovvio che ti restituisca solo i record con tipo pagamento "anticipato" dato che è una condizione che hai impostato tu.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71
    Si lo so che è una condizione che ho impostato io il problema è che io gli dico filtrami i risultati che abbiano quell'articolo e che abbiano quel tipo di pagamento ma lui mi filtra solo quelli con quel tipo di pagamento, è qui l'intoppo su cui non trovo rimedio

  4. #4
    Quote Originariamente inviata da rash Visualizza il messaggio
    Si lo so che è una condizione che ho impostato io il problema è che io gli dico filtrami i risultati che abbiano quell'articolo e che abbiano quel tipo di pagamento ma lui mi filtra solo quelli con quel tipo di pagamento, è qui l'intoppo su cui non trovo rimedio
    Perdonami ma non capisco cosa intendi. Semetti una condizione in AND ovviamente i risultati saranno SOLO quelli che soddisfano quella condizione.
    Magari fai un esempio con dei dati.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71
    Allora io voglio che dalla query mi venga estratto il record (o i record) che soddisfino entrambe le condizioni che gli pongo non solo una delle due. Nel mio caso la query mi ignora totalmente la condizione che ricerca l'articolo.

    Allego l'esempioresult-01.jpg

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Stai facendo un prodotto cartesiano.
    Ti manca la clausola che unisce le due tabelle che dovrebbe essere : prodotti_acquistati.idcliente = clienti.idcliente .
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,802
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  8. #8
    nella query manca il join tra le tabelle
    semplicità ... al sol nominarla sembra svanire

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71
    Grazie mille badaze era proprio quella clausola che mancava!
    Questa è la query funzionante
    Codice PHP:
    $query mysql_query("select * from clienti, prodotti_acquistati where prodotti_acquistati.articolo=".$articolo." AND tipo_di_pagamento='contrassegno' AND prodotti_acquistati.id = clienti.id"$connessione); 
    Mi sarò ubriacato o forse è troppo tempo al pc perchè una cosa del genere l'avevo già fatta in un altra parte del "programmino" che sto realizzando.

    Grazie ancora

    Comunque queste due istruzioni:
    Codice PHP:
    SELECT FROM tab_1tab_2 WHERE campo_tab_1 campo_tab_2
    SELECT 
    FROM tab_1 JOIN ta_2 ON campo_tab_1 campo_tab_2 
    si equivalgono.

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Sono uguali ma adesso si consiglia la seconda.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.