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

    Confronto Data PHP -> MySql

    Ciao a tutti, sto diventando matto con una query che faccio tranquillamente dal database ma appena la lancio da PHP non funziona.

    Codice PHP:
    $data=date("Y-m-d");
    echo 
    "Data odierna: ".$data;

    $query="SELECT * FROM tabella GROUP BY data HAVING data='".$data."'";
    //$query="SELECT * FROM tabella WHERE data='".$data."'";

    $result=mysql_query($query)    or die ("Errore! Ricontrolla la query: ".mysql_error());
    while (
    $row=mysql_fetch_array($result)) {
        
    $id=$row['id_turno'];
        
    $nomecampo=$row['nomecampo'];
        if (
    $nomecampo==0)
        {
            
    $query="UPDATE tabella SET nomecampo=1";
            
    $result=mysql_query($query)    or die ("Errore! Ricontrolla la query: ".mysql_error());
            echo 
    "
    CAMPO CAMBIATO IN ID: "
    .$id;
        }

    Non trovo errore, eppure non va....Quando lancio entrambe le query, in tutta la tabella nomecampo diventa 1 (anche dove la data è diversa).
    Probabilmente sbaglio qualcosa nel trattare la data (nella tabella mysql il campo è DATE).

  2. #2
    con questa query direi che fa quanto gli chiedi:

    $query="UPDATE tabella SET nomecampo=1";

    mancando la condizione where ti fa tutta la tabella. Puoi fare tutto con un solo update.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    119
    Sì a meno di voler modificare tutta la tabella (e quindi lo puoi fare con un'unica query come ti hanno detto) devi inserire una clausola WHERE nella query di UPDATE

    Codice PHP:
    $query="UPDATE tabella SET nomecampo=1 WHERE ..."
    e metti la condizione che vuoi, l'id o quant'altro hai nella tabella come indice univoco.

    Ciao
    " Write. Less. Code. "
    ---------------------------------------
    Hotel Booking Software

  4. #4
    è vero! Che idiota....

  5. #5
    puoi semplicemente fare un update invece di eseguire tutto quello script.

    codice:
    UPDATE tabella 
    SET nomecampo = 1
    WHERE nomecampo = 0
          AND data = '$data'

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    C'è del codice nel mezzo. lo posto. Perchè ora mi da un altro errore.

    Codice PHP:
    $data=date("Y-m-d");
    echo 
    "Data odierna: ".$data."
    "
    ;
    $query="SELECT * FROM turni WHERE data='".$data."' AND smsinviato=0";
    $result=mysql_query($query) or die ("Errore! Ricontrolla la query: ".mysql_error());
    if (
    mysql_num_rows($result)>0)
    {
        
    //$row=mysql_fetch_array($result);
        
    while ($row=mysql_fetch_array($result))
        {
            
    $id=$row['id_turno'];
            
    $data=$row['data'];
            
    $ora=$row['ora'];
            
    $gruppo=$row['id_gruppo'];
            
    $film=$row['film'];
            
    $smsinviato=$row['smsinviato'];
            
    // Codice Invio SMS
            // [...]
            
    $query="UPDATE turni SET smsinviato=1 WHERE id_turno='".$id."'";
            
    $result=mysql_query($query)    or die ("Errore! Ricontrolla la query: ".mysql_error());
            echo 
    "
    Sms inviato a gruppo "
    .$gruppo." per turno ".$id;
        }
    } else echo 
    "
    Nessun sms da inviare"

    Quando apro la pagina mi dice:
    Data odierna: 2009-12-19
    Sms inviato a gruppo P per turno 4 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /web/htdocs/www.miourl.it/home/provasms.php on line 11.

    La riga 11 è quella del while.

  7. #7
    Trovato l'errore:
    Codice PHP:
    $data=date("Y-m-d");
    echo 
    "Data odierna: ".$data."
    "
    ;
    $query="SELECT * FROM turni WHERE data='".$data."' AND smsinviato=0";
    $result=mysql_query($query) or die ("Errore! Ricontrolla la query: ".mysql_error());
    if (
    mysql_num_rows($result)>0)
    {
        
    //$row=mysql_fetch_array($result);
        
    while ($row=mysql_fetch_array($result))
        {
            
    $id=$row['id_turno'];
            
    $data=$row['data'];
            
    $ora=$row['ora'];
            
    $gruppo=$row['id_gruppo'];
            
    $film=$row['film'];
            
    $smsinviato=$row['smsinviato'];
            
    // Codice Invio SMS
            // [...]
            
    $query2="UPDATE turni SET smsinviato=1 WHERE id_turno='".$id."'";
            
    $result2=mysql_query($query2) or die ("Errore! Ricontrolla la query: ".mysql_error());
            echo 
    "
    Sms inviato a gruppo "
    .$gruppo." per turno ".$id;
        }
    } else echo 
    "
    Nessun sms da inviare"


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.