2 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個贊
我自己測試了一下,到是沒出現(xiàn)你這樣的問題;
感覺上可能問題出在"SELECT * FROM message where id=".$_GET['id'] 這一語句上;
我的測試代碼:(用DEDECMS數(shù)據(jù)庫測試的)
<?php
$cfg_dbhost = 'localhost';
$cfg_dbname = 'dedecmsv57utf8';
$cfg_dbuser = 'root';
$cfg_dbpwd = '';
$conn = mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
mysql_select_db($cfg_dbname);
$rs = mysql_query('select * from dede_area',$conn);
while( $row = mysql_fetch_array($rs) ){
//print($row['id']." - ");
//print($row['name']."<br />");
?>
<a href="?id=<?php echo $row['id'];?>" ><?php echo $row['name'];?></a>
<?php
}
$id = $_GET['id'] ? $_GET['id'] : 1; //加上這一句我看挺有必要的,可以防止undefinde index的錯誤發(fā)生。個人感覺比直接在查詢語句中使用$_GET安全可靠得多。
$rs = mysql_query("select * from dede_area where id = ".$id,$conn);
$row = mysql_fetch_array($rs);
print($row);
?>
再回頭看你的問題描述,以及你的代碼,感覺樓上說重復(fù)賦值的原因就有道理了。
$SQL被你重復(fù)賦值后的值為"SELECT * FROM message order by id desc",在執(zhí)行查詢后,返回的是message這張表的全部數(shù)據(jù),并且按倒序排列。
所以你無論怎么傳值,都只得到該表的最后一行的數(shù)據(jù)。

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個贊
ceshi2.php頁面
$SQL="select * from message where id=".$_GET['id'];
$SQL="SELECT * FROM message order by id desc";
你為什么寫2個sql 而且聲明的變量名一樣,
這樣 第二個會把第一個$SQL覆蓋掉,你傳不傳id 查得都是所有數(shù)據(jù)
補(bǔ)充:只查最后一個的話可以這樣
select * from message order by id desc limit 1
我先按照id降序排列 然后只取第一條。
另一種就是你寫的這種也能實(shí)現(xiàn),就是mysql_fetch_array 不放在while里面 就循環(huán)一次
- 2 回答
- 0 關(guān)注
- 523 瀏覽
添加回答
舉報