2016-02-11 78 views
0

我很新的HTML和PHP,我尝试了一些事情,试图实现我想要的东西,但它永远不会工作。如果我没有其他的元素,我想要在表中显示,那么会很简单($ value和$子)不存储在MySQL中,但是计算。PHP回声在HTML表

当我不试图在表格中显示它时,它完全可以正常工作,并且当我添加表格时,我只能得到'名称'以显示在表格中,如果我试图包含其他任何内容,它会失败。

代码如下表名栏下显示“姓名”,旁边显示的事情将是下数量“$值”等(已不再添加列还)

foreach($_SESSION as $name => $value) { 
    if ($value>0) { 
     if (substr($name, 0, 5)=='cart_') { 
      $id = substr($name, 5, (strlen($name)-5)); 
      $get = mysql_query('SELECT id_product, name, price FROM elec_guit WHERE id_product='.($id)); 
      while ($get_row = mysql_fetch_assoc($get)) { 
       $sub = $get_row['price']*$value; 

?> 

<div class="table"> 
<table> 
    <tr> 
     <td>Name</td> 
     <td>Quantity</td> 
    </tr> 
    <tr> 

<?php     echo '<td>' .$get_row['name']. '</td>' .$value. ' @ &dollar;'.number_format($get_row['price'], 2). ' = &dollar;'.number_format($sub, 2).' <a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?add='.$id.'">[+]</a> <a href="cart.php?delete='.$id.'" >[Delete]</a><br />'; 
      } 
     } 
     $total += $sub; 

    } 
} 
?> 


    </tr> 
</table> 

+3

第一件事你的表标签应该在循环外面,它会混乱布局,并会一次又一次地创建表。 –

+0

是的,开始表格标签需要在循环开始之前。此外,表格中的每条数据都应位于'​​...'标签内,它们本身位于' ...'标签内。如果你的表中有两列,那么每个表格行(' ...')应该包含两个'​​...''元素。在你的echo语句中,你有一些不在'​​'元素内的数据。你不能在不在'​​'元素内的表格中有文字。解决这个问题,你会没事的。请参阅http://www.w3schools.com/html/html_tables.asp来尝试一些表格示例。 – kojow7

+0

查看实际发生的一种简单方法是在Web浏览器中打开您的页面,然后选择“查看源代码”以查看html代码。 – kojow7

回答

0

可能的代码正确呈现列和行。

<div class="table"> 
<table> 
    <tr> 
     <td>Name</td> 
     <td>Quantity</td> 
    </tr> 

foreach($_SESSION as $name => $value) { 
    if ($value>0) { 
     if (substr($name, 0, 5)=='cart_') { 
      $id = substr($name, 5, (strlen($name)-5)); 
      $get = mysql_query('SELECT id_product, name, price FROM elec_guit WHERE id_product='.($id)); 
      while ($get_row = mysql_fetch_assoc($get)) { 
       $sub = $get_row['price']*$value; 

?> 


    <tr> 

<?php     echo '<td>' .$get_row['name']. '</td>' .$value. ' @ &dollar;'.number_format($get_row['price'], 2). ' = &dollar;'.number_format($sub, 2).' <a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?add='.$id.'">[+]</a> <a href="cart.php?delete='.$id.'" >[Delete]</a><br />'; 
      } 
     } 
     $total += $sub; 

    } 
} 
?> 
    </tr> 
</table> 

感谢 阿米特

+0

感谢您的提示,将其更改为您的建议,并仍然正常工作,尽管我仍然不确定如何在'姓名'后显示任何内容。 – James

+0

如果你想在名称旁边显示任何东西,你需要创建一个新的列,标记为​​,如果你想在名字后面显示任何内容,而不是你需要插入名称列本身,我将添加另一个答案来证明这一点。 –

0

我搬到你的循环之外的表,这将解决大多数你的问题。另一个问题是,你只有一个<td>在你的while循环中包装了名称列,但是你没有包含该行其他信息的<td>,所以我包装了它。

<div class="table"> 
    <table> 
     <tr> 
      <td>Name</td> 
      <td>Quantity</td> 
     </tr> 

      <?php 
      foreach($_SESSION as $name => $value) { 
       if ($value>0) { 
        if (substr($name, 0, 5)=='cart_') { 
         $id = substr($name, 5, (strlen($name)-5)); 
         $get = mysql_query('SELECT id_product, name, price FROM elec_guit WHERE id_product='.($id)); 
         while ($get_row = mysql_fetch_assoc($get)) { 
          $sub = $get_row['price']*$value; 
          echo '<tr><td>' . $get_row['name']. '</td>' . 
           '<td>' . $value. ' @ &dollar;'.number_format($get_row['price'], 2). 
           ' = &dollar;'.number_format($sub, 2).' <a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?add='.$id.'">[+]</a>' 
           '<a href="cart.php?delete='.$id.'" >[Delete]</a></td></tr>'; 
         } 
        } 
       } 
      } 
      ?> 
    </table>  
</div> 
+0

真棒,做到了!我知道我的while循环中只添加了一个​​,我没有再添加任何东西,因为它没有比第一个更多的工作,这是在我失踪的每个之后的最后一站,解决了它。谢谢! @Jesse – James

0

根据您的评论添加了新代码。

<div class="table"> 
<table> 
    <tr> 
     <td>Name</td> 
     <td>Quantity</td> 
    </tr> 

foreach($_SESSION as $name => $value) { 
    if ($value>0) { 
     if (substr($name, 0, 5)=='cart_') { 
      $id = substr($name, 5, (strlen($name)-5)); 
      $get = mysql_query('SELECT id_product, name, price FROM elec_guit WHERE id_product='.($id)); 
      while ($get_row = mysql_fetch_assoc($get)) { 
       $sub = $get_row['price']*$value; 

?> 


    <tr> 

<?php     echo '<td>' .$get_row['name']. $value. ' @ &dollar;'.number_format($get_row['price'], 2). ' = &dollar;'.number_format($sub, 2).' <a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?add='.$id.'">[+]</a> <a href="cart.php?delete='.$id.'" >[Delete]</a><br /></td> </tr>'; 
      } 
     } 
     $total += $sub; 

    } 
} 
?> 



</table> 
0

我想告诉你的第一件事是mysql_*被正式弃用的PHP 5.5。并从PHP 7.0完全删除。所以请不要使用它。

参见:http://php.net/manual/en/migration55.deprecated.php

对于mysqli_*http://php.net/manual/en/book.mysqli.php

现在关于你的代码:

您正在使用内循环table标签。这将生成多个表格。试试这个代码:

<div class="table"> 
<table> 
    <tr> 
     <td>Name</td> 
     <td>Quantity</td> 
    </tr> 
<?php 
foreach($_SESSION as $name => $value) { 
    if ($value>0) { 
     if (substr($name, 0, 5)=='cart_') { 
      $id = substr($name, 5, (strlen($name)-5)); 
      $get = mysql_query("SELECT id_product, name, price FROM elec_guit WHERE id_product='$id'"); 
      while ($get_row = mysql_fetch_assoc($get)) { 
       $sub = $get_row['price']*$value; 


echo '<tr><td>' . $get_row['name']. '</td>' . 
'<td>' . $value. ' @ &dollar;'.number_format($get_row['price'], 2). 
' = &dollar;'.number_format($sub, 2).' <a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?add='.$id.'">[+]</a>' 
'<a href="cart.php?delete='.$id.'" >[Delete]</a></td></tr>'; 
      } 
     } 
     $total += $sub; 

    } 
} 
?> 

</table> 
+0

感谢您的信息,我一定会阅读并更新:) – James

+0

你的问题呢? –

0

使用如下代码。希望它能帮助你。

<div class="table"> 
    <table> 
    <tr> 
     <td>Name</td> 
     <td>Quantity</td> 
    </tr> 

<?php 
     foreach($_SESSION as $name => $value) { 
     if ($value>0) { 
     if (substr($name, 0, 5)=='cart_') { 
      $id = substr($name, 5, (strlen($name)-5)); 
      $get = mysql_query('SELECT id_product, name, price FROM elec_guit WHERE id_product='.($id)); 
      while ($get_row = mysql_fetch_assoc($get)) { 
       $sub = $get_row['price']*$value; 

?> 
    <tr> 
     <td><?php echo $get_row['name']; ?></td> 
     <td><?php echo $value;?> @ &dollar;<?php echo number_format($get_row['price'], 2); ?> = &dollar;<?php echo number_format($sub, 2); ?> <a href="cart.php?remove=<?php echo $id; ?>">[-]</a> <a href="cart.php?add=<?php echo $id; ?>">[+]</a> <a href="cart.php?delete=<?php echo $id; ?>" >[Delete]</a><br /></td> 
    </tr> 
     <?php } 
     } 
     $total += $sub; 

    } 
} 
?> 
    </table> 
</div>