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

标签 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;


?>

我收到这个错误:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in D:\xampp\htdocs\bilet\viz.php on line 6.

 The table has more then 4 rows , but i just wanna see if it works.

最佳答案

具体问题与您的第 6 行有关(正如错误提示的那样)。您没有将 session 变量正确地包含到字符串中。试试这个:

$queryreg = mysql_query("SELECT * FROM oferte WHERE idu='" . $_SESSION['idu'] . "'");

话虽这么说,但还有一些其他事项需要牢记。如果用户曾经设置过 $_SESSION['idu'],那么您的代码很容易受到 SQL 注入(inject)攻击(阅读 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;

关于php - 在 php 中显示来自 mysql 的某些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24377221/

相关文章:

php - 计算数据库中的某些行并仅显示该列中大于 0 的值

php - SQL中如何获取日期最早、点赞数最多的评论ID?

php - HTTP_RAW_POST_DATA 的安全问题

php - 可以同时执行两个或多个查询吗?

php - .htaccess 重定向损坏的 URL

php - 如何在命令的类上显示进度条

mysql - 使用 MySQL 的 Entity Framework MissingManifestResourceException

MySQL 错误 - #1932 - 引擎中不存在表 'phpmyadmin.pma user config'

javascript - Node.js - 从母查询获取数据到嵌套查询

php - 如何从表中获取第一行和其他随机行