2012-12-02 69 views
0

我收到以下錯誤,當我嘗試顯示index.php 警告:mysql_numrows()期望參數1是資源,布爾在C:\ xampp \ htdocs \ cards \ index.php中給出的第18行新手while循環

我不知道我是否沒有正確連接到數據庫,或者是否有其他錯誤。基本上我試圖從我的表「卡」顯示3個隨機數據行。我想要顯示數據的表格中的列是「playerName」。我並不擔心格式化數據。代碼如下:

<?php 
include_once 'header.php'; 
require_once 'config.php'; 

$con = mysql_pconnect("localhost","*****","*****"); 
mysql_select_db("USE cards",$con); 
$cards=0; 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

$sql = "SELECT * FROM cards ORDER BY RAND() LIMIT 3"; 

$results = mysql_query($sql); 
$array = mysql_fetch_array($results); 

$num=mysql_num_rows($results); 

$i=0; 
while ($i < $num) { 

echo $rows['playerName']; 
$i++; 
} 

include_once 'footer.php'; 

?> 

我知道這可能是一個簡單的新手問題,但我很感謝幫助。

+0

見我的答案:) –

回答

3

您的mysql_select_db調用應僅將數據庫名稱作爲第一個參數,而不是整個USE語句。最有可能的是它默默地失敗,並且不會選擇卡片數據庫。然後,查詢失敗(再次,靜靜地)返回false。

0

另外,它是mysql_num_rows(不是mysql_numrows)。

手冊:http://php.net/manual/en/function.mysql-num-rows.php

+0

我所做的編輯,現在我得到三個名字只是輸出呼應同一個,但它輸出的同名3次。每次我重新加載它是一個不同的名稱,但它只是3次相同的名稱。 – user1871031

+0

@ user1871031看到我的回答:) –

0

兩件事情,呼應一個數組不會打印(回聲$結果;)而使用的print_r($結果)或後續代碼var_dump($結果)和其他的事情,我估計錯誤造成可導致不返回任何結果,但如果你用var_dump或print_r的,你將能夠驗證是否是這樣的話:)

還這裏有一個錯字:$ CON = mysql_pconnect(「localhost」,則「jalexander」 「brunswick3」);移除連接:)

另外,P,你可能想在這裏的asterixes取代您的數據庫憑據:)

最後,聲明變量卡,但從來沒有使用它?

其實多一個,改變$行[playerName]到$行[ 'playerName']

得到不同的行,而不是使用while循環,你可以使用foreach像這樣:

foreach($array as $row){ 
echo $row['playerName']; 
} 

還是要做到這一點使用while循環使用

$i=0; 
while ($i < $num) { 

echo $rows[$i]['playerName']; 
$i++; 
} 

它沒有在工作您當前的代碼,因爲您沒有通過數組中的元素循環,每次