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

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/….com/httpdocs/include/config.inc.php on line …

    Errore mai verificatosi prima, anche se i dati provenienti dal database e visualizzati sono corretti

    Il provider potrebbe aver fatto dei miglioramenti alla sicurezza ?
    La direttiva del php.ini dice di mettere register_globals = Off
    PUO ESSERE QUESTO IL PROBLEMA ?

    OPPURE QUESTA LA PROCEDURE COMPLETA CHE DA L'ERRORE

    //Questo il codice nel file dove è inserita la form con il nome da cercare.:
    echo " <form method=post action=resultnamexxx.php>\n";
    echo " <select name=\"Tipo\" size=\"1\"><option selected value=\"0\">Nome</option></select>
    echo “ <input type=\"text\" size=\"12\" name=\"chiave\"><input type=\"submit\"
    value=\"Avvio ricerca\">\n";
    echo " </form>\n";


    //Questo il codice nel file resultnamexxx.php chiamato nella form qui sopra:
    //qui il richiamo al file config.inc.php che contiene:
    if ($come == 0) { // Termine di ricerca che inizia con la parola
    $come = " LIKE '".$query."%'";
    }
    elseif ($come == 1) { // Termine di ricerca che contiene la parola
    $come = " LIKE '%".$query."%'";
    }
    elseif ($come == 2) { // Termine di ricerca che finisce con la parola
    $come = " LIKE '%".$query."'";
    }
    $query_string = "SELECT num,name FROM ".$tabella." WHERE ".$colonna.$come;
    $result = mysql_query($query_string, $global_db);
    $nresult=0;
    while ($ris = mysql_fetch_array($result)) {
    $res[$nresult]['num'] = trim($ris['num']);
    $res[$nresult]['name'] = htmlspecialchars(utf8_encode(trim($ris['name'])),ENT_QUOTES);
    if ($res[$nresult]['num']) {
    $nresult++;
    }
    }
    $campo = explode (",",$campi);
    $ncampi = count ($campo);
    for ($i=0; $i < $ncampi; $i++) {
    $campo[$i] = trim ($campo[$i]);
    }
    if ($ordine == 0) {
    $ordinato = "DESC";
    }
    elseif ($ordine == 1) {
    $ordinato = "ASC";
    }
    $query_string = "SELECT ".$campi." FROM ".$tabella." WHERE ".$colonna.$come." ORDER BY ".$campo[0]." ".$ordinato." LIMIT ".$Qstart.", ".$Qend."";
    $result = mysql_query($query_string, $global_db);
    $i=0;
    while ($row = mysql_fetch_array($result)) {
    for ($ii=0; $ii < $ncampi; $ii++) {
    $res[$i][$ii] = trim ($row[$campo[$ii]]);
    if ($campo[$ii] == 'name') {
    $res[$i][$ii] = htmlspecialchars (utf8_encode ($res[$i][$ii]),ENT_QUOTES);
    }
    $res[$i][$campo[$ii]] = $res[$i][$ii];
    }
    $i++;
    }
    //Qui il proseguire del codice del file resultnamexxx.php
    $chiave = htmlspecialchars(utf8_decode(trim($chiave)));
    if ($Tipo==0) { // ricerca del nome precedentemente inserito
    $query = "name";
    }
    $nome_file_inc = "trovanomexxx.php"; //link alla pagina di ricerca
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }


    //Questo il codice nel file trovanomexxx.php:
    $tabella = "contienenomi";
    $variabili = "num,name ORDER BY contienenomi.name";
    //ISTRUZIONI PER ORDINARE LA VISUALIZZAZIONE
    //$ordine è un valore numerico che assume due valori/significati:
    //0 = discendente (la lista inizierà dalla lettera z per arrivare alla lettera A)
    //1 = ascendente (la lista inizierà dalla lettera A per arrivare alla lettera Z)
    $ordine=1;
    //$come è un valore numerico che indica come effettuare la ricerca:
    //0 = il campo inizia con il termine cercato
    //1 = il campo contiene il termine cercato
    //2 = il campo finisce con il termine cercato
    $come=0;
    Cerca ($tabella,$variabili,$ordine,$come,$query,$chiave, $page);

    echo "<div align=\"center\">\n";
    echo " <table width=\"100%\" border=\"0\" bgcolor=\"#FFFFFF\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"#FFFFFF\">\n";
    //di seguito tutti i valori che provengono in modo corretto dal database

    PRIMA DELLA PRESENTAZIONE DELLA WEB APPARE LA SCRITTA OGGETTO DI QUESTO MESSAGGIO:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/….com/httpdocs/include/config.inc.php on line …

    L'ERRORE FA RIFERIMENTO al file config.ini.php alla riga :
    while ($row = mysql_fetch_array($result)) {

    Se ci fossero argomenti riguardanti il mio problema e trattati in precedenza Vi sarei grato se me li segnalaste.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105
    per il codice php usa i tag appositi, non si capisce niente così!

  3. #3
    Originariamente inviato da Satore11
    per il codice php usa i tag appositi, non si capisce niente così!
    Per spiegare come funziona l'applicazione sono partito dal file che contiene la form dove a mezzo delle istruzioni SELECT ed IMPUT si inserisce il dato
    da cercare in cui la variabile name contiene la chiave di ricerca.
    La variabile puó essere cercata in vari modi :
    con le lettere d'inizio, con le lettere contenute oppure con le lettere finali
    Da qui ecco le istruzioni:
    if ($come == 0) {
    $come = " LIKE '".$query."%'";
    }
    elseif ($come == 1) {
    $come = " LIKE '%".$query."%'";
    }
    elseif ($come == 2) {
    $come = " LIKE '%".$query."'";
    }
    Devo spiegarlo cosí o servono tutte le strutture dei vari files fino a scoprire da cosa è causato l'errore segnalato e che mai prima d'ora si era mai presentato in considerazione che nulla ho cambiato nelle istruzioni da qualche anno ?

    L'errore :
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/….com/httpdocs/include/config.inc.php on line …
    fa riferimento ad una riga specifica del file config.inc.php che contiene le aperture del dabase e le tante variabili che sono richiamate dai files php.
    Questa è la riga che da l'errore while ($row = mysql_fetch_array($result)) { e che è contenuta in questa sequenza a seguire

    $query_string = "SELECT ".$campi." FROM ".$tabella." WHERE ".$colonna.$come." ORDER BY ".$campo[0]." ".$ordinato." LIMIT ".$Qstart.", ".$Qend."";
    $result = mysql_query($query_string, $global_db);
    $i=0;
    while ($row = mysql_fetch_array($result)) {
    for ($ii=0; $ii < $ncampi; $ii++) {
    $res[$i][$ii] = trim ($row[$campo[$ii]]);
    if ($campo[$ii] == 'name') {
    $res[$i][$ii] = htmlspecialchars (utf8_encode ($res[$i][$ii]),ENT_QUOTES);
    }
    $res[$i][$campo[$ii]] = $res[$i][$ii];
    }
    $i++;
    }

  4. #4
    Per trovare l'errore ho sostituito
    while ($row = mysql_fetch_array($result)) {
    con
    while ($row = mysql_fetch_array($result) or die('Check file config: ' . mysql_error())) {

    L'errore era dovuto all'ordine delle istruzioni che non erano in sequenza nel file trovanomexxx.php dove l'istruzione
    $variabili = "num,name ORDER BY contienenomi.name";
    andava sistemata subito dopo la variabile
    $come=0;
    e prima di
    Cerca ($tabella,$variabili,$ordine,$come,$query,$chiave, $page);

    In pratica osservando il primo messaggio di questa discussione nel file trovanomexxx.php parte delle istruzioni vanno sostituite con:

    $tabella = "contienenomi";
    //ISTRUZIONI PER ORDINARE LA VISUALIZZAZIONE
    //$ordine è un valore numerico che assume due valori/significati:
    //0 = discendente (la lista inizierà dalla lettera z per arrivare alla lettera A)
    //1 = ascendente (la lista inizierà dalla lettera A per arrivare alla lettera Z)
    $ordine=1;
    //$come è un valore numerico che indica come effettuare la ricerca:
    //0 = il campo inizia con il termine cercato
    //1 = il campo contiene il termine cercato
    //2 = il campo finisce con il termine cercato
    $come=0;
    $variabili = "num,name ORDER BY contienenomi.name";
    Cerca ($tabella,$variabili,$ordine,$come,$query,$chiave, $page);

    Adesso funziona tutto e l'errore
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource ...
    non viene piú visualizzato

  5. #5
    Utente di HTML.it L'avatar di phpeer
    Registrato dal
    Feb 2012
    Messaggi
    76
    Hai provato con mysql_fetch_assoc() ?

  6. #6
    Originariamente inviato da phpeer
    Hai provato con mysql_fetch_assoc() ?
    Faró in seguito delle prove, per ora tutto funziona e quando funziona per principio non si tocca ... altro è studiare e risolvere.
    Grazie per il suggerimento.

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.