如何读取mysql中某一字段的值?
在我的sp_user表中有一个class的字段,在username为2222的数据中,class值为2,我想让php知道这个值,怎么操作?在phpmyadmin中这么查询可以看到那个小字段值,我不知道怎么能在php网页中读出来值。
SELECT class FROM sp_user WHERE username =2222 闹了半天楼主还不会 php 处理 mysql 的返回值。 :mrgreen:
fetch 以后可以根据字段名来获取相应的值。
<?php
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_array($result)) {
echo $row["user_id"];
echo $row["fullname"];
}
mysql_free_result($result);
?>
只要查询结果里含有你要的字段。就可以 $row["xxxxx"]方式来获取。(当然除了数组方式的传回,你还可以使用别的方式,但这不是这个问题的范围了。)
你的查询,fetch 后可以 $row["class"] 来获取。 while($row = mysql_fetch_array($result)) {
}
这段干吗的?没看懂这段,不会我得在括号里把变量读出来吧 $row = mysql_fetch_array($result)
把当前 $result 结果里指针所指的数据 fetch 为 array 给 $row。这样 $row 就以数组方式保存了结果里当前行的值。同时把指针向下移动一行。
这样用 while 就可以把所有返回行都进行一次查询。
最后一行完成后再 fetch 一次,就会返回 false ,while 跳出循环。
也就是说:SQL 查询完成,没有进行 fetch 的时候:
ID class
1 aaa (现在指针在这里)
2 bbb
fetch 一次后:
ID class
1 aaa
2 bbb (现在指针在这里)
同时 $row["ID"] = 1 ; $row["class"] = "aaa"
你再 fetch ,$row 就能获得第2行,同时指针移动到末尾(你可以认为是 EOF)。
再 fetch ,就会返回错误信息。
明白乎? 花了2天时间,算是搞明白了。
我得把一个临时变量放到循环里才能得到我要的值
$result = mysql_db_query(mdb2,"SELECT * FROM sp_user WHERE username=$loginUsername");
while($row = mysql_fetch_array($result))
{
$bbb= $row["class"];
}
mysql_free_result($result); :roll:
如果你确定你的返回指只有一行,或者你只需要第一行,你完全可以不用 while 。
直接 $row = mysql_fetch_array($result)
后面就可以直接使用这个变量了。$resule 只是一个结果的指针,完全可以用一半的结果。
while 的作用是取出所有的结果并且进行处理,while 的 {} 里的代码就是对结果进行运算的代码。
这是因为 mysql 查询的结果一次只能 fetch 一行。如果你要多行,就需要多次进行 fetch。如果你需要同时处理很多行结果:
$i=1; // 我喜欢从1开始
while($row = mysql_fetch_array($result))
{
$bbb[$i]= $row["class"];
$i++;
}
这样 $bbb[] 这个数组就是所有返回的结果,$i 对应于第几个(行)。
你的代码完全可以不用 while 。
像你这种代码应该不使用 while 进行多次获取,用来防止数据末尾被人恶意添加一个同样的 username 。
仅仅获取第一行结果就行了。
还有一点,SQL 里 WHERE 的 " = " 似乎并不是完全等于,而是包含的意思?
不知道 php 支不支持这样使用: :twisted:
$result = mysql_db_query(mdb2,"SELECT * FROM sp_user WHERE username=$loginUsername");
$bbb =mysql_fetch_array($result)["class"];
mysql_free_result($result); //其实没有必要立即 free 掉,你后面的内存使用不大的话,php 代码运行结束会自动处理掉。 原来如此,理解理解。
讲的透彻。
现在我还只用某一个数据,所以还用不到循环。
页:
[1]