Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    321

    Problema Con Mysql_fetch_array

    salve a tutti....
    ho un problema con un array che non mi carica i dati....l'array
    $dati = mysql_fetch_array non funziona, non carica nessun dato...
    vorrei specificare che queste funzioni sono membri di una classe...in una libreria di codice php

    c'è qualcuno che mi sa aiutare?


    public function show_admin($username,$password,$livello){
    // variabili
    $username = $_POST['username'];
    $password = $_POST['password'];
    $livello = $_POST['livello'];
    // connessione al server
    $this->connessione();
    // codice per il logni utente
    $login_utente = "SELECT * FROM tbl_administration WHERE admin_username = '". $username ."' and admin_password = '". md5($password) ."' and admin_livello = '". $livello."'";
    $result = mysql_query($login_utente) or die(mysql_error());
    $dati = mysql_fetch_array($result,MYSQL_BOTH);

    if(mysql_num_rows($result)!=0){

    do {
    echo $dati['username'];
    echo "
    ";
    echo $dati['password'];
    echo "
    ";
    echo $dati['livello'];
    echo "
    ";
    } while ($dati = mysql_fetch_array($result));
    } else {
    echo "non riesco a caricare i dati";
    }
    }

  2. #2
    Se con le tre condizioni che metti nel where dovessi ricevere piu' righe allora dovresti seriamente preoccuparti dell'integrita' dell'amministrazione.

    Quindi controlla se le righe sono = a 1.
    Se != da 1 - con 0 non esiste oppure hai piu' registrazioni con lo stesso utente.

    Quindi niente while che sarebbe micidiale in caso di una sql injection perche' darebbe una lista di user e password. Estrai semplicemente la sola riga valida dal result set.

    codice:
    if(mysql_num_rows($result) == 1) {
    
            $dati = mysql_fetch_assoc($result));
            echo $dati['username'];
            echo "
    ";
            echo $dati['password'];
            echo "
    ";
            echo $dati['livello'];
            echo "
    ";
    
            } else {  echo "Errore di connessione, ciao micio";
                         exit;   }
    Ma onestamente lasciami dire che occorre avere piu' fiducia nel software ed evitare di estrarre dei dati identici a quelli posti nel where. Controlla con la query se la riga trovata e' solo una. Se si, non hai nulla da estrarre ma devi solo validare i dati che hai usato nel where. Evitando di passare poi la password in un cookie o in un file di sessione. Lasciala tranquilla dov'e'.

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    321
    ci vuole troppo tempo a spiegare tutto...il mio problema è che mysql_fetch_array non carica i dati presi dal database...ho bisogno di risolvere questo problema...non fare a caso che è un amministratore o un utente...questo è solo un esempio...ho bisogno di capire perchè non funziona...i dati non vengono caricati....

  4. #4
    Originariamente inviato da TEODORO
    ci vuole troppo tempo a spiegare tutto...il mio problema è che mysql_fetch_array non carica i dati presi dal database...ho bisogno di risolvere questo problema...non fare a caso che è un amministratore o un utente...questo è solo un esempio...ho bisogno di capire perchè non funziona...i dati non vengono caricati....
    perche' usi do ... while

    usa solo il while perche' quando chiami l'array $dati con il do questo non e' ancora valorizzato

    codice:
    if(mysql_num_rows($result) != 0)  {
    
       while ($dati = mysql_fetch_array($result)) {
       echo $dati['username'];
       echo "
    ";
       echo $dati['password'];
       echo "
    ";
       echo $dati['livello'];
       echo "
    ";
       } 
    
    } else { echo "Nessun risultato disponibile";   }

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    321
    nella speranza che funzionasse....ho provato solo con while....ho provato con do while...ho provato senza...ma niente non funziona...boh

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    321
    ok risolta....ora va...
    forse si era ingrippato il server
    Grazie della collaborazione...

  7. #7
    Originariamente inviato da TEODORO
    ok risolta....ora va...
    forse si era ingrippato il server
    Grazie della collaborazione...
    Probabilmente venivano pescati dei dati nella cache del browser. Specie questo se usi firefox. Ripulisci sempre tutto quando fai delle variazioni...


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

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.