亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
mysql查詢語(yǔ)句+count函數(shù),為什么沒(méi)有結(jié)果?
[打印本頁(yè)]
作者:
NewCore
時(shí)間:
2009-02-17 16:09
標(biāo)題:
mysql查詢語(yǔ)句+count函數(shù),為什么沒(méi)有結(jié)果?
Hello All:
很奇怪的問(wèn)題,一個(gè)簡(jiǎn)單的學(xué)生選課系統(tǒng),表是選課表,記錄學(xué)生選課情況,結(jié)構(gòu)如下:
mysql> describe selected;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| Stu_name | varchar(50) | | | | |
| Stu_id | varchar(50) | | PRI | | |
| Dept | varchar(50) | YES | | NULL | |
| Class | varchar(50) | YES | | NULL | |
| Major | varchar(50) | YES | | NULL | |
| Course_name | varchar(50) | YES | | NULL | |
| Course_id | varchar(50) | | PRI | | |
+-------------+-------------+------+-----+---------+-------+
復(fù)制代碼
現(xiàn)在通過(guò)如下語(yǔ)句查詢,每門課程的選擇人數(shù):
$query = "Select count(*) as stu_num from selected where Course_id='id'";
復(fù)制代碼
id是之前查詢出的課程號(hào),這個(gè)值經(jīng)過(guò)打印,看到是正確的,并且表中有相應(yīng)的記錄。
現(xiàn)在問(wèn)題是:如果在頁(yè)面上查詢的話,不能得到stu_num的值,而通過(guò)mysql>命令行下輸入:
mysql>"Select count(*) as stu_num from selected where Course_id='1'";
復(fù)制代碼
就可以正確得到stu_num的值。[/code]
實(shí)在是想不通為什么,請(qǐng)各位幫忙看看,小弟拜謝!
[
本帖最后由 NewCore 于 2009-2-17 16:10 編輯
]
作者:
hg70hg70
時(shí)間:
2009-02-17 21:09
$result = mysql_query($query);
作者:
NewCore
時(shí)間:
2009-02-17 21:18
標(biāo)題:
回復(fù) #2 hg70hg70 的帖子
什么意思?這個(gè)查詢的結(jié)果是由stu_num返回的?加上那個(gè)有什么用么?
作者:
shitou254
時(shí)間:
2009-02-18 09:22
難道是 :
$query = "Select count(*) as stu_num from selected where Course_id='id'"; 錯(cuò)了?
$query = "Select count(*) as stu_num from selected where Course_id='$id'";
???????檢查檢查
作者:
NewCore
時(shí)間:
2009-02-18 10:16
標(biāo)題:
回復(fù) #4 shitou254 的帖子
實(shí)際中是這個(gè)樣子的:
$query = "Select count(*) as stu_num from selected where Course_id='$row[Course_id]'";
復(fù)制代碼
其中$row[Course_id]是從課程表中查出來(lái)的,所有存在的課程編號(hào)。
我特別把$query打印出來(lái)了,應(yīng)該是沒(méi)有問(wèn)題呀。
作者:
NewCore
時(shí)間:
2009-02-19 14:13
小沈陽(yáng)語(yǔ)錄:為什么呢?這是為什么呢?
作者:
kukat
時(shí)間:
2009-02-19 14:38
$query = "Select count(*) as stu_num from selected where Course_id='{$row['Course_id']}'";
// or
$query = "Select count(*) as stu_num from selected where Course_id=".$row['Course_id'];
復(fù)制代碼
原因是數(shù)組在字符串里轉(zhuǎn)義會(huì)不正常
作者:
kukat
時(shí)間:
2009-02-19 14:40
遇到這種問(wèn)題調(diào)試起來(lái)很簡(jiǎn)單
echo $query;
看看哪錯(cuò)了
作者:
NewCore
時(shí)間:
2009-02-19 14:49
標(biāo)題:
回復(fù) #8 kukat 的帖子
$query的信息我倒是打印了,但是對(duì)這個(gè)不是很熟,也許是出錯(cuò)了也沒(méi)看出來(lái)。
我先試試。
[
本帖最后由 NewCore 于 2009-2-19 14:52 編輯
]
作者:
NewCore
時(shí)間:
2009-02-19 15:02
這里完整的代碼如下:
for($i=0;$i<$dd;$i++) {
$row = mysql_fetch_array($result);
/* Get student number of each course */
//$query = "Select count(*) as stu_num from selected where Course_id='$row[Course_id]'";
//$query = "Select count(*) as stu_num from selected where Course_id=".$row['Course_id'];
$query = "Select count(*) as stu_num from selected where Course_id='{$row['Course_id']}'";
$res = mysql_query($query) or die("Invalid query: " . mysql_error());
echo $query, "\n", $row['Course_id'], "\n", $stu_num, "\n", "xxx";
echo "<tr bgcolor=\"#CCFF99\"><td>".$row["Course_id"]."</td><td>".$row["Course_name"]." </td><td>".$row["Teacher_name"]. "</td><td>".$row["Course_time"]."</td><td>".$row["Course_place"]."</td><td>".$row["Credit"]."</td><td>".$stu_num."</td><td><a href=\"delete.php?courseid=".$row["Course_id"]."\">³·Ïû</a></td></tr>";
}
復(fù)制代碼
我之前也用echo打印了,但是也沒(méi)看出錯(cuò)誤來(lái)呀。
修改過(guò)后在頁(yè)面上打印內(nèi)容如下:
Select count(*) as stu_num from selected where Course_id='1' 1 xxx
Select count(*) as stu_num from selected where Course_id='3' 3 xxx
Select count(*) as stu_num from selected where Course_id='2' 2 xxx
復(fù)制代碼
有點(diǎn)奇怪!
作者:
wildlily980
時(shí)間:
2009-02-20 20:54
$row = mysql_fetch_array($result);
.....
$res = mysql_query($query) or die("Invalid query: " . mysql_error());
兩個(gè)錯(cuò)誤,一個(gè)是$result,一個(gè)是$res
先后次序也應(yīng)該顛倒一下.
作者:
NewCore
時(shí)間:
2009-02-21 12:09
標(biāo)題:
回復(fù) #11 wildlily980 的帖子
大哥,$result和$res本來(lái)就是不一樣的!。
$result是前面查詢的結(jié)果,包括查詢到的所有課程編號(hào)。這里用查詢到的課程編號(hào)再去查每門課程的選課人數(shù);
$res是查詢選課人數(shù)時(shí)的返回值,在這里應(yīng)該沒(méi)有什么作用!
[
本帖最后由 NewCore 于 2009-2-21 12:11 編輯
]
作者:
wildlily980
時(shí)間:
2009-02-21 18:30
那你的$stu_num變量又是從哪里來(lái)的值呢?
改成這樣:
$res=...
$stu_num_row=mysql_fetch_array($res);
echo $stu_num_row['stu_num'];
作者:
NewCore
時(shí)間:
2009-02-22 09:20
標(biāo)題:
回復(fù) #13 wildlily980 的帖子
stu_num的值在select返回后就會(huì)取得了,這是因?yàn)樵趕elect語(yǔ)句中“as stu_num”得到的,其他地方都是這樣做的,我實(shí)在想不通為什么這個(gè)地方會(huì)有問(wèn)題。
for($i=0;$i<$dd;$i++) {
$row = mysql_fetch_array($result);
/* Get student number of each course */
//$query = "Select count(*) as stu_num from selected where Course_id='$row[Course_id]'";
//$query = "Select count(*) as stu_num from selected where Course_id=".$row['Course_id'];
$query = "Select count(*) as stu_num from selected where Course_id='{$row['Course_id']}'";
$res = mysql_query($query) or die("Invalid query: " . mysql_error());
/********************************************************/
echo $query, "\n", $row['Course_id'], "\n", $res['stu_num'], "\n", "xxx
/********************************************************/
echo "<tr bgcolor=\"#CCFF99\"><td>".$row["Course_id"]."</td><td>".$row["Course_name"]." </td><td>".$row["Teacher_name"]. "</td><td>".$row["Course_time"]."</td><td>".$row["Course_place"]."</td><td>".$row["Credit"]."</td><td>".$stu_num."</td><td><a href=\"delete.php?courseid=".$row["Course_id"]."\">³·Ïû</a></td></tr>";
}
復(fù)制代碼
修改過(guò)的部分如上所示,還是沒(méi)有值。頁(yè)面顯示如下:
Select count(*) as stu_num from selected where Course_id='1' 1 xxx
Select count(*) as stu_num from selected where Course_id='3' 3 xxx
Select count(*) as stu_num from selected where Course_id='2' 2 xxx
復(fù)制代碼
[
本帖最后由 NewCore 于 2009-2-22 09:22 編輯
]
作者:
HonestQiao
時(shí)間:
2009-02-22 10:10
能不能先來(lái)點(diǎn)簡(jiǎn)單的測(cè)試(我人笨,簡(jiǎn)單點(diǎn)好用):
1. 把你的語(yǔ)句在mysql命令窗口輸入,結(jié)果如何?
2. 先不用count,再結(jié)合mysql_num_rows,看看得到的結(jié)果如何呢?
3. 附加的,先去掉循環(huán),直接操作,再var_dump打印上一步的結(jié)果。因?yàn)閙ysql的查詢啊,一步出錯(cuò),滿盤皆錯(cuò)。
作者:
NewCore
時(shí)間:
2009-02-22 12:09
標(biāo)題:
回復(fù) #15 HonestQiao 的帖子
1、這個(gè)我試過(guò)了,在MySQL命令行下是可以正常查詢出結(jié)果的,以課程號(hào)1為例:
mysql> Select count(*) as stu_num from selected where Course_id='1';
+---------+
| stu_num |
+---------+
| 1 |
+---------+
1 row in set (0.01 sec)
2、用mysql_num_rows可以。!
3、用count的話,放到循環(huán)外面去獲取選課人數(shù)還是不行。
看來(lái)還是count使用不當(dāng)?shù)貑?wèn)題?不過(guò)多些斑竹,總算有一個(gè)可以解決的辦法了。
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2