Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Php/MySql Help su un paio di query in cui viene fuori 'parse error'

    Codice PHP:
    $ris mysql_query($query,$conn) or die("Errore: " mysql_error());
    $riscommunity mysql_query($querycommunity,$conn) or die("Errore: " mysql_error());

            while(
    $riga mysql_fetch_array($ris)) {
                while(
    $rigacommunity mysql_fetch_array($riscommunity)) {
                    if (
    $riga[ID] == $rigacommunity[ID] && $rigacommunity[Fonte] != '') {
                    print 
    "[b]X[/b] ";
                }
                
    mysql_free_result($riscommunity);
                break 
    1;
                
                print
    "[b]$riga[c] ";

                };
            
    mysql_free_result($ris);
               break 
    2
    Ho fatto due query:
    Fin quando estraevo i risultati solo dalla prima funzionava tutto perfettamente. Ora però ho le esigenze di confrontare i risultati delle due query, e qualora nella seconda query il campo 'Fonte' esce diverso da vuoto dovrebbe printare X (tanto per prova) prima del nome....
    ...però mi da un parse error...
    ...forse perchè non ho settato bene i break e i free_result ? :master:
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: Php/MySql Help su un paio di query in cui viene fuori 'parse error'

    Ho trovato un primo errore: i doppi break non servivano allo script, ma in ogni caso anche togliendoli c'è da qualche parte un errore di sintassi...

    Codice PHP:
    $ris mysql_query($query,$conn) or die("Errore: " mysql_error());
    $riscommunity mysql_query($querycommunity,$conn) or die("Errore: " mysql_error());

            while(
    $riga mysql_fetch_array($ris)) {
                while(
    $rigacommunity mysql_fetch_array($riscommunity)) {
                    if (
    $riga[ID] == $rigacommunity[ID] && $rigacommunity[Fonte] != '') {
                    print 
    "[b]X[/b] ";
                }
                
    mysql_free_result($riscommunity);
                print
    "[b]$riga[c] ";
                };
            
    mysql_free_result($ris); 
    Non riesco a capire come confrontare le due query...
    わさび

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: Re: Php/MySql Help su un paio di query in cui viene fuori 'parse error'

    Ma porc... è da un'ora che mi sto dannando su questo script e avevo dimenticato di chiudere una } graffa VVoVe:

    cmq ora l'errore è un altro:
    Warning: mysql_fetch_array(): 6 is not a valid MySQL result resource in /var/www/html/query.php on line 119
    わさび

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Se metti i cicli uno dentro l'altro, confronterai tutti i record della seconda query col solo primo record della prima. Quando ricicli per il secondo record della prima, hai già liberato il resultset della seconda e prendi quell'errore.

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da luca200
    Se metti i cicli uno dentro l'altro, confronterai tutti i record della seconda query col solo primo record della prima. Quando ricicli per il secondo record della prima, hai già liberato il resultset della seconda e prendi quell'errore.
    Piano piano ci stavo arrivando da solo a questa conclusione (testando lo script), però non riesco bene a capire il perchè...

    ...Come dovrei fare quindi per confrontare le due query? lasciare i due cicli esterni l'uno con l'altro, ma poi come faccio a dirgli di confrontarli?
    わさび

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Originariamente inviato da Trinità76
    Piano piano ci stavo arrivando da solo a questa conclusione (testando lo script), però non riesco bene a capire il perchè...

    ...Come dovrei fare quindi per confrontare le due query? lasciare i due cicli esterni l'uno con l'altro, ma poi come faccio a dirgli di confrontarli?
    Non ho di certo l'esperienza di Luca200, e sicuramente lui potrebbe darti indicazioni migliori, ma se hai un campo in comune tra le due tabelle, perchè non fai direttamente una select tra loro?

    $riga[ID] == $rigacommunity[ID]
    $rigacommunity[Fonte] != ''

    mi pare che queste siano le condizioni.

    SELECT * FROM tabellaA as a, tabellaB as b
    WHERE A.id=B.id and B.Fonte != ''

    Oppure con l'uso di Join, che è poi lo stesso di questa sopra. Devi solo valutare che se hai campi con lo stesso nome nelle due tabelle sarebbe meglio assegnare ad essi un alias.



  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da pierotto
    Non ho di certo l'esperienza di Luca200, e sicuramente lui potrebbe darti indicazioni migliori, ma se hai un campo in comune tra le due tabelle, perchè non fai direttamente una select tra loro?

    $riga[ID] == $rigacommunity[ID]
    $rigacommunity[Fonte] != ''

    mi pare che queste siano le condizioni.

    SELECT * FROM tabellaA as a, tabellaB as b
    WHERE A.id=B.id and B.Fonte != ''

    Oppure con l'uso di Join, che è poi lo stesso di questa sopra. Devi solo valutare che se hai campi con lo stesso nome nelle due tabelle sarebbe meglio assegnare ad essi un alias.

    Innanzitutto grazie per la risposta...

    comunque non so se sia possibile incorporare le due query in una sola perchè le due query fanno due cose distinte: la prima mette in ordine alfabetico i nominativi presenti e ne fa vedere di trenta in trenta e la seconda verifica se uno o più di questi nominativi visualizzati è così: $rigacommunity[Fonte] != ''
    in pratica mi servirebbero due where contemporanemente, ma anche scrivendoli assieme mi farebbe vedere solo quelli che hanno la condizione verificata...
    わさび

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Al posto tuo metterei una X di default nel data base per i campi vuoti e ti eviti cose successive. Basterebbe cercare o escludere i campi dove Fonte=X.

    SELECT * FROM tabellaA as a, tabellaB as b
    WHERE A.id=B.id and B.Fonte = 'x'
    ORDER BY A.nominativo
    LIMIT 0,30

    oppure

    SELECT * FROM tabA as A
    LEFT JOIN tabB as B ON A.ID = B.ID
    AND B.Fonte = 'x' // oppure != 'X' aseconda di come ti serve.
    ORDER BY A.nominativo
    LIMIT 0,30

    Non vedo il problema.

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Trinità76
    ...Come dovrei fare quindi per confrontare le due query? lasciare i due cicli esterni l'uno con l'altro, ma poi come faccio a dirgli di confrontarli?
    "confrontare le due query" è una frase piuttosto inquietante.
    Perché non provi a spiegare cosa vuoi fare?

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.