2013-11-15 56 views
0

当我executo这段代码的结果列表是空的。为什么? INFACT此行在PHP中查询不起作用

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

} 


?> 
+0

使用mysql_num_rows()代替mysqli_num_rows的() – Bhadra

+1

请保持一致,请使用mysql_或mysqli_您创建了mysql_和使用mysqli_中期$ NUM = mysqli_num_rows连接($ risultati ); 使用mysqli_整个代码它对mysql_比较好得多 – Veerendra

回答

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

您需要使用mysql_num_rows()代替mysqli_num_rows(),但你应该知道,mysql已被废弃,你倒是应该考虑改变所有代码中使用mysqlipdo