Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在循环中从表中读取_Php_Mysql - Fatal编程技术网

Php 在循环中从表中读取

Php 在循环中从表中读取,php,mysql,Php,Mysql,使用下面的代码,我让人们填写他们想要多少比萨饼,然后使用get通过url传递所选的比萨饼ID <?php // some code that connects to database ?> <table> <form method="get" action="oder_process.php"> <?php while (list($pizzaId, $pizzaName,

使用下面的代码,我让人们填写他们想要多少比萨饼,然后使用get通过url传递所选的比萨饼ID

<?php // some code that connects to database ?>
<table>

        <form method="get" action="oder_process.php">
                <?php
                while (list($pizzaId, $pizzaName, $pizzaNumber, $pizzaPrice) = mysql_fetch_row($resultaat))
                        {

                            echo        "<tr>
                                        <td>".$pizzaName."</td>
                                        <td>".$pizzaNumber."</td>
                                        <td>".$pizzaPrice."</td> 
                                        <td> <input type='text' name='pizzas[$pizzaId]'                   value='$qty' size='3' /></td>
                                        </tr>";
                        }
                mysql_close($db);        
                ?>
            <input type="submit" value="Bestel!" />
        </form>
    </table>

为什么是foreach()?你就不能

if ( is_numeric( $_GET['pizzaid'] ) ) {
    $pizzaSql = sprintf("SELECT * FROM orders WHERE pizza_id=%d",$_GET['pizzaid']);
    $pizzaQuery = mysql_query($pizzaSql);
    $numPizzas = mysql_num_rows( $pizzaQuery );
    while ( $order = mysql_fetch_array($pizzaQuery,MYSQL_ASSOC) ) {
        if ( $numPizzas > 0 ) {
            echo $orderVariables;
        } else {
            echo 'Error: no order exists for that ID thingy';
        }
    }
}

我添加了一些小验证,假设比萨饼/订单id是一个数值。我不相信从$\u GET数组进入脚本的任何东西,除非首先进行一些认真的数据验证

是否可以尝试加入测试以确保查询按预期工作

$pizzaSql = mysql_query("SELECT * FROM pizzas where pizza_id = $pizzaId");

if (mysql_error()) {
   die(mysql_error());
}

它在干什么?如果pizza_name是pizzas中的一个领域,我无法想象这为什么不起作用。“不行吗”?你能说得更具体些吗?在while循环中打印r($row)时会发生什么?它没有显示所有数据吗?
pizza\u id
是DB中的数字字段吗?@Bob Baddeley:不显示意味着它什么也不打印。当我在循环中打印r($row)时,它只是显示所有记录,而不是只显示填写了大量比萨饼的记录@bazmegakapa:是的,它是一个int(11),另外,添加一个表的结构。请记住,不要使用Stackoverflow作为论坛,当你的搜索没有得到答案时,你应该来这里&不要让我们教你基础知识,伙计。感谢iput。将if语句放在那里,但查询似乎没有问题。
$pizzaSql = mysql_query("SELECT * FROM pizzas where pizza_id = $pizzaId");

if (mysql_error()) {
   die(mysql_error());
}