简体   繁体   中英

query in PHP doesn't work

when I executo this code the result list is empty. why? infact this line

 $num=mysqli_num_rows($risultati);

doesn't assign the $num variable. thanks.

<?php


    $user=$_POST["vnome_utente"];
    $pw=$_POST["vpassword"];
    //echo "POST: $user $pw";

    $nomeutente="utente_el_utenti";
    $password="";
    $nome_database="db_elenco_utenti";
    $mia_tabella="tab_elenco";
    echo"Connessione al database mysql<br>";
    echo"USER:$nomeutente<br>";
    echo"PASS:$password<br>";
    $connessione = mysql_connect("localhost", $nomeutente, $password)
        or die("Connessione non riuscita: " . mysql_error());
    print ("Connesso con successo<br>");

    echo "apertura database $nome_database ......<br>";
    $esitodb = mysql_select_db ( $nome_database)
     or die("apertura database non riuscita: " . mysql_error());
     print ("Database aperto con successo<br>");

    echo"Elenco delle tabelle:<br>";  
      $risultato = mysql_list_tables($nome_database);
      if (!$risultato) 
      {
        print "Errorore database, Impossibile elencare le tabelle\n";
        print 'Errore MySQL: ' . mysql_error();
        exit;
      }
      while ($riga = mysql_fetch_row($risultato)) 
      {
        print "  $riga[0]<br>";
      }
      mysql_free_result($risultato);   

    echo "eseguo la query<BR>";

    //$query="SELECT * FROM $mia_tabella WHERE Username='$user' AND Password='$pw'";
    $query="SELECT * FROM $mia_tabella WHERE Username='$user' ";
    echo("Query:$query<br>");
    $risultato = mysql_query($query)
    or die("Query non valida: " . mysql_error());
    $num=mysqli_num_rows($risultati);

  mysql_close($connessione);

 echo "<b><center>Database Output</center></b><br><br>";

 $i=0;
 while ($i < $num) {
     $nome=mysql_result($risultati,$i,"Username");
     $cognome=mysql_result($risultati,$i,"Password");
     $eta=mysql_result($risultati,$i,"Type");

     echo "<b>$nome $cognome</b><br>$eta<br><br>";

     $i++;

 }  


?>

您需要使用mysql_num_rows()而不是mysqli_num_rows() ,但是您应该意识到mysql已被弃用,您应该考虑更改所有代码以使用mysqlipdo

You closed the connection too early. close it after the while loop

//mysql_close($connessione);

echo "<b><center>Database Output</center></b><br><br>";

$i=0;
while ($i < $num) {
 $nome=mysql_result($risultati,$i,"Username");
 $cognome=mysql_result($risultati,$i,"Password");
 $eta=mysql_result($risultati,$i,"Type");

 echo "<b>$nome $cognome</b><br>$eta<br><br>";

 $i++;

}

//move to here
mysql_close($connessione);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM