php vs sql

marconisi

Nuovo Utente
10 Ago 2013
14
0
0
Salve a tutti. Sono alle prese con un problema banale ma che non riesco a risolvere.
Ho questa query:
Codice:
SELECT * FROM Editoriale WHERE Codice = 4
che in PhpMyAdmin funziona correttamente e mi restituisce esattamente ciò che voglio.
Se però prendo questa query e la lancio con mysql_query in una pagina php, mi dà errore.
Più precisamente il codice in cui cerco di lanciare la query è:
PHP:
$query = "SELECT * FROM Editoriale WHERE Codice = 4";
$result = mysql_query($query) or die(mysql_error());
e l'errore ritornato è:

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

Sapreste spiegarmi dove sta l'errore e cosa si può fare?
Ringrazio anticipatamente tutti coloro che risponderanno.
 
Ciao, la sintassi è corretta
sicuro di non aver un'altra $query nella pagina?
prova a stamparla insieme all'errore
PHP:
or die($query . "<br/>" . mysql_error());
 
ciao
vedo che l'errore è at line 1, ora la query non può essere a line 1, prima ci devono essere i dati di connessione, questo se non ho detto una putt...ta.
 
ciao
non lo so perchè non so cosa c'è alla line 1.
come ha detto criric le due righe sono sintatticamente corrette, quindi è probabile che l'errore non sia li.
posta tutto lo scripi che interessa la query
 
ciao
non lo so perchè non so cosa c'è alla line 1.
come ha detto criric le due righe sono sintatticamente corrette, quindi è probabile che l'errore non sia li.
posta tutto lo scripi che interessa la query

PHP:
$codice = $_GET['codice'];
					if(isset($_GET['editoriale'])) $query = "SELECT * FROM Editoriale WHERE Codice = 4";
                                        echo($query."<br>");
					$result = mysql_query($query) or die(mysql_error());
					$row = mysql_fetch_array($result);
                                        $query  = "SELECT Nome FROM Categoria WHERE Codice = ".$row['Categoria']."";
                                        $result = mysql_query($query) or die(mysql_error());
                                        $row1 = mysql_fetch_array($result);
					echo("<label id = \"categoriaNotizia\">".$row1['Nome']."</label><br>");
					echo("<hr>");
					echo("<label id = \"titoloNotizia\">".$row['Titolo']."</label><br>");
					echo("<label id = \"dataNotizia\">".$row['Data']."</label>");
					echo("<label id = \"autoreNotizia\"> موقع ".$row['Autore']."</label><br>");
					echo("<img id = \"fotoNotizia\" src = ".$row['Foto'].">");
					echo("<span id = \"testoNotizia\">".$row['Testo']."</span>");
 
ciao
a parte che non capisco molto quell'uso dei GET (tra l'altro pericoloso), il codice, se i nomi delle tabelle e dei loro campi corrispondono, mi sembra sintatticamente corretto.
l'unica cosa che non vedo è la connessione al db
 
Parchè hai duplicato la query?
se vuoi vedere cosa non funziona devi stampare quella con $row['Categoria'], è quella che va in errore la prima che fai sicuramente va a buon fine e probabilmente in $row['Categoria'] non c'è quello che ti aspetti
edit:
mi scuso ho letto malissimo
 
Ultima modifica:
ciao
@criric
credo che le due select gli servano per selezionare prima la categoria e da questa poi l'articolo e probabilmente intende nella prima select nel where Codice poi mettere una variabile (dal get?) anche se una join andrebbe meglio
@marconisi
ma mi sono accorto di una cosa nella seconda select
SELECT Nome FROM Categoria WHERE....
fai la select sul campo Nome e poi cerchi di estrarre gli altri campi (ma non è quello che da l'errore citato) cosi non funzia
 
Si, avevo letto in fretta e male. In ogni caso secondo me non è la prima che va in errore ma la seconda
metti un echo anche alla seconda
 
Ultima modifica:
scusate se mi intrometto ma credo sia qui l'errore

PHP:
 $query  = "SELECT Nome FROM Categoria WHERE Codice = ".$row['Categoria']."";

mi è già capitato alcun volte e mancano gli apici

PHP:
 $query  = "SELECT * FROM Categoria WHERE Codice = '".$row['Categoria']."'";
 
Risolto

Ragazzi ho risolto, come avevate detto alcuni di voi l'errore era nella seconda query. Non so come ho fatto a non accorgermene. Grazie mille a tutti :)
 

Discussioni simili