插入两个值时为什么$ result无法显示?

时间:2015-10-21 08:22:57

标签: php mysql

<table width="300" border="1">
<tr>
<td>
<div class="tourmain">
  <?php    
        $result=mysql_query("SELECT * FROM foodmenu where food_type = 'Appetizers' and restaurant_name = 'Chili's "); 
        while($row=mysql_fetch_array($result)){
             ?>
    <dl>
        <dt><a href="food.php?id=<?php echo $row['foodID'];?>"><img src="<?php echo $row['food_img'];?>" width="280" height="200" /></a></dt>
      <dd>
       <span><?php echo $row['food_type'];?></span>
        </dd>
  </dl>
     <?php }?>
</div>
</td>

<td><div class="tourmain">
  <?php    
        $result=mysql_query("SELECT * FROM foodmenu where food_type = 'Main Courses'"); 
        while($row=mysql_fetch_array($result)){
             ?>
    <dl>
        <dt><a href="food.php?id=<?php echo $row['foodID'];?>"><img src="<?php echo $row['food_img'];?>" width="280" height="200" /></a></dt>
      <dd>
       <span><?php echo $row['food_type'];?></span>
        </dd>
  </dl>
     <?php }?>
</div>

我的问题是当我在$ result中插入两个值时,它在表列中显示为空。 例如。从foodmenu中选择*,其中food_type =&#39;开胃菜&#39;和restaurant_name =&#39; Chili&#39;,这在表格栏中显示空结果。

但是当食物菜单中的Select *来自food_type =&#39;开胃菜时,它会显示所有具有价值的食物类型&#39;开胃菜&#39;。

为什么所选的餐厅钥匙无法显示相对于其food_type的结果?我可以知道任何解决方案吗?

2 个答案:

答案 0 :(得分:2)

报价是您查询中的问题。

您必须使用mysql_real_escape_string

$var = mysql_real_escape_string("Chili's");
$result = mysql_query("SELECT * FROM foodmenu where food_type = 'Appetizers' and restaurant_name = '".$var."' "); 

答案 1 :(得分:0)

<div class="detailtop">
    <?php    
        $var = mysql_real_escape_string("Chili's");
        $result = mysql_query("SELECT * FROM foodmenu where food_type = 'Appetizers' and restaurant_name = '".$var."' "); 
        while($row=mysql_fetch_array($result)){
             ?>
        <dl>
            <dt>
            <img src="<?php echo  $row["food_img"];?>" /> </dt>
            <dd>
    <form action="order.php" method="post" name="send" onSubmit="return Check()"  enctype="multipart/form-data">
                <h3><?php echo  $row["food_name"];?></h3>
                <div class="detailtips">
                    <?php echo  $row["food_description"];?>
                </div>
                <p><span>Type:</span><strong><?php echo  $row["food_type"];?></strong></p>
                <p><span>Price:</span><strong><?php echo  $row["food_price"];?><input name="num"  type="hidden" class="num" value="<?php echo  $row["food_price"];?>" /></strong>RM</p>

                <div class="order" style=" padding-top:20px; padding-left:20px;">
                <input name="id" type="hidden" value="<?php echo  $row["foodID"];?>" />
                <input name="" type="submit"  value="" class="ordersubmit" style=" margin-left:53px;">
                </div>
                </form>
            </dd>
        </dl>
        <?php }?>
  </div>

可以运行以前的编码,它可以显示具有相对值的数据库中的所有数据。 但是我想问一下,如果点击其中一个img,它将只显示一个带有自己的foodID的食物,但是我使用上面的编码也会显示所有的食物。 我该怎么办? 当点击上一个编码中的一个img时,我只需要一个食物信息显示。 由于我的编码需要显示许多餐馆页面和菜单项,我只需要它以适应已经在数据库中设置的foodID。