Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Warning: mysql_fetch_array()

    Buonasera,
    sono circa 2 anni che non programmo in php, e francamente mi sono un pò arrugginita, sto creando una query per impostare dei dati di un array da riportare poi in un secondo momento in pagina. Ho creato la connessione (così come facevo 2 anni fa).

    Nella pagina connecting.php ho messo:

    <?php
    mysql_connect("localhost:8080","user","password") or die ("Connessione al server non riuscita");
    mysql_select_db("nomedb") or die ("Connessione al database non riuscita.");
    ?>

    Mentre nella pagina dove faccio la query scrivo:

    <?php
    include('connecting.php');

    $sql = "select *
    from nometabella
    ";
    $recset = mysql_query($sql);
    $home = array();
    $i = 0;
    while ($rs = mysql_fetch_array($recset)):
    imposto i campi dell'array
    endwhile;
    ?>

    lancio la pagina e mi restituisce questo messaggio di errore:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in percorsofile.php on line 12.
    alla riga 12 di questa pagina si trova questa riga:
    while ($rs = mysql_fetch_array($recset)):

    cosa sbaglio?
    grazie a chi mi aiuterà
    buona serata

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    Sicura che la query sia corretta?
    Ad esempio:
    - il nome della tabella che metti nella query è corretto?
    - la tabella contiene qualche record?

    Prova anche a stampare
    print_r($recset);
    così vedi se contiene qualcosa, se non contiene niente è normale che mysql_fetch_array() mostri un warning, non ha nulla di cui fare il fetch.

  3. #3
    Hai installato MySQL sulla porta 8080?!?! Mi sembra alquanto strano questo:

    Codice PHP:
    ...
    mysql_connect("localhost:8080","user","password") or die ("Connessione al server non riuscita");
    ... 
    In ogni caso aggiungi mysql_error():

    Codice PHP:
    ...
    $recset mysql_query($sql) or die ("Error: ".mysql_error());
    ... 
    e vedi che messaggio ti viene fuori.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    ciao satifal,
    utilizzo xampp ed è istallato sulla porta 8080, infatti per collegarmi al phpmyadmin scrivo localhost:8080, quindi nella pagina per la connessione ho scritto in questo modo.
    ho messo la modifica che mi hai consigliato e mi restituisce questo messagio :"Error: No database selected". ma non capisco. come non mi collego ad database?

  5. #5
    Ovviamente i dati che passi qui sono quelli corretti:

    Codice PHP:
    mysql_connect("localhost:8080","user","password") or die ("Connessione al server non riuscita");
    mysql_select_db("nomedb") or die ("Connessione al database non riuscita."); 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    si, io ora per riportarli nel forum gli ho coperti, però li metto in chiaro lì nella pagina.
    ho provato anche a cancellare il db, e anzichè mettere localhost:8080 come host nella dichiarazione dei privilegi dell'utente in phpmyadmin, ho messo localhost, ma il risultato non cambia, mi da sempre quell'errore

  7. #7
    Ciao,
    Se usi windows vista o seven
    prova a mettere 127.0.0.1 anziché localhost

    anzi provaci comunque che spesso risolve tutto:-)

  8. #8
    $recset = mysql_query($sql);

    mysql_query richiede oltre alla query stessa come parametro, anche la connessione al database.

    quindi diventerà

    $recset = mysql_query($sql, $connessione_al_db);

    Non ricordo bene in che ordine vadano messi.
    Molto probabilmente è quello l'errore.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    Originariamente inviato da sir daniel
    $recset = mysql_query($sql);

    mysql_query richiede oltre alla query stessa come parametro, anche la connessione al database.

    quindi diventerà

    $recset = mysql_query($sql, $connessione_al_db);

    Non ricordo bene in che ordine vadano messi.
    Molto probabilmente è quello l'errore.
    vero solo se ci sono connessioni diverse aperte, se usa una sola connessione non serve, di default verrà presa quella.

  10. #10
    ho risolto, avevi ragione tu satifal, a caso, dato che non riuscivo proprio a risolvere questo errore, ho rimesso nella pagina per la connessione localhost, anzichè localhost:8080, e funziona, non avevo cambiato altro in quella pagina l'avevo un pò accantonata, e ora funziona. grazie a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.