2014-01-12 48 views
-2

這是代碼,爲什麼我得到這個錯誤?php-mysqli_num_rows()期望參數1爲mysqli_result,布爾值爲

警告:mysqli_num_rows()預計參數1被mysqli_result,布爾給出

上$ conta_artisti = mysqli_num_rows(preferenze1 $);

如果查詢沒有找到項目?

session_start(); 
$mail = $_SESSION['Mail']; 
$query = $mysqli->query("SELECT * FROM valutazione WHERE email='$mail'"); 
$countresults = mysqli_num_rows($query); 

if($countresults == 0) 
{ 
$preferenze = $mysqli->query("DROP VIEW IF EXISTS artisti_p"); //recupero id degli artisti preferiti 
$preferenze1 = $mysqli->query("CREATE VIEW artisti_p AS SELECT idartista FROM artisti_preferiti WHERE email='$mail'"); 
if($preferenze1) 
{ 

    $conta_artisti = mysqli_num_rows($preferenze1); 
    if($conta_artisti > 0) 
    { 
     $preferenze = $mysqli->query("DROP VIEW IF EXISTS album_p"); 
     $album_artita_p = $mysqli->query("CREATE VIEW album_p AS SELECT idalbum FROM artisti_p JOIN artisti_album ON artisti_p.idartista=artisti_album.idartista"); 
     $preferenze = $mysqli->query("DROP VIEW IF EXISTS info_album_p"); 
     $info_album_artista_p = $mysqli->query("CREATE VIEW info_album_p AS SELECT * FROM album_p JOIN album ON album_p.idalbum=album.ID'"); 
     $index_p = 0; 
     while($row = mysqli_fetch_array($info_album_artista_p)) 
     { 
      $id_p[$index_p]=$row['idalbum']; 
      $nome_p[$index_p]=$row['NOME']; 
      $casa_p[$index_p]=$row['CASA_DISCOGRAFICA']; 
      $anno_p[$index_p]=$row['ANNO_USCITA']; 
      $durata_p[$index_p]=$row['DURATA_ALBUM']; 
      $index_p++; 
     } 
    } 
} 
+0

一個'創建view'語句不返回任何行。您需要查詢該視圖。 (或者說,您根本不需要創建該視圖,並使用適當的綁定變量運行普通的'select'。) – Mat

+0

爲什麼您一直在重新創建視圖? – h2ooooooo

+0

「CREATE VIEW」torna un booleano ...無法使用mysqli_num_rows($ preferenze1) –

回答

0

看一看的mysqli::query()

失敗時返回FALSE的文檔。

您的代碼假定這不會發生。它只是。處理這種情況:

$query = $mysqli->query("SELECT * FROM valutazione WHERE email='$mail'"); 
if (! $query) { 
    die("error"); 

} 
$countresults = mysqli_num_rows($query); 

也BTW看看:How can I prevent SQL injection in PHP?

相關問題