【问题标题】:Data Id is not showing Why is that?数据 ID 未显示这是为什么?
【发布时间】:2011-09-11 16:38:18
【问题描述】:

这是我的代码,为什么显示价格数据而 ID 不显示?请帮忙

<?php
include"Connection.php";
$dTime = time();
$myValue = $_REQUEST['dValue'];
echo "The time is: {$dTime}<br/>
The choice is {$myValue} ";

$sql = "Select * from product where NAME = '{$myValue}'";
 $result = mysql_query($sql);
 while ($row = mysql_fetch_assoc($result))

        $price = $row['PRICE'];
        $id = $row['ID'];
        echo "PHP $price";
        echo "$id";

$sql2 ="INSERT INTO `starbucks`.`order_details` (`ID`, `ORDER_ID`, `PRODUCT_ID`, `QTY`) VALUES ('2', '1', '$id', '1');";

$result2 = mysql_query($sql2);
?>

【问题讨论】:

  • 在 $row 上尝试var_dump
  • 如果没有看到您的“产品”表的结构,我们无法回答这个问题。你能在你的数据库上运行SHOW COLUMNS FROM PRODUCT 吗?编辑:它可能是大括号而不是数据结构。
  • 您好Bobby Tables。为什么你会做echo "$id"; 而不是echo $id;。请去学习一些 PHP 基础知识。

标签: php mysql database arrays


【解决方案1】:

您没有任何大括号来描述您的 while 循环,因此它只为每一行运行 $price = $row['PRICE']; 行。试试:

while ($row = mysql_fetch_assoc($result))
{
        $price = $row['PRICE'];
        $id = $row['ID'];
        echo "PHP $price";
        echo "$id";
}

【讨论】:

    【解决方案2】:

    不要忘记大括号,否则只会执行一行代码。

    while ($row = mysql_fetch_assoc($result)){
        $price = $row['PRICE'];
        $id = $row['ID'];
        echo 'PHP ', $price; // do not use variable concatenation or double quotes if you can
        echo $id; // no need to wrap a variable with quotes for printing it
    }
    

    不要忘记escape user input,否则你很容易受到SQL injectionXSS的攻击。

    $myValue = mysql_real_escape_string($_REQUEST['dValue']);
    

    【讨论】:

      【解决方案3】:

      为什么你不在 while 循环中使用花括号

      while ($row = mysql_fetch_assoc($result))
      

      它只会在这之后执行 1 行而不是第二行

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 2012-12-07
        • 1970-01-01
        • 2022-09-23
        • 2016-02-06
        • 2013-07-25
        相关资源
        最近更新 更多