errore con query update

ciaoa tutti, mi aiutate a capire?

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:

$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?

<?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));
?>
inviato 6 anni fa
lino80
X 0 X

Ottieni l'errore perchè usi sprintf.

Prova a risolvere così:

               
                        $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 %s 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($credit['days'], "date"), // <----------Controlla questa riga, e vedi che ho modificato la stringa della query
                       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"));

Come da commento: controlla quella stringa e attento che ho modificato la query, GetSQLValueString non so cosa faccia e non so come funziona.

La stessa cosa sarebbe da fare per "$citySTR".

Il crossposting non è una pratica gradita!!!

http://forum.html.it/forum/showthread.php?threadid=1412248

Ti invito a leggere il regolamento da seguire prima di scrivere nei forum, grazie.

risposto 6 anni fa
Mario Santagiuliana
modificato 6 anni fa
X 0 X

ok grazie della risposta vedrò di non ripetere i post

cmq non funziona.. :'(

risposto 6 anni fa
lino80
X 0 X

Non è un semplice "ripetere i post", almeno avvisa che hai cercato aiuto da un'altra parte ma ancora non sei arrivato ad una conclusione...

cmq non funziona.. :'(

Che errore ottieni e con che modifica apportata?

risposto 6 anni fa
Mario Santagiuliana
X 0 X

si hai ragione scusami.

ho modificato il codice così per vedere se c'erano degli errori ma non va

<?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",
                  echo $updateSQL;
                       exit();
                       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($credit['days'], "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));
?>

Parse error: syntax error, unexpected T_ECHO in /web/htdocs/www.sito.com/home/pagina/pagina.php on line 23

senza echo $updateSQL;                        exit();

mi da sempre 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

risposto 6 anni fa
lino80
X 0 X

Per forza ti da errore se metti l'echo, lo fai all'interno della funzione sprintf.

Ti avevo suggerito di fare la sostituzione di $credit['days'] $citySTR ma non lo hai fatto!!!

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda