Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [PHP-MYSQL] - pagina bianca quando aggiungo una nuova query alla pagina

    Ciao a tutti,
    premesso che non sono un programmatore ma solo uno smanettone e che grazie ad html.it ho sempre risolto tutti i problemi (credo di seguire questo sito dal 99/00?? quando era stata scritta la prima guida al dhtml???...), sapevo che prima o poi sarebbe giunto il momento in cui avrei dovuto scrivere sul forum.
    ho dato la mia disponibilità nel seguire le varie pagine web di un associazione di coltivatori hobbisti, essendo fra i vari volontari quello che di programmazione ne capisce di più (l'altro volontario che aveva creato il tutto purtroppo non ha più la disponibilità di un tempo così per non restare indietro con le pagine del sito hanno chiesto a me un aiuto).
    dopo aver letto questa bella premessa qualcuno di voi avrà già detto "oh signur, un altro..." già... stavolta devo proprio rompere le scatole!
    fin'ora non ho mai avuto problemi nel modificare le pagine, modificare le varie query ecc solo che adesso mi trovo nel caso in cui alla pagina della banca materiali devo aggiungere un ulteriore controllo.
    visto che, come tutti gli altri, anche il servizio di spedizione dei materiali è gestito e svolto da soci volontari e stato deciso di limitare a 3 il numero degli ordini effettuati durante l'anno per ciascun socio.

    seguendo la filosofia di chi ha creato la pagina in origine, nella parte in cui vengono fatti i vari controlli ho inserito la mia query, che in origine presentava anche un COUNT - GROUP BY ma che poi ho tolto in quanto credo fosse la causa del mio problema.

    la query in questione è la seguente


    Codice PHP:
    $sql="SELECT ntessera,statoordine FROM aipc_bmordini WHERE statoordine != 'ANNULLATO' AND ntessera = '".$ntessera."'";     
    $dbresult=mysql_query($sql,$conn);
         if ( 
    mysql_num_rows($dbresult) >= 3
            {
                 
    $messaggiofinale.="<font color=red>Hai raggiunto il numero massimo di ordini per l'anno in corso.</font>
    "

                
    $errore+=1;
             } 
    dove ntessera e statoordine sono ovviamente campi della tabella aipc_bmordini e la variabile $ntessera viene presa dalla pagina ed è ""associata"" qualche riga più in alto prima dell'esecuzione di un'altra query come:
    $ntessera=mysql_real_escape_string($ntessera);

    ovviamente a me sembra tutto corretto ma se così fosse non ci starei sbattendo la testa da 3 giorni ottenendo come risultato all'apertura della pagina una schermata bianca.

    mi prosto e chiedo scusa in anticipo per eventuali "castronerie" scritte ma il php per me è un mondo nuovo di cui per ora ho visto solo la spiaggia.

    grazie a tutti per la pazienza e per l'eventuale aiuto.
    andrea

  2. #2
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Uhm il codice mi sembra a posto!!

    Prova a mettere all'inizio del php questa istruzione:

    codice:
    error_reporting(E_ALL);

  3. #3
    Allora, per debuggare una Query ti consiglio di usare la seguente sintassi:

    Codice PHP:
    $dbresult mysql_query($sql,$conn) OR DIE ("Errore Numero: ".mysql_errno()." - Descrizione: ".mysql_error()); 
    Con questo metodo ottieni sia un errore numerico sia una descrizione dell'errore generato da MySQL.

    Ad ogni modo, il tuo errore è nella stringa SQL.
    In questo linguaggio, il diverso da non si scrive con il punto esclamativo ma con le due parentesi angolari:

    Codice PHP:
    $sql 
       SELECT ntessera, statoordine 
       FROM aipc_bmordini 
       WHERE statoordine <> 'ANNULLATO' 
       AND ntessera = 
    $ntessera
    "

    Ricordati poi che se la colonna ntessera è definita come INT, non vanno usati gli apici per contenere la variabile.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    ciao e grazie a tutti e due per le risposte.
    grazie alcio74 per le spiegazioni!

    dunque, a sto punto devo dedurre che sicuramente l'altro giorno avrò fatto io una qualche stupidata cancellando una qualche parentesi graffa infatti oggi dopo aver provato la soluzione suggerita da alcio74 e dopo aver ottenuta l'ennesima pagina bianca, ho commentato la parte di codice in questione, F5 e la pagina mi restava ancora bianca...
    riprendi la pagina originale (fortunatamente l'esperienza m'ha insegnato a non lavorare mai sulle pagine originali ma su delle copie ), verifica che funzioni, aggiungi la parte di alcio74 e tutto funzionava.
    allora ho provato a rimettere la query come l'avevo scritta io in precedenza... e tutto funzionava... a quel punto ho dedotto che sono un emerito pirla!!!!

    la query in questione quindi al momento è:

    Codice PHP:
            $sql="SELECT ntessera,statoordine FROM aipc_bmordini WHERE statoordine <> 'ANNULLATO' AND ntessera = ".$ntessera."";
            
    $dbresult mysql_query($sql,$conn) OR DIE ("Errore Numero: ".mysql_errno()." - Descrizione: ".mysql_error());
            if ( 
    mysql_num_rows($dbresult) >= 3)
                {
                    
    $messaggiofinale.="<font color=red>Hai raggiunto il numero massimo di ordini per l'anno in corso.</font>
    "
    ;
                    
    $errore+=1;
                } 
    ora aggiungo l'ultimo controllo... se sono trascorsi 90 giorni dall'ultimo ordine effettuato.
    in caso di problemi tornerò a "rompere le scatole".

    intanto grazie ancora per l'aiuto!
    andrea


    ps:
    @ alcio74, ho provato anche a mettere il diverso da come != e tutto funziona, però ho preferito lasciare <>

  5. #5
    Originariamente inviato da Giupe77
    @ alcio74, ho provato anche a mettere il diverso da come != e tutto funziona, però ho preferito lasciare <>
    Uhm.... eppure sono sicuro che la sintassi SQL preveda le due parentesi angolari.. ad ogni modo se funziona lo stesso, meglio così!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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 © 2024 vBulletin Solutions, Inc. All rights reserved.