简体   繁体   English

PHP中的查询不起作用

[英]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. 不分配$ num变量。 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 在while循环后关闭它

//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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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