Errore di sintassi mysql?

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
Salve a tutti,
ho uno script php dove vi sono delle query mysql che vengono eseguite in un database. Il problema è che, pur eseguendosi le query, mi restituisce 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 '1' at line 1'

Ecco i var_dump(); delle query che potrebbero essere interessate:

PHP:
"SELECT * FROM amici_temp WHERE username_proprietario = 'pinco' && username_amico = 'pallo'"
PHP:
"INSERT INTO amici_temp (username_proprietario, username_amico) VALUES ('pinco', 'pallo')"
Ecco il codice php:
PHP:
<?php 
if(!isset($_SESSION)){session_start();}   
if(!isset($_SESSION['utente'])){   
    header("location: login2.php?azione=login");  
    exit();    
}
require_once "connessione.php"; 
if (isset($_GET['user']) && isset($_GET['insert'])) { 
    $query = "SELECT * FROM amici_temp   
                   WHERE username_proprietario = '" . $_SESSION['utente'] . "'   
                         && username_amico = '" . $_GET['user'] . "'"; 
var_dump($query);
    $result = mysql_query($query) or die(mysql_error()); 
    if (mysql_num_rows($result) == 0) { 
        $q = "INSERT INTO amici_temp (username_proprietario, username_amico)   
                 VALUES ('" . $_SESSION['utente'] . "', '" . $_GET['user'] . "')"; 
var_dump($q);
        $query = mysql_query($q); 
        $inviautente = mysql_query($query) or die(mysql_error()); 
        header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}"); 
    } 
} 
$query = "SELECT * FROM amici_temp
                   WHERE username_proprietario = '" . $_SESSION['utente'] . "'   
                         && username_amico = '" . $_GET['id'] . "'"; 
$result = mysql_query($query) or die(mysql_error()); 
if (mysql_num_rows($result) == 0) { 
    echo "<a href=\"?insert&user=" . $_GET['id'] . "\" onclick=\"return(confirm('Sei sicuro di voler inoltrare la richiesta di amicizia?'))\">Aggiungi agli amici!</a>"; 
} else { 
    echo ""; 
} 
?>
Grazie a tutti in anticipo per il vostro aiuto,
hackersatifal. :)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
nei due var_dump che hai postato non ci sono errori
probabilmente l'errore si riferisce ad un altra query che hai nella stessa pagina
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
controlla questa query con il solito var_dump
PHP:
//....
$query = "SELECT * FROM amici_temp WHERE username_proprietario = '" . $_SESSION['utente'] . "' && username_amico = '" . $_GET['id'] . "'";
//....
perchè quando entri nella pagina è la prima query eseguita e non mi sembra che tu valorizzi $_GET['id'].
 

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
Ciao,
nei due var_dump che hai postato non ci sono errori
probabilmente l'errore si riferisce ad un altra query che hai nella stessa pagina
Nella pagina ho solo queste query. Ora mi sono accorto che non le esegue, quindi queste sono il problema, anche se anche io penso che non vi siano errori.
Come posso fare?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
prova ad inserire il var_dump delle query direttamente nel SQL di phpmyadmin e vedi se ti restituisce qualche errore
togli gli apici doppi (")pero
incollala cosi
Codice:
SELECT * FROM amici_temp WHERE username_proprietario = 'pinco' && username_amico = 'pallo'
 

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
prova ad inserire il var_dump delle query direttamente nel SQL di phpmyadmin e vedi se ti restituisce qualche errore
togli gli apici doppi (")pero
incollala cosi
Codice:
SELECT * FROM amici_temp WHERE username_proprietario = 'pinco' && username_amico = 'pallo'
Su phpmyadmin non mi restituisce nessun errore.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
nemmeno l'altra?
il record te lo trova?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Ciao, prova a modificare questa query:
PHP:
$query="SELECT * FROM amici_temp WHERE username_proprietario = '" . $_SESSION['utente'] . "' && username_amico='".$_GET['id']."'";
Con:
PHP:
$query = "SELECT * FROM amici_temp WHERE username_proprietario = '" . $_SESSION['utente'] . "' && username_amico = " . $_GET['id'];
Suppongo che ID sia un numero, quindi non ha bisogno di apici.

Edit:
Solo un consiglio: evita di scrivere più volte quando non ti stiamo rispondendo. Sicuramente, appena possiamo, rispondiamo indipendentemente dal numero di " up-posts".
 
Ultima modifica:

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
Ciao, prova a modificare questa query:
PHP:
$query="SELECT * FROM amici_temp WHERE username_proprietario = '" . $_SESSION['utente'] . "' && username_amico='".$_GET['id']."'";
Con:
PHP:
$query = "SELECT * FROM amici_temp WHERE username_proprietario = '" . $_SESSION['utente'] . "' && username_amico = " . $_GET['id'];
Suppongo che ID sia un numero, quindi non ha bisogno di apici.

Edit:
Solo un consiglio: evita di scrivere più volte quando non ti stiamo rispondendo. Sicuramente, appena possiamo, rispondiamo indipendentemente dal numero di " up-posts".
Id non ha valore di un numero, bensì di un nome. Comunque ho provato come mi hai detto tu e mi restituisce; "string(93) "SELECT * FROM amici_temp WHERE username_proprietario = 'pinco' && username_amico = pallo" Unknown column 'pallo' in 'where clause'"
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
ribadisco (SE LO SCRIPT CHE HAI POSTATO E'COMPLETO)
verifica la prima query che viene eseguita (quella prima del confirm) la prima volta che viene eseguita
il $_GET['id'] non è valorizzato quindi la query è monca, vedi commenti).
il $_GET['id'] si valorizza solo dopo che hai dato la conferma in quanto all'interno del
if (isset($_GET['user']) && isset($_GET['insert'])) {...}
alla riga
header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}");

PHP:
<?php 
if(!isset($_SESSION)){session_start();}   
if(!isset($_SESSION['utente'])){   
    header("location: login2.php?azione=login");  
    exit();    
}
require_once "connessione.php"; 
if (isset($_GET['user']) && isset($_GET['insert'])) { 
    $query = "SELECT * FROM amici_temp   
                   WHERE username_proprietario = '" . $_SESSION['utente'] . "'   
                         && username_amico = '" . $_GET['user'] . "'"; 
var_dump($query);
    $result = mysql_query($query) or die(mysql_error()); 
    if (mysql_num_rows($result) == 0) { 
        $q = "INSERT INTO amici_temp (username_proprietario, username_amico)   
                 VALUES ('" . $_SESSION['utente'] . "', '" . $_GET['user'] . "')"; 
var_dump($q);
        $query = mysql_query($q); 
        $inviautente = mysql_query($query) or die(mysql_error()); 
        header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}"); 
    } 
} 
/******* VERIFICA QUESTA QUERY********
LA PRIMA VOLTA CHE CHIAMI LO SCRIPT */
$query = "SELECT * FROM amici_temp
                   WHERE username_proprietario = '" . $_SESSION['utente'] . "'   
                         && username_amico = '" . $_GET['id'] . "'"; 
var_dump($query);
/*la prima volta da:
string(xy) "SELECT * FROM amici_temp WHERE username_proprietario = 'pinco' && username_amico = ''"

*/
$result = mysql_query($query) or die(mysql_error()); 
if (mysql_num_rows($result) == 0) { 
    echo "<a href=\"?insert&user=" . $_GET['id'] . "\" onclick=\"return(confirm('Sei sicuro di voler inoltrare la richiesta di amicizia?'))\">Aggiungi agli amici!</a>"; 
} else { 
    echo ""; 
} 
?>
 

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
L'id lo prendo dall'url dell'iframe che è pagina.php?id=...
Comunque le query sono tutte corrette e valorizzate correttamente.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
Ti prego borgo mi daresti una mano a capire la ragione dell'errore?
guarda che non sono un mago, ripartiamo da 0.
la pagina (guarda che gli do un nome a caso) dove hai lo script viene richiamata dentro un iframe (così almeno accenni) , giusto?
se si viene richiamata in questo modo?
PHP:
<!-- parte in cui valorizzi la variabile $qualcosa -->
<iframe name="pinco"
	   		src="accetta_amicizia.php?id=<?php echo $qualcosa; ?>"
	   		width="732px"
	   		height="418px"
	   		scrolling="auto"
	   		frameborder="0"
	   		align="top"
	   		marginwidth="0"
	   		marginheight="0"
	   		allowtransparency="true">
 </iframe>
intanto fammi sapere questo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
altra domanda, perche nello script non vedo altro, visto che dici che i var_dump danno risultati giusti.
nella tabella amici_temp hai l'id int(12) not nul autotincrement primarykey ?