Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208

    Errore SQL: "Supplied Argument is not...."

    Salve, sono nuovo del forum, e sono alle prime armi per quello che riguarda la parte pratica di PHP e MySQL. Sto facendo dei banali esperimenti di formattazione a video del contenuto di una tabella, e benchè a naso mi sembri tutto corretto nella compilazione del codice il browser in locale continua a darmi la seguente filotta di errori:

    Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in C:\Programmi\AppServ\www\test\TMPkiwl3vodeg.php on line 14

    Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\Programmi\AppServ\www\test\TMPkiwl3vodeg.php on line 15

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\Programmi\AppServ\www\test\TMPkiwl3vodeg.php on line 16

    ....linee che corrispondono al seguente codice:


    $result=mysql_db_query("prova","SELECT * from maple","$link");
    mysql_close("prova");
    $row=mysql_fetch_row("$result");
    echo ($row)
    ?>

    Aldilà della forma probabilmente scolastica e non bellissima del linguaggio, sono due ore che riguardo questa stringa e non mi pare di trovare nulla di sbagliato...preciso che in fase di connessione al db sono correttamente impostati i vari valori stringa relativi allo user e alla password in un file config.php incluso ad inizio pagina, il dubbio forte che mi era venuto è circa la giusta collocazione dei file di db nella cartella locale, motivo per cui forse non reputa validi gli argomenti in questione. Qualcuno sa darmi una dritta? Vi ringrazio in anticipo

  2. #2
    Ciao,
    ci mostri il codice di selezione del DB e di connessione?
    http://www.newsol.ch
    "I'm so sorry"
    Mario Corti, CEO Swissair, 2 Ottobre 2001
    La crisi della società Swissair è culminata con il "grounding" dell’intera flotta aerea nei primi giorni del mese di ottobre 2001.

  3. #3
    codice:
    $result=mysql_db_query("prova","SELECT * from maple","$link"); 
    mysql_close("prova"); 
    $row=mysql_fetch_row("$result");
    mysql_close vuole il resource id del link e se mai ti da retta la funzione dopo si trova con le brache a terra....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Originariamente inviato da piero.mac
    codice:
    $result=mysql_db_query("prova","SELECT * from maple","$link"); 
    mysql_close("prova"); 
    $row=mysql_fetch_row("$result");
    mysql_close vuole il resource id del link e se mai ti da retta la funzione dopo si trova con le brache a terra....
    hai ragione su questo, mi sono reso conto dopo e ho già corretto infatti.

    Quanto al codice di connessione al db richiesto sopra, eccolo (a sto punto posto tutto ):


    <html>
    <head>
    <title>Proviamo a stampare sto cacchio di database!</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <?
    include "config.php";
    $link = mysql_connect ("$dbhost","$dbuser","$dbpass") or die ("connessione non eseguita");
    mysql_select_db ("prova");
    $result = mysql_query("prova","SELECT * from maple","$link");
    mysql_close("$link");
    $row = mysql_fetch_row("$result");
    echo ($row);
    ?>

    </body>
    </html>


    il config incluso in alto:

    <?
    $dbhost="localhost";
    $dbuser="root";
    $dbpass="xxxxx";
    $dbname="prova";
    ?>


    ovviamente non c'e' formattazione ed è largamente incompleto per essere pubblicato, è solo una prova per ora

    P.S c'è qualche modifichina perchè ho scoperto che consigliano per motivi di compatibilità di utilizzare mysql_select_db e mysql_query piuttosto che il singolo mysql_db_query

  5. #5
    Dunque, sitemo un po' il codice almeno è più chiaro:

    codice:
    mysql_connect($dbhost, $dbuser, $dbpass) or die("connessione non eseguita");
    
    mysql_select_db($dbname);
    
    $result = mysql_query("SELECT * from maple;");
    
    $row = mysql_fetch_row("$result");
    
    echo ($row[0]);
    
    mysql_close();
    Ovviamente ti stamperà solo una riga. Ho tolto tutti i riferimenti al link della connessione per evitare confusione.
    Controlla che la tabella si chiami maple.
    http://www.newsol.ch
    "I'm so sorry"
    Mario Corti, CEO Swissair, 2 Ottobre 2001
    La crisi della società Swissair è culminata con il "grounding" dell’intera flotta aerea nei primi giorni del mese di ottobre 2001.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Grazie, provo subito

    Intanto ho già notato che avevo omesso il punto e virgola in chiusura di query...come vedi a livello concettuale credo di starci dentro, ma a livello pratico devo ancora mangiare parecchie patate...

    Grazie mille cmq, provo e ti dico

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Ok ho fatto...e nonostante tutto continua a darmi questo:

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\Programmi\AppServ\www\test\TMPo32hcvoi0k.php on line 16

    riga dove cade l'espressione della variabile $result...

    La tabella ha quel nome lì, ovviamente fittizio. Bah, potrà dipendere da AppServ 2.5.5?

  8. #8
    togli il punto e virgola dalla fine della query

    non serve assolutamente a nulla, anzi e probabile che gli dia pure fastidio all'estensione

    inoltre metti un bell

    $query = "..........";
    mysql_query($query) or die("Errore! {$query}\r\n" . mysql_error());

    cosi vedi il messaggio d'errore e la query che hai inviato in esecuzione

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Replico a questa e vado a ninna...

    Così facendo ha spostato l'errore sulla riga di echo ($row), al posto della variabile ho riespresso per ridondanza nuovamente la funzione mysql_fetch_row (....) ed inizialmente mi ha stampato solamente il numero 1 a video.

    Secondariamente, ho modificato la voce echo ($row[0]) trasformandola in echo ($row) e ora compare una scritta ARRAY semplice semplice. Ma di contenuto non se ne parla. Probabilmente ora devo passare a specificare i campi oltre che le linee.

  10. #10
    questo è abbastanza normale .......

    $row è un'array ...

    se vuoi vederne il contenuto per intero
    print_r($row);\

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 © 2025 vBulletin Solutions, Inc. All rights reserved.