在php中显示来自mysql的某些行

时间:2014-06-24 01:56:37

标签: php mysql

我有这个代码,我只想显示表中的记录:

<?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.

2 个答案:

答案 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解释器。