PHP中的查询不起作用

时间:2013-11-15 06:50:25

标签: php mysql

当我执行此代码时,结果列表为空。为什么? 事实上这一行

 $num=mysqli_num_rows($risultati);

不分配$ num变量。 感谢。

<?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++;

 }  


?>

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

您过早关闭了连接。在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);