2015-02-06 35 views
-4

我从数据库中获取数据时出现mysql_fetch_array()错误。我已经在phpmyadmin尝试了SQL,查询工作得很好。但是当打开php页面时,查询不起作用。我不知道是什么原因。页面上没有显示错误。没有数据显示在页面上,只有表格。mysql_fetch_array()不使用会话用户名显示数据

仅供参考,这些代码用于家长查看特定学生记录(他们的孩子)。我指定用户使用会话用户名。

在此先感谢!

`

<table border="1" width="1050px" align="center" cellpadding="3" class="mytable" cellspacing="0"> 
    <tr> 
     <th>No</th> 
     <th>Student ID</th> 
     <th>Student Name</th> 
     <th>Gender</th> 
     <th>Date of Birth</th> 
     <th>Parent's Name</th> 
     <th>Parent's IC</th> 
     <th>Address</th> 
     <th>Phone</th> 
     <th>E-mail</th> 
     <th>Class</th> 
     <th colspan="2">Update</th> 
    </tr> 

<?php 
$sql_parent=mysql_query("SELECT stu_id,stu_name,gender,dob,parent_name,parent_ic,address,phone,email,class_name FROM stu_tbl A, users_tbl B WHERE A.parent_ic = B.icnum AND B.username = '.$_SESSION[username]'"); 
if($sql_parent === FALSE) { 
die('could not get data'.mysql_error()); } 

$i=0; 
while($row=mysql_fetch_array($sql_parent)){ 
$i++; 
$color=($i%2==0)?"lightblue":"white"; 
?> 
    <tr bgcolor="<?php echo $color?>"> 
     <td><?php echo $i;?></td> 
     <td><?php echo $row['stu_id'];?></td> 
     <td><?php echo $row['stu_name'];?></td> 
     <td><?php echo $row['gender'];?></td> 
     <td><?php echo $row['dob'];?></td> 
     <td><?php echo $row['parent_name'];?></td> 
     <td><?php echo $row['parent_ic'];?></td> 
     <td><?php echo $row['address'];?></td> 
     <td><?php echo $row['phone'];?></td> 
     <td><?php echo $row['email'];?></td> 
     <td><?php echo $row['class_name'];?></td> 
     <td><a href="?tag=parent_update&opr=upd&rs_id=<?php echo $row['stu_id'];?>" title="Update"><img src="picture/update.png" /></a></td> 
     </tr> 
     <?php  
} 
?> 

`

+3

使用'mysqli'并准备好语句。 – AbraCadaver 2015-02-06 15:27:32

+0

尝试连接会话变量,如'B.username ='“。$ _ SESSION ['username']。”'“);' – Aditya 2015-02-06 15:29:54

+0

添加$ num_rows = mysql_num_rows($ result); echo $ num_rows。 – user3741598 2015-02-06 15:30:43

回答

0

查询是错误的

SELECT stu_id,stu_name,gender,dob,parent_name,parent_ic,address,phone,email,class_name FROM stu_tbl A, users_tbl B WHERE A.parent_ic = B.icnum AND B.username = '.$_SESSION[username]' 

我不知道什么是在$ _SESSION变量,但是串联是做错了呢

0

该查询如何不给你一个PHP错误?你必须在一个字符串中用花括号包装一个数组,并且你需要在数组键上加引号。它应该是这样的:

"SELECT stu_id,stu_name,gender,dob,parent_name,parent_ic,address,phone,email,class_name FROM stu_tbl A, users_tbl B WHERE A.parent_ic = B.icnum AND B.username = '{$_SESSION['username']}'" 

还你$_SESSION前一个时期,应该没有必要。

NOTE:您的查询是不安全的。 mysql_*已弃用。您应该使用mysqli_PDO和准备好的语句。

+0

如果我把大括号,它给我这个错误。 “无法获取数据您的SQL语法中有错误;请查看与您的MySQL服务器版本相对应的手册,以便在'}'附近使用正确的语法” – mya 2015-02-06 15:40:52

+0

哦,抱歉,我的错误。其作品!谢谢dan08:D – mya 2015-02-06 15:43:03