当我在我的Php中添加HTML时,为什么我的Loop会崩溃?

时间:2014-01-28 06:58:15

标签: php html loops

我写了以下代码。整个过程很好,直到我在PHP代码中添加了以下HTML。

  echo  "
        <div class='fpd-product' title='$name' 
        data-thumbnail='$base_image_loc'>
     ";

如果我删除了这个HTML(div),它会从数据库中获取所有记录并回显它们,但是如果我添加这个HTML,它只打印循环中的最后一个输出。

请告诉我我在哪里弄错了。

      <?php

      $query  ='select * from products '
             . 'inner join product_description '
             . 'on products.product_id= product_description.product_id';


      $query_run= mysql_query($query);


       while($query_fetch= mysql_fetch_array($query_run))
       {
        $product_id=    $query_fetch['product_id'];
        $price=         $query_fetch['retail_price'];
        $name=          $query_fetch['name'];               

        echo $name;


        //Image Query
         $image_query= "select * from product_images where product_id=$product_id";
         $image_query_run= mysql_query($image_query);

         $base_image= mysql_fetch_array($image_query_run);
         $base_image_loc= $base_image['images'];



    //If i remove this echo it fetches all the records from database and echo them,
    //otherwise it will only print the last record.


         echo  "
              <div class='fpd-product' title='$name' 
              data-thumbnail='$base_image_loc'>
                                                     ";


          while($image_query_fetch=   mysql_fetch_array($image_query_run))
          {
            $image_location=    $image_query_fetch['images'];
            $image_name=        $image_query_fetch['name']; 

           }                                     

      }                     


     ?> 
<img src="images/sweater/basic.png" title="Base" data-parameters='{"x": 332, "y": 311, "colors": "#D5D5D5,#990000,#cccccc", "price": 20}' />

<img src="images/sweater/highlights.png" title="Hightlights" data-parameters='{"x": 332, "y": 311}' />
<img src="images/sweater/shadow.png" title="Shadow" data-parameters='{"x": 332, "y": 309}' />

</div>

由于 塔哈

4 个答案:

答案 0 :(得分:2)

您需要</div>

  while($image_query_fetch=   mysql_fetch_array($image_query_run))
  {
    $image_location=    $image_query_fetch['images'];
    $image_name=        $image_query_fetch['name']; 

  }             

  echo "</div>";

答案 1 :(得分:1)

你的echo语句看起来应该是这样的

echo  "<div class='fpd-product' title='".$name."' data-thumbnail='".$base_image_loc."'>";

div在哪里关闭? 或者你可以用这样的HTML

<div class='fpd-product' title='<?php echo $name; ?>' data-thumbnail='<?php echo $base_image_loc; ?>'>

并在while循环后关闭div

答案 2 :(得分:1)

更改您的echo语句

    echo  "<div class='fpd-product' title=".$name." data-thumbnail=".$base_image_loc.">";

并关闭div,代码的结尾

 echo "</div>";

答案 3 :(得分:1)

要调试此类问题,您必须检查HTML源代码(在浏览器中右键单击 - &gt;查看源代码)。如果你看到那里的所有记录,那纯粹是用HTML的问题;这意味着您应该首先使用HTML验证器。