Warning: mysql_fetch_array()

Ciao, ti ringrazio per tutto il lavoro che hai fatto fino ad ora, ora dovrei presentarti un altro problema, fa parte sempe dello stesso  script o meglio della serie di script, questo è l'errore che ho:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in G:\Programmi\Apache Group\Apache2\htdocs\Test\view.php on line 16

Il file index.php serve ad elencare i record presenti nel database, in particolare deve restituire su una linea data e titolo dell'articolo, solo che mi restituisce solo la data, il codice è:

<?

//Creazione della pagina che conterra i titoli

include ("top_foot.inc.php");

include ("config.inc.php");

top();

//Connessione al DataBase

$db=mysql_connect($db_host, $db_user, $db_password);

if($db==FALSE)

die("Errore nella connesione. Verificare i parametri nel file config.inc.php");

mysql_select_db($db_name, $db)

or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

//Seleziona gli ultimi aritcoli in ordine cronologico nel database

$query="SELECT id,data,titolo FROM wood ORDER By data DESC LIMIT 0,5";

//Identificatore ricavato dal database dopo l'invio della query precedente

$result=mysql_query($query, $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($db); foot();

?>

poi cliccando sulla riga posso accedere al testo completo dell'articolo che presento nella pagina view.php

nella quale mi compare il suddetto errore, il codice della pagina view.php è:

<?

//Creazione della pagina che conterra i titoli

include("top_foot.inc.php");

include("config.inc.php");

top();

//Connessione al database

$db=mysql_connect($db_host, $db_user, $db_password);

if($db==FALSE)

die ("ERRORE nella connessione. Verificare i parametri nel file config.inc.php");

mysql_select_db($db_name, $db)

or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

//Selezione nel database dell'elemento scelto

$query="SELECT titolo, testo, data, wood.nome AS autore, mail FROM wood LEFT JOIN ON wood.autore = autori.nome WHERE id='$id'";

//Prelievo e visualizzazione dei dati

$result=mysql_query($query, $db);

$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($db);

foot();

?>

Mi sapresti dire come posso risolvere questo ennerimo errore ? ti ringrazio

inviato 11 anni fa
gohan079
X 0 X

Prova a cambiare la query da

$query="SELECT titolo, testo, data, wood.nome AS autore, mail FROM wood LEFT JOIN ON wood.autore = autori.nome WHERE id='$id'";

a

$query="SELECT titolo, testo, data, autore, mail FROM wood LEFT JOIN autori ON wood.autore = autori.nome WHERE id='$id'";

 :bye:

P.S. ho diviso questo messaggio dal reso della precedente discussione (regola 8 ) e ho cambiato il titolo (regola 2)  :tichedoff:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Prima di tutto scusami per le regole non rispettate, poi ho provato cambiando il codice ma l'errore è sempre:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in G:\Programmi\Apache Group\Apache2\htdocs\Test\view.php on line 16

risposto 11 anni fa
gohan079
X 0 X

subito dopo la riga 15 ($result=mysql_query($query, $db)) metti queste istruzioni e dimmi che errore ti da:

if (!$result) {
   die('Errore nella query: ' . mysql_error());
}

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

ciao ho inserito le righe di codice che mi hai suggerito dopo la riga 15 nel file view.php, il risultato è questo:

Errore nella query: Column 'mail' in field list is ambiguous

risposto 11 anni fa
gohan079
X 0 X

cambia la query in:

$query="SELECT titolo, testo, data, autore, wood.mail FROM wood LEFT JOIN autori ON wood.autore = autori.nome WHERE id='$id'";

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Ok, ora l'errore è scomparso però il testo da me inserito non viene visualizzato. E' possibile che facendo il copia incolla nei campi di testo il testo inserito non viene accettato, cioè devo abbligatoriamente inserire di volta in volta il testo manualmente e senza copian incolla ?

risposto 11 anni fa
gohan079
X 0 X

non è quello il problema  :dunno:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Ciao, ho fatto una prova, credo ci sia un problema nell'inserimento dei dati, infatti se inserisco i dati manualmente dalla shell di mysql oppure tramite un programma di gestione tipo phpmyadmin oppure Navicat (è quello che ho usato), nella pagina index.php accanto alle date compaiono anche i titoli, cliccando sopra accedo alla pagina view.php dove però il testo non viene cmq visualizzato anche se dopo la sostituzione che mi hai consigliato l'errore non è più presentato, solo non mi visualizza il testo. Per qualche ragione i dati non vengono inserita nel database.

risposto 11 anni fa
gohan079
X 0 X

Ciao,io dovrei avere un problema simile  :-[

Se clicco in una categoria a caso di questa pagina

http://www.tuttosulgsm.com/sms_pronti.php

mi esce lo stesso errore,rintracciabile nella pagina sms.php del sito....

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tuttosul/public_html/sms.php on line 61

Pagine:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/tuttosul/public_html/sms.php on line 103

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tuttosul/public_html/sms.php on line 104

premesso che conosco davvero poco di database e affini,come posso fare per risolvere questo problema?

grazie

risposto 11 anni fa
tuttosulgsm
X 0 X

quelle istruzioni falliscono perché la query a cui sono legate non è andata a buon fine. Pertanto bisogna corregere la query

Non avendo il codice che ha generato l'errore non posso dirti di più   :dunno:

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

E come faccio per correggere la query?

E' strano poi perchè io non ho modificato nulla nella pagina,è uscito tutto da solo  ???

risposto 11 anni fa
tuttosulgsm
X 0 X
E come faccio per correggere la query?

Aspetta che prendo la sfera di cristallo...

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Ciao, io ho lo stesso problema

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Server\inc\registra.php on line 49

ho fatto coem hai detto ho inserito il codice per far venir fuori la causa, ma nn la comprendo.

mi dice:

Errore nella query: Query was empty

che significa che la quesry è vuota??

Questo è il codice:

#Creiamo il form che invierà i dati alla pagina "doregistra.php" con il metodo

POST

< form name="form1" method="post" action="doregistra.php">

#Poi creiamo una tabella .. così da rendere più accettabile l'aspetto del

nostro modulo

  < table border="1" cellpadding="2" cellspacing="2">

    <tr>

      <td><div align="center">Nome Personaggio:</div></td>

      <td>

       #Inseriamo il primo input che andrà a riepmpire la variabile $nome

       < input name="Nome" type="text" id="Nome" value="<?= $nome ?>"></td>

    </tr>

    <tr>

      <td><div align="center">Cognome Personaggio:</div></td>

      <td>

       #Qui il secondo input che riempirà la variabile $cognome

       < input name="Cognome" type="text" id="Cognome" value="<?= $cognome ?

>"></td>

    </tr>

    <tr>

      <td><div align="center">Email:</div></td>

      <td>

       #Qui il terzo input che riempirà la variabile $email

       < input name="Email" type="text" id="Email" value="<?= $email ?>"></td>

    </tr>

    <tr>

      <td><div align="center">Sesso Personaggio:</div></td>

      <td><div align="center">

       #Qui un select, ovvero un menù in cui ci sono due voci: Maschio e

Femmina

      #In modo da far selezionare il sesso del pg, questo select riempirà la

variabile $sesso

         < select name="Sesso" id="Sesso">

          <option value="M" selected>Maschio</option>

          <option value="F">Femmina</option>

        </select>

      </div></td>

    </tr>

    <tr>

      <td><div align="center">Razza:</div></td>

      <td><div align="center">

       #Iniziamo un Select che riempirà la variabile $razza

        < select name="Razza">

       #Qui viene il bello, includiamo il file db.php che ci farà connettere al

database e in seguito

      # selezioniamo dalla tabella razze (A fine lezione saranno elencate le

tabelle da inserire nel database) in cui

      # sono elencati i nomi delle razze disponibili all'iscrizione

        <?

       #Includiamo il file db.php

       include("db.php");

     #Eseguiamo la query

       $sql = "Select nome FROM razze WHERE nascosto = 1";

      $result = mysql_query($mysql);

    #Iniziamo un ciclo while che ripeterà per tutti i risultati un dato codice

    while ($rs = mysql_fetch_array($result)) {  ?>

        <option value="<?= $rs["nome"] ?>"><?= $rs["nome"] ?></option>

<?  }

#Chiudiamo il ciclo while e l'array $rs

    $rs->close;

    ?>

        #Chiudiamo il select

         < /select>

      </div></td>

    </tr>

    <tr>

      <td colspan="2"><div align="center">

           #Di seguito creeremo il bottone che invierà il modulo e quello per

resettarlo

           < input type="submit" name="Submit" value="  Registrati  ">

          <input type="reset" name="Submit2" value="  Resetta ">

      </div></td>

      </tr>

  </table>

  </form>

risposto 11 anni fa
Loke
Loke
1
X 0 X

Se guardi bene il codice ti accorgerai che c'è l'istruzione:

$result = mysql_query($mysql);

tenta di eseguire una query presente nella variabile $mysql. Però quella variabile non contiene la query che invece è stata memorizzata nella variabile $sql nella riga precedente:

$sql = "Select nome FROM razze WHERE nascosto = 1";

Pertanto ti basta cambiare l'istruzione $result = mysql_query($mysql); in $result = mysql_query($sql);

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

ah, ma lol e pensare che lo avevo controllato e ricontrollato alla fine era una variabile errata... XD

Grazie comunque!! :crazy:

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