Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560

    errore con query update

    ciao.. nella pagina c'è la query che aggiunge il campo expires tramite il
    valore DATE_ADD(NOW(), INTERVAL ".$credit['days']." DAY),

    questo valore lo va a prendere da questa query:

    Codice PHP:
    $creditsql 'select * from accounting where id = '.$_REQUEST['credit'];
      
    $creditR mysql_query($creditsql,$myconn) or die(mysql_error());
      
    $credit mysql_fetch_assoc($creditR); 
    ho provato ma mi da questo errore:

    You have an error in your SQL syntax; check the manual that corresponds to
    your MySQL server version for the right syntax to use near '' at line 1

    cosa sbaglio?

    Codice PHP:
    <?php 
    session_start
    ();
    require_once(
    'Connections/myconn.php');
    require_once(
    'login_check.php');
    ### CONNECT TO THE DATABASE 
    mysql_select_db($database_myconn) or die(mysql_error()); 


    $sql "select * from credits where price = 0";
    $r mysql_query($sql,$myconn) or die(mysql_error());
    $credit mysql_fetch_assoc($r);

        
    # insert new transaction into accounting table in database
        //build insert sql
        
    $insert "insert into accounting (`photoLimit`,`item`,`payment_gross`,`payment_status`,`active`,`payment_date`,`mid`,`title`,`description`,`days`,`numCredit`) 
                            values ("
    .$credit['photoLimit'].",'3','0','FREE','Yes',NOW(),".$_SESSION['memberID'].",'".$credit['title']."','".$credit['description']."',".$credit['days'].",".$credit['numCredit'].")";
                            
                            
    $creditsql 'select * from accounting where id = '.$_REQUEST['credit'];
      
    $creditR mysql_query($creditsql,$myconn) or die(mysql_error());
      
    $credit mysql_fetch_assoc($creditR);
                            
                            
    $updateSQL sprintf("UPDATE members SET emailNotify=%s, description=%s, address=%s, city=%s, `state`=%s, zip=%s, membership=%s, email=%s, `expires`=DATE_ADD(NOW(), INTERVAL ".$credit['days']." DAY), phone=%s, emailCities='".$citySTR."', emailBed=%s, emailBath=%s, sitoweb=%s, cognome=%s, fax=%s, cell=%s, piva=%s WHERE id=%s",
                           
    GetSQLValueString($_POST['emailNotify'], "text"),
                           
    GetSQLValueString($_POST['description'], "text"),
                           
    GetSQLValueString($_POST['address'], "text"),
                           
    GetSQLValueString($_POST['city'], "text"),
                           
    GetSQLValueString($_POST['state'], "text"),
                           
    GetSQLValueString($_POST['zip'], "text"),
                           
    GetSQLValueString($_POST['membership'], "text"),
                           
    GetSQLValueString($_POST['email'], "text"),
                           
    GetSQLValueString($_POST['expires'], "date"),
                           
    GetSQLValueString($_POST['phone'], "text"),
                           
    GetSQLValueString($_POST['emailBed'], "text"),
                           
    GetSQLValueString($_POST['emailBath'], "text"),
                           
    GetSQLValueString($_POST['sitoweb'], "text"),
                           
    GetSQLValueString($_POST['cognome'], "text"),
                           
    GetSQLValueString($_POST['fax'], "text"),
                           
    GetSQLValueString($_POST['cell'], "text"),
                           
    GetSQLValueString($_POST['piva'], "text"),
                           
    GetSQLValueString($_POST['id'], "int"));
        
    //echo $insert;
        
    mysql_query($insert,$myconn) or die(mysql_error());
        
    $insertGoTo "a_index.php";
        
    header(sprintf("Location: %s"$insertGoTo));
    ?>

  2. #2
    Se l'errore è riferito alla prima query che hai scritto, controlla che la tabella "accounting" abbia effettivamente un campo chiamato "id".

    P.S: esegui dei controlli sull'input, vero?
    P.P.S: quel codice mi ricorda tanto un applicativo di una ditta presso cui ho lavorato... di dove sei?

  3. #3
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    si certo la tabella accounting ha il campo id
    sono del molise

  4. #4
    Caspita... gli stessi nomi di funzioni e variabili. Mi era venuto un dubbio...
    per caso è un programma per la prenotazione dei pernottamenti?

    se tu prendi una query tipo:
    codice:
    select * from accounting where id = 1
    e la incolli direttamente nella console di mysql, cosa ti dice?
    mi viene da pensare che ci sia qualcosa di anomale nella variabile $_REQUEST['credit'], magari qualche apice fuori posto.

    modifica l'istruzione così:

    codice:
    $creditsql = "select * from accounting where id = '" . mysql_real_escape_string($_REQUEST['credit']) . "'";

  5. #5
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    no non è uno script per la prenotazione

    cmq non è li l'errore, ti dico perchè, con questo codice che va ad aggiungere i campi con INSERT funziona benissimo:

    Codice PHP:
    //fetch credit history
      
    $creditsql 'select * from accounting where id = '.$_REQUEST['credit'];
      
    $creditR mysql_query($creditsql,$myconn) or die(mysql_error());
      
    $credit mysql_fetch_assoc($creditR);
      
      
    //add property
      
    $insertSQL sprintf("INSERT INTO items 
                    (`mid`,`countyID`,`testimonial`,`styleID`,`levels`,`sellerTitle`,`sellerName`,`sellerPhone`,`Notes`,
                    `sellerEmail`,`expires`,
                    `showCities`, cid,  title, price, pdate, sold, description, address, city,
                     `state`, zip, featured, active, bed, bath, subdiv, schoold, `year`, lot_size,
                      sqft, `lat`, `long`,`photoLimit`) 
              VALUES 
                  (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, DATE_ADD(NOW(), INTERVAL "
    .$credit['days']." DAY), '".$citySTR."', %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                           
    GetSQLValueString($_POST['mid'],"int"),
                           
    GetSQLValueString($_POST['countyID'],"int"),
                           
    GetSQLValueString($_POST['testimonial'], "text"),
                           
    GetSQLValueString($_POST['styleID'], "int"),
                           
    GetSQLValueString($_POST['levels'], "text"),
                           
    GetSQLValueString($_POST['sellerTitle'],"text"),
                           
    GetSQLValueString($_POST['sellerName'], "text"),
                           
    GetSQLValueString($_POST['sellerPhone'],"text"),
                           
    GetSQLValueString($_POST['Notes'],"text"),
                           
    GetSQLValueString($_POST['sellerEmail'],"text"),
                           
    GetSQLValueString($_POST['cat'], "int"),
                           
    GetSQLValueString($_POST['title'], "text"),
                           
    GetSQLValueString($_POST['price'], "double"),
                           
    GetSQLValueString(date("Y-m-d"), "date"),
                           
    GetSQLValueString("No""text"),
                           
    GetSQLValueString($_POST['description'], "text"),
                           
    GetSQLValueString($_POST['address'], "text"),
                           
    GetSQLValueString($_POST['city'], "int"),
                           
    GetSQLValueString($_POST['state'], "int"),
                           
    GetSQLValueString($_POST['zip'], "text"),
                           
    GetSQLValueString($_POST['featured'], "text"),
                           
    GetSQLValueString("Yes""text"),
                           
    GetSQLValueString($_POST['bed'], "text"),
                           
    GetSQLValueString($_POST['bath'], "text"),
                           
    GetSQLValueString($_POST['subdiv'], "text"),
                           
    GetSQLValueString($_POST['schoold'], "text"),
                           
    GetSQLValueString($_POST['year'], "int"),
                           
    GetSQLValueString($_POST['lot_size'], "double"),
                           
    GetSQLValueString($_POST['sqft'], "double"),
                           
    GetSQLValueString($address['lat'], "text"),
                           
    GetSQLValueString($address['long'], "text"),
                           
    GetSQLValueString($credit['photoLimit'],"int")); 
    io devo fare l' UPDATE .. come ho indicato nel primo post. sai come modificarlo?

    grazie mille

  6. #6
    ah scusa... pensavo che l'errore fosse riferito alla prima query e mi ero fermato a leggere.
    allora si, in effetti c'è un errore di sintassi nella query di UPDATE: se guardi bene, hai inserito un parametro di troppo alla funzione sprintf

    In particolare, la riga:
    Codice PHP:
    GetSQLValueString($_POST['expires'], "date"), 
    che non ti serve, perchè valorizzi prima il contenuto del campo expires nella query.
    spero di essermi spiegato bene

  7. #7
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    si grazie..
    purtroppo mi da lo stesso errore

    Codice PHP:
    <?php 
    session_start
    ();
    require_once(
    'Connections/myconn.php');
    require_once(
    'login_check.php');
    ### CONNECT TO THE DATABASE 
    mysql_select_db($database_myconn) or die(mysql_error()); 


    $sql "select * from credits where price = 0";
    $r mysql_query($sql,$myconn) or die(mysql_error());
    $credit mysql_fetch_assoc($r);

        
    # insert new transaction into accounting table in database
        //build insert sql
        
    $insert "insert into accounting (`photoLimit`,`item`,`payment_gross`,`payment_status`,`active`,`payment_date`,`mid`,`title`,`description`,`days`,`numCredit`) 
                            values ("
    .$credit['photoLimit'].",'3','0','FREE','Yes',NOW(),".$_SESSION['memberID'].",'".$credit['title']."','".$credit['description']."',".$credit['days'].",".$credit['numCredit'].")";
                            
                            
    $creditsql 'select * from accounting where id = '.$_REQUEST['credit'];
      
    $creditR mysql_query($creditsql,$myconn) or die(mysql_error());
      
    $credit mysql_fetch_assoc($creditR);
                            
                            
    $updateSQL sprintf("UPDATE members SET emailNotify=%s, description=%s, address=%s, city=%s, `state`=%s, zip=%s, membership=%s, email=%s, `expires`=DATE_ADD(NOW(), INTERVAL ".$credit['days']." DAY), phone=%s, emailCities='".$citySTR."', emailBed=%s, emailBath=%s, sitoweb=%s, cognome=%s, fax=%s, cell=%s, piva=%s WHERE id=%s",
                           
    GetSQLValueString($_POST['emailNotify'], "text"),
                           
    GetSQLValueString($_POST['description'], "text"),
                           
    GetSQLValueString($_POST['address'], "text"),
                           
    GetSQLValueString($_POST['city'], "text"),
                           
    GetSQLValueString($_POST['state'], "text"),
                           
    GetSQLValueString($_POST['zip'], "text"),
                           
    GetSQLValueString($_POST['membership'], "text"),
                           
    GetSQLValueString($_POST['email'], "text"),
                           
    GetSQLValueString($_POST['phone'], "text"),
                           
    GetSQLValueString($_POST['emailBed'], "text"),
                           
    GetSQLValueString($_POST['emailBath'], "text"),
                           
    GetSQLValueString($_POST['sitoweb'], "text"),
                           
    GetSQLValueString($_POST['cognome'], "text"),
                           
    GetSQLValueString($_POST['fax'], "text"),
                           
    GetSQLValueString($_POST['cell'], "text"),
                           
    GetSQLValueString($_POST['piva'], "text"),
                           
    GetSQLValueString($_POST['id'], "int"));
        
    //echo $insert;
        
    mysql_query($insert,$myconn) or die(mysql_error());
        
    $insertGoTo "a_index.php";
        
    header(sprintf("Location: %s"$insertGoTo));
    ?>
    può essere che l'errore sia qui?:

    Codice PHP:
    `expires`=DATE_ADD(NOW(), INTERVAL ".$credit['days']." DAY), 

  8. #8
    Fai un debug della query. Stampa la variabile che la contiene, prima di eseguirla.
    E vedi come viene valorizzata. Controlli gli apici, i nomi, etc.

  9. #9
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    ciao devil, dopo la query ho inserito
    Codice PHP:
    echo $updateSQL;
                           exit(); 
    mi da questo errore
    Parse error: syntax error, unexpected T_ECHO in /web/htdocs/www.sito.com/home/pagina/pagina.php on line 23

    cosa sbaglio?

    grazie

  10. #10
    Significa che c'è qualche errore di sintassi (magari un apice di troppo) nella stringa. Devi controllare che tutte le variabili POST (e non) che inserisci nella query siano valorizzate correttamente.

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.