在html表中的php echo

时间:2016-02-11 04:16:33

标签: php html mysql

我是html和php的新手,我尝试了一些尝试实现我想要的东西,但它永远不会有效。

这是一个购物车,我试图在表格中使用php显示来自mysql的数据,如果我没有其他要在表格中显示的元素也会很简单($ value和$ sub)没有存储在mysql中但是是计算。

当我不尝试在表格中显示它时,它完全正常工作,当我添加表格时,我只能在表格中显示“名称”,如果我尝试包含其他任何内容,则会失败。

下面的代码在表名列下显示“名称”,下一个要显示的内容是数量下的“$ value”等等(尚未添加任何列)

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>

5 个答案:

答案 0 :(得分: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>

由于 阿米特

答案 1 :(得分:0)

我将表移到你的循环之外,这将解决你的大部分问题。另一个问题是你在while循环中只有一个<td>包装了name列,但是你没有<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>

答案 2 :(得分: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>

答案 3 :(得分: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>

答案 4 :(得分: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>