我有这个代码,我只想显示表中的记录:
<?php
session_start();
echo $_SESSION['idu'];
$connect=mysql_connect("localhost","root","");
mysql_select_db("bilet");
$queryreg=mysql_query("SELECT * FROM oferte WHERE idu='$_SESSION['idu']' ");
while($row = mysql_fetch_array($queryreg)):
{
echo $row['adresa'];
echo $row['descriere'] ;
echo $row['stele'] ;
echo $row['pret'] ;
}
endwhile;
?>
我收到此错误:
解析错误:语法错误,意外''(T_ENCAPSED_AND_WHITESPACE), 期待标识符(T_STRING)或变量(T_VARIABLE)或数字 (T_NUM_STRING)在第6行的D:\ xampp \ htdocs \ bilet \ viz.php中。
The table has more then 4 rows , but i just wanna see if it works.
答案 0 :(得分:4)
具体问题与您的第6行有关(如错误所示)。您没有将会话变量正确地包含在字符串中。试试这个:
$queryreg = mysql_query("SELECT * FROM oferte WHERE idu='" . $_SESSION['idu'] . "'");
话虽如此,还有一些其他事情需要牢记。如果用户设置了$_SESSION['idu']
,那么您的代码很容易受到SQL注入攻击(请阅读here如何防止它)
顺便说一下,正如@meda指出的那样,你实际上是在使用两种不同的方式来做while循环。虽然你在技术上是正确的,但肯定不是这样做的推荐方法。我建议选择其中一个:
// Choice 1: Recommended
while ($row = mysql_fetch_array($queryreg)) {
echo $row['adresa'];
echo $row['descriere'];
echo $row['stele'];
echo $row['pret'];
}
// Choice 2
while ($row = mysql_fetch_array($queryreg)):
echo $row['adresa'];
echo $row['descriere'];
echo $row['stele'];
echo $row['pret'];
endwhile;
答案 1 :(得分:2)
试试......
$queryreg=mysql_query("SELECT * FROM oferte WHERE idu='" . $_SESSION['idu'] . "'");
你不会混淆PHP解释器。