2016-02-11 115 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>