Errore nella query: You have an error in your SQL syntax

HO questo errore di sintassi, la pagina index.php crea un link alla pagina view.php, in questa viene visualizzato l'intero contenuto di una tabella i codici sono:

index.php

<?php 
//Creazione della pagina che conterra i titoli
include("mydb.class.php");
include("top_foot.inc.php");
top();
$mydb_obj=new mydb('localhost', 'root', 'rubber', 'wood');
$mydb_obj->db_select();
//Seleziona gli ultimi aritcoli in ordine cronologico nel database
$query="SELECT id,data,titolo FROM $mydb_obj->db_name ORDER By data DESC LIMIT 0,5";
//Identificatore ricavato dal database dopo l'invio della query precedente
$result= mysql_query($query, $mydb_obj->db);
//Restituisce gli elementi del database
while($row=mysql_fetch_array($result))
{ echo "<a href=\"view.php?id=$row[id]\">".date("j/n/y", $row[data])."-
$row[titolo]<a><br>"; }
//Chiusura della pagina
mysql_close($mydb_obj->db); 
foot();
?>

il codice della pagina view.php è:

<?php require_once('Connections/project_db.php'); ?>
<? 
//Creazione della pagina che conterra i titoli
include("mydb.class.php");
include("top_foot.inc.php");
top();
$mydb_obj=new mydb('localhost', 'root', 'rubber', 'wood');
$mydb_obj->db_select();
$query="SELECT * FROM wood WHERE id = $id";
//Prelievo e visualizzazione dei dati
$result=mysql_query($query, $mydb_obj->db);
if (!$result) {
   die('Errore nella query: ' . mysql_error());
}
$row=mysql_fetch_array($result);

$data=date("j/n/y", $row[data]);
echo "<b>$row[titolo]</b><br><br>";
echo "$row[testo]<br><br>";
if($row[mail] != "") echo "$data, <a href=mailto:$row[mail]>$row[autore]</a><br>"; 
else echo "$data, $row[autore]<br>";
//Inserimento dei link alla index.php e alla all.php
echo "<br><a href=index.php>Torna alla pagina iniziale</a><br>";
echo "<a href=all.php>Visualizza tutti gli articoli</a><br>";
//Chiusura della connessione e della pagina
mysql_close($mydb_obj->db);
foot();
?>
<?php
mysql_free_result($Recordset1);
?>

Qualcuno può aiutarmi ??

inviato 11 anni fa
gohan079
X 0 X

Non si tratta di un errore di sintassi, ma di un problema con la query. Mi sembra di capire che la query:

$query="SELECT * FROM wood WHERE id = $id";

non vada a buon fine. Probabilmente la causa è l'egata alla variabile $id. Infatti nello script non ho trovato nulla che assegnasse un valore a questa variabile. Per caso è l'id che passi attravero il link (URL)? in questo caso la variabile $id prende il valore passato con il link solo se il PHP è configurato con la direttiva register_global ad "On" nel php.ini. In caso contrario devi usare, al posto di $id, la variabile $_GET['id'].

In questo caso la query diventa:

$query='SELECT * FROM wood WHERE id = ' . $_GET['id'];

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Ciao gianni, ti ringrazio, come sempre sei grande, mi sebra che già una volta mi hai corretto un errore simile.

Vorrei sapere per saperne di + sulle dinamiche usate da post e sul tipo di sintassi che mi hai consigliato dove posso cercare ! stò cercando un manuale che mi possa spiegare le dinamiche del php. cosa mi consigli

risposto 11 anni fa
gohan079
X 0 X

Questo a costo zero:

http://www.phpnews.it/content/view/224/107/

In particolare la parte per maneggiare i dati provenienti da URL:

http://www.phpnews.it/content/view/253/107/

e dai form:

http://www.phpnews.it/content/view/252/107/

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda