如何从数据库中获取所有数据?
我想从MySQL数据库获取所有数据,但我想知道为什么它不工作,我错过了什么吗? 这是代码:如何从数据库中获取所有数据?
$tid=$_SESSION['id'];
$a=mysql_query("select * from tbl_curriculum_sched where TEACHER_ID='$tid'");
while($ad=mysql_fetch_array($a)){
$sql= mysql_query("SELECT * from enrolled where CURRICULUM_SCHED_ID='$ad[0]'");
//the value of $ad[0] returns nothing
//i did something here
//but it is not working
}
这个查询有什么问题?
不要使用MYSQL,而应该使用MySQLi作为MySQL是DEPRECATED。
但是:
$tid=$_SESSION['id'];
$a=mysql_query("select * from tbl_curriculum_sched where TEACHER_ID='$tid'") or die("$ a error : ".mysql_error());
while($ad=mysql_fetch_array($a)){
$sql= mysql_query("SELECT * from enrolled where CURRICULUM_SCHED_ID='$ad[0]'") or die("inner while: ".mysqli_error());
...
要你们这些评论和comlaining的OP应该使用$一个,而不是$ad
- 不,这是不是这样的 - 作为while
语句将输出内容到$ad
变量作为命名和数字键。
另请参见:数据库连接需要声明。
另外:session_start()
需要声明。
如果$ad[0]
特别没有价值,没有mysql_error()
已经抛出,则考虑使用mysql_fetch_row
在PHP设置INI意味着可能从MySQL表中的数据的数字键不保存,数据只可能是按名称存储,这是全面使用数据的更好方法。
请尽量避免使用SELECT *
。
这真的很奇怪!我在while循环外面放置了'$ ad = mysql_fetch_array($ a)',然后我运行了'var_dump($ ad)'然后运行,它以数组的形式返回了很多值。但是当我把它放回到while循环时它是空的。发生什么事?这有什么问题?这是前一阵子!为什么现在这样呢? – melly 2015-02-12 01:21:24
有时帮我,当我在SQL中使用var有奇怪的问题与指数:
$var_temp = $ad[0];
在SQL查询中放:
'$var_temp'
尝试变种转储也许你可以看到一些调试
while($ad=mysql_fetch_array($a)){
$sql= mysql_query("SELECT * from enrolled where CURRICULUM_SCHED_ID='$ad[0]'");
var_dump($sql);
}
什么意思是“不工作”*完全*? – Alejandro 2015-02-12 00:04:15
不要使用'mysql_ *'函数。他们被弃用,也是一个可怕的,可怕的界面。使用['PDO'](http://php.net/manual/en/book.pdo.php)或['Mysqli'](http://php.net/manual/en/book.mysqli.php) 。现在已经不存在了......你确定'$ _SESSION ['id']'中有一个值吗?在尝试使用它之前你调用过session_start()吗?我也没有看到你调用'mysql_connect()'或'mysql_select_db()'的位置 - 你也调用过这些吗? – prodigitalson 2015-02-12 00:07:30
'mysql_error()'说你的查询有误吗? – Quentin 2015-02-12 00:10:15