我的代码不会从MySQL表中呈现PHP

时间:2015-01-27 19:14:20

标签: php mysql mamp

我一直在使用MAMP继续使用这一页,我无法让PHP渲染。它必须是从表中获取信息但我无法弄清楚是什么。我很确定我的所有内容都正确排列。

有一段时间它只是把我送回去乱七八糟然后什么都没有,但最终我通过将while循环切换到do-while循环来通过localhost渲染HTML,这样它就会运行一次。所以问题必须是我想到的与MySQL的连接,但我不知道是什么。

<?php 

$product_id = $_GET['id'];
$link = mysqli_connect('localhost', 'root', 'root', 'legend');
$result = mysqli_query($link, "SELECT * FROM test WHERE id=" . $product_id . "'");
while($row = mysqli_fetch_array($result)) {
?>

<html>
<head>
</head>
<body>
    <div>
        <p>Name: <?php echo $row['unitOne']; ?></p>
        <p>Box Quantity: <?php echo $row['unitTwo']; ?></p>
    </div>
</body>
</html>

<?php
}

mysqli_close($link);
?>

1 个答案:

答案 0 :(得分:0)

尝试以这种方式构建代码,请考虑第一篇文章下方的所有评论。我还建议阅读本文,阐明准备语句和绑定参数是什么:http://www.w3schools.com/php/php_mysql_prepared_statements.asp

请记住始终正确构建HTML标记。 html head body 永远不应有多个打开和关闭标记。如果你确实有更多东西,那肯定会让你感到困惑。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cart</title>
</head>
<body>
<?php
$query = "SELECT * FROM products WHERE product_id = ?"; //for security we will be using prepared statements
$stmt = $link -> mysqli -> prepare($query); //$link contains your database connection
$stmt -> bind_param('i', $id); //$id contains a product id the "i" will define it as an integer
$stmt -> execute();

$result = $stmt -> fetch_result();
while($row = $result -> fetch_assoc()){ //loop out the results
    echo '<div>';
        echo '<p>Name: '.$row['unitOne'].'</p>';
        echo '<p>Box Quantity: '.$row['unitTwo'].'</p>';
     echo '</div>';
    }
?>
</body>
</html>