2013-03-10 136 views
1

我的MySQL數據庫設置了名稱爲「chatterr」的表名「maillist」。我目前使用下面的php:MySQL查詢和顯示不起作用?

<?php 
mysql_connect("localhost","root",""); 

//query databae 
$query = "SELECT * FROM maillist ORDER BY id DESC LIMIT 4"; 
$result=mysql_query($query) or die('Error, insert query failed'); 
$row=0; 
$numrows=mysql_num_rows($result); 

while($row<$numrows) { 
    $id=mysql_result($result,$row,"id"); 
    $first_name=mysql_result($result, $row, "first_name"); 
    $last_name=mysql_result($result, $row, "last_name"); 
?> 

<?php echo $id; ?> 

<?php 
$row++; 
} 
?> 

它在localhost上工作,但不能在PHP中工作。代碼有什麼問題?

+0

爲什麼你有幾個不同的''標籤?將所有的php代碼封裝在一組''標籤中。你正在拆分你的while循環。 – Aiias 2013-03-10 06:05:43

+0

@Aiaias這與問題無關,但我這樣做是因爲在我沒有上傳的HTML之間,因爲它無關緊要。 – 2013-03-10 06:07:56

+1

[請不要使用'mysql_ *'函數,](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)[它們已被正式棄用。 ](http://php.net/manual/en/function.mysql-connect.php#function.mysql-connect-refsynopsisdiv) – 2013-03-10 06:08:35

回答

3

查詢它

mysql_connect("localhost","root",""); 
mysql_select_db("chatterr"); 

前選擇與mysql_select_db數據庫或查詢

$query = "SELECT * FROM chatterr.students ORDER BY id DESC LIMIT 4"; 

UPDATE指定數據庫名稱:除此之外,你的連接可能失敗。更改

mysql_connect("localhost","root",""); 

$db = mysql_connect("localhost","root",""); 
if (!$db) { 
    die('Could not connect: ' . mysql_error()); 
} 

,看看是否是這種情況。

UPDATE3:把它放在一起。雖然該代碼有一個改進的空間,但它在我的機器上工作得很好。

<?php 
$db = mysql_connect("localhost","root",""); 
if (!$db) { 
    die('Could not connect: ' . mysql_error()); 
} 
$db_selected = mysql_select_db("chatterr", $db); 
if (!$db_selected) { 
    die ('Could not select db: ' . mysql_error()); 
} 

//query databae 
$query = "SELECT * FROM test.students ORDER BY id DESC LIMIT 4"; 
$result=mysql_query($query) or die('Error, insert query failed'); 
$row=0; 
$numrows=mysql_num_rows($result); 

while($row<$numrows) 
{ 
$id=mysql_result($result,$row,"id"); 
$first_name=mysql_result($result,$row,"first_name"); 
$last_name=mysql_result($result,$row,"last_name"); ?> 

<?php echo $id; ?> 

<?php 

$row++; 
} 
?> 

And please, don't use mysql_* functions for new code. They are deprecated . Use prepared statements with either PDO or MySQLi .

+0

那麼dbname是「chatterr」? – 2013-03-10 06:14:19

+0

如果它是你的數據庫名稱,那麼是的。 – peterm 2013-03-10 06:15:24

+0

我仍然收到錯誤。 – 2013-03-10 06:15:41

0

只要做到這一點是這樣的:

<?php 
$con = mysql_connect("localhost","root","") or die(mysql_error()); 
mysql_select_db("chatterr",$con) or die(mysql_error()); 

//query database 
$query = "SELECT * FROM maillist ORDER BY id DESC LIMIT 4"; 
$result=mysql_query($query) or die(mysql_error()); 

while($row = mysql_fetch_array($result)) 
{ 
    $id = $row["id"]; 
    $first_name = $row["first_name"]; 
    $last_name = $row["last_name"]; 
} 
?> 
+0

我仍然收到「錯誤,插入查詢失敗」。 – 2013-03-10 06:15:25

+0

我剛剛更新了我的代碼,您在mysql查詢中遇到錯誤。而不是打印錯誤消息,最好打印mysql查詢錯誤。試試 – 2013-03-10 06:19:17

+0

它所說的是「沒有選擇數據庫」。 – 2013-03-10 06:23:50