- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema PHP
-
Problema PHP
Ciao a tutti,
ho un problemino con il php. Non è il mio lavoro quindi lo "studio" per diletto e smanetto qualche script per applicazioni ad uso personaleIl problema è questo....
avevo uno script per l'inserimento di autoveicoli e motoveicoli usati, tutto ha funzionato alla perfezione fin quando non è stata aggiornata la versione del MYSQL.Ora.. dal lato user tutto bene, dal lato admin invece, quando vado nel pannello di controllo che mi dovrebbe listare tutte le schede, ricevo questo errore:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/motodb/cpanel.php on line 137
Copio e incolla dalla linea 132 fino alla 155
<? $link = mysql_connect($dbhost, $dbuser, $dbpass); $query = "SELECT ccode, viewed, stock, vin, year, make, model, condition, mileage, price FROM $dbvin ORDER BY $sort $order"; $result = mysql_db_query($dbname, $query, $link); $n = 1; while($data = mysql_fetch_array($result)) { if(!($n % 2)) { $bg = "class='fill_light'"; } else { $bg = ''; } echo " <tr $bg> <td class='text'>$data[stock]</td> <td class='text' align='center'>$data[year]</td> <td class='text'>$data[make]</td> <td class='text'>$data[model]</td> <td class='text' align='center'>$data[condition]</td> <!--<td class='text' align='center'>$data[mileage]</td>--> <td class='text' align='center'>$data[price]</td> <td class='text' align='center'>$data[viewed]</td> <td class='text' align='center'><a class='link' href='summary.php?ccode=$data[ccode]'>Options</a></td> </tr> "; $n++; } mysql_close($link); ?>
Ho noato che mettendo gli apici a tutti i valori di questa riga
$query = "SELECT ccode, viewed, stock, vin, year, make, model, condition, mileage, price FROM $dbvin ORDER BY $sort $order";
l'errore sparisce ma.. non viene listata alcuna scheda, come se il DB fosse vuoto.
L'errore è nella query suppongo.. ma dove?????Grazie a chi può darmi qualche dritta!
Andrea
-
$result = mysql_db_query($dbname, $query, $link) or die(mysql_error());
e vedi che errore dice
-
@Thedarkita said:
$result = mysql_db_query($dbname, $query, $link) or die(mysql_error());
e vedi che errore dice
Grazie della dritta!!!
poi spulciando in rete ero arrivato anche io lìDice:
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 'condition, mileage, price FROM vehicle_inventory ORDER BY updated DESC' at line 1
Dice alla riga 1... ma che riga 1?
la riga uno è ancora un commento alla pagina php!!!Anzi.. un tutta quella pagina PHP non c'è nulla così
-
Linea 1 della query!
- controlla che la ariabili scritte nella query non siano vuote
- tra i parametri di order by metti la virgola
-
@andreajazz said:
Linea 1 della query!
Ve l'ho detto che non ne capivo nulla!!!
Adesso vedo un po'...grazie!
-
Ecco risolto.. era tutta una questione di apici!
grrrr fin lì c'ero anche io.. solo che sistemato quelli sbagliati! hahaah
Grazie cmq a tutti... ora mi studio gli altri bachi che ci sono !
Grazie!
Andrea
-
Scusa,dove hai messo gli apici?
Nel mio nuovo script(scritto a classi e funzioni) ho lo stesso problema e non riesco a vnirne a capo...
mi da il tuo stesso errore!
-
@ilnetsurfer said:
Scusa,dove hai messo gli apici?
Nel mio nuovo script(scritto a classi e funzioni) ho lo stesso problema e non riesco a vnirne a capo...
mi da il tuo stesso errore!
Attenti alle parole riservate...
-
@ilnetsurfer said:
Scusa,dove hai messo gli apici?
Nel mio nuovo script(scritto a classi e funzioni) ho lo stesso problema e non riesco a vnirne a capo...
mi da il tuo stesso errore!Eccomi qui
La riga che era:$query = "SELECT ccode, viewed, stock, vin, year, make, model, condition, mileage, price FROM $dbvin ORDER BY $sort $order";
diventa:
$query = "SELECT ccode, viewed, stock, vin, year, make, model, 'condition', 'mileage', 'price' FROM $dbvin ORDER BY $sort $order";
ma non credo che sia una soluzione universale per tutti gli script!
-
purtroppo ho un nuovo problema sempre nello stesso script ma in altra pagina.
Il problema compare quando voglio editare una scheda già inserita, la seleziono, clicco su edita e arrivo alla pagina edit.php dove posso vedere i dati inseriti e modificarli a mio piacimento. Una volta cambiato qualche dato e premuto l'ok....
per un attimo compare questo errore, poi ritorna come se nulla fosse alla vista della scheda (non all'edit della stessa) ma non è stata modificata!
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /edit.php on line 23
O messo il solito "or die(mysql_error());" ma non cambia nulla e a video non mostra nulla.
Ho provato la query da SQL in phpmyadmin e mi dà il seguente errore:#1064 - 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 '$link = mysql_connect($dbhost, $dbuser, $dbpass)' at line 1
E' un errore si sintassi come il precedente... ma non capisco dove
Premetto che prima che fosse cambiata la versione mysq e php, sia questo che il precedente errore.. non c'erano
Grazie a tutti ancora
Andrea
-
Dovresti postare il codice altrimenti sarà difficile aiutarti.
-
@satifal said:
Dovresti postare il codice altrimenti sarà difficile aiutarti.
Ops..è vero!!!
$link = mysql_connect($dbhost, $dbuser, $dbpass); $query = "SELECT * FROM $dbvin WHERE ccode='$ccode'"; $result = mysql_db_query($dbname, $query, $link); $data = mysql_fetch_array($result); mysql_close($link); // strip any added slashes foreach($data as $key => $item) { $data[$key] = stripslashes($item);
Grazie!
-
Hai detto che l'errore si verifica dopo la submit della form di modifica. Il codice che hai postato credo si riferisca al recupero dei dati delle schede da visualizzare altrimenti mi aspetterei di vedere qualche istruzione di UPDATE nella query SQL.
-
Allora forse è qui che fa l'update
require 'secure.php';
require 'global.php';
require 'config/config.php';// process and store data
if($edit) {
// check to see if the stock number entered already exists in db
$link = mysql_connect($dbhost, $dbuser, $dbpass);if(mysql_num_rows($result)) { echo "<script language='JavaScript'> alert('The stock number you entered already exists in the database.'); </script>"; } else { // make input query friendly foreach($_POST as $key => $value) { $_POST[$key] = addslashes($value); } // add listing to database $time = time(); $link = mysql_connect($dbhost, $dbuser, $dbpass); $query = "UPDATE $dbvin SET updated='$time', stock='$_POST[stock]', vin='$_POST[vin]', year='$_POST[year]', make='$_POST[make]', model='$_POST[model]', condition='$_POST[condition]', category='$_POST[category]', mileage='$_POST[mileage]', price='$_POST[price]', exterior='$_POST[exterior]', interior='$_POST[interior]', body='$_POST[body]', doors='$_POST[doors]', engine='$_POST[engine]', fuel='$_POST[fuel]', trans='$_POST[trans]', stereo='$_POST[stereo]', comments='$_POST[comments]' WHERE ccode='$ccode'"; mysql_db_query($dbname, $query, $link); mysql_close($link); echo "<script language='JavaScript'> window.location='summary.php?ccode=$ccode'; </script>"; echo "You updated a vehicle"; exit(); }
} else {
$link = mysql_connect($dbhost, $dbuser, $dbpass);
$query = "SELECT * FROM $dbvin WHERE ccode='$ccode'";
$result = mysql_db_query($dbname, $query, $link);
$data = mysql_fetch_array($result);
mysql_close($link);// strip any added slashes foreach($data as $key => $item) { $data[$key] = stripslashes($item); }
}
?>