[PHP][MySQL] Errore nella query

  • Creatore Discussione Creatore Discussione felino
  • Data di inizio Data di inizio

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
Salve a tutti,
ottengo il seguente 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 6

nella seguente query:
PHP:
//SELEZIONE TUTTE LE FOTO DEL CONTEST E VERIFICO SE C'E' IL FILTRO PER UTENTE
$filter_by_user = "AND CompetitorID = " . $getCurrentUser. " ";

$qq_foto = "SELECT 
				*
			FROM 
				works_2014
			WHERE 
				ContestID = " . $currentContest['ID'] . " " . $filter_by_user;

$q_foto = mysql_query($qq_foto) or die (mysql_error());

secondo voi dov'è l'errore?

Grazie.
 
hai sbagliato le virgolette...
eccolo
PHP:
//SELEZIONE TUTTE LE FOTO DEL CONTEST E VERIFICO SE C'E' IL FILTRO PER UTENTE
$filter_by_user = "AND CompetitorID = " . $getCurrentUser. " ";

$qq_foto = "SELECT * FROM works_2014 WHERE ContestID = \"$currentContest['ID']\" $filter_by_user";

$q_foto = mysql_query($qq_foto) or die (mysql_error());


Inviato dal mio GT-S5360 con Tapatalk 2
 
Ultima modifica:
ciao
imparate ad usare il var_dump è un ottimo strumento per il debug
PHP:
<?php
//..... con la query scritta in un modo o nell'alttro
var_dump($qq_foto);//poi si toglie o si commenta
//....
?>
da quello che resttuisce si può capire dove è l'errore
p.s. @night assassin
guarda bene quello che hai scritto, se noti una parentesi quadra è verde l'altra rossa

dimenticavo
PHP:
<?php
//....
$filter_by_user = " AND CompetitorID = $getCurrentUser ";
$qq_foto = "SELECT * FROM works_2014 WHERE ContestID = ".{$currentContest['ID']}." $filter_by_user";
//....
?>
 
Ultima modifica:
ciao
scusa una cosa, non so come valorizzi (post, get, ..) la variabile per filtrare quindi metto un po' a caso, ma non ti converrebbe fare una cosa del genere?
PHP:
<?php
//.....
$filter_by_user = "";
if(isset($_POST['user']){
	$getCurrentUser=$_POST['user'];
	$filter_by_user = " AND CompetitorID = $getCurrentUser ";
}
$qq_foto = "SELECT * FROM works_2014 WHERE ContestID = ".{$currentContest['ID']}." $filter_by_user";
//...
?>
se non dai il filtro la query funziona lo stesso senza essere filtrata
 
Ciao,
certo, ho corretto il BUG proprio applicando il filtro come hai scritto tu. :)

Non ho mai usato la sintatti:
PHP:
".{$currentContest['ID']}."
come mai le parentesi graffe?

Grazie.
 
ciao
non sono indispensabili, è una vecchia abitudine
comiunque quando si usano elementi di arrai per evitare errori conviene sempre aggiungerli come ho fatto io (con o senza graffe)
 

Discussioni simili