我是php编程的新手,我无法弄清楚我的错误在哪里,因为我的PHP代码不会执行。
正如标题所说我试图在我的网站中创建复选框,但值将来自mysql数据库。
我在MySQL数据库中有一个名为“campus”的表,它有2个名为id和room的颜色。
数据库 [![数据库] [1] [1] http://i.imgur.com/uLP6niJ.png
当前输出 [![电流输出] [2]] [2] http://i.imgur.com/cSOYPme.png
下面是我的代码:
<?PHP
$hostname = "localhost";
$username = "root";
$password = "root";
$databaseName = "my computer";
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
<html>
<body>
<form name="aform">
Choose a room:
<?php
$s = '';
$j = 0;
if ($q = $connect->query("SELECT * FROM `campus`")) {
while ($line = $q->fetch_assoc()) {
$s.= '<input type="checkbox" name="car'.$j.'" value="'.$line['room'].'">';
}
}
echo $s;
?>
</form>
</body>
</html>
答案 0 :(得分:0)
试试这个
<?php
$sql = "SELECT room FROM campus";
$result = mysqli_query($sql);
$campusArray = mysqli_fetch_array($result, MYSQLI_ASSOC);
foreach ($campusArray as $campus): ?>
<input type="checkbox" name="car" value="<?php echo $campus['room'];?>" />
<?php endforeach; ?>
我希望你可以解决问题。
替代语法非常适合提高可读性(适用于PHP 和HTML!)在你混合它们的情况下。
http://ca3.php.net/manual/en/control-structures.alternative-syntax.php
答案 1 :(得分:0)
欢迎使用PHP!
错误是你错过了任何php函数(如echo)之后所需的分号
<?php echo $line['room']; ?>
关闭}
周围缺少PHP标签第三个错误是你没有告诉mysqli运行查询的连接应该有:
mysqli_query($dbCon, $sql);
除了它看起来不错外,我个人更喜欢使用PDO连接,但mysqli仍然很好,但有一些格式化技巧可以帮助防止出现问题。
例如,使用back-ticks(`)
总是一个好主意所以:
$sql = "SELECT `room` FROM `campus`";
但是,为此,最好使用*查询。从列中选择所有内容:
$sql = "SELECT * FROM `campus`";
原因在于你是如何获取数据的,你告诉PHP使用结果创建一个数组..但你只给它每行一个数据。因此,如果您将所有数据都提供给它,那么它就会更容易使用。
这是完整的代码:
<?php $dbCon = mysqli_connect("localhost", "root", "root", "my computer");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}?>
<html>
<body>
<form name="aform">
Choose a room:
<?php
$sql = "SELECT * FROM `campus`";
$result = mysqli_query($dbCon, $sql);
while ($line = mysqli_fetch_array($result, MYSQL_ASSOC)) { ?>
<input type="checkbox" name="car" value="<?php echo $line['room']; ?>"
<?php } ?>
</form>
</body>
</html>
另外,如果您感兴趣,这里是如何在PDO中完成的:
<?php
try{
$con = new \PDO("mysql:host=" . 'localhost' . ";dbname=" . 'My Computer', 'root', 'root');
}catch(PDOException $e){
echo "Connection Failed";
die();
} ?>
<html>
<body>
<form name="aform">
Choose a room:
<?php
$result = $con->prepare("SELECT * FROM `campus`")
$result->execute();
while ($row = $result->fetch()) { ?>
<input type="checkbox" name="car" value="<?php echo $row['room']; ?>"
<?php } ?>
</form>
</body>
</html>
仍然无法使用?随意评论,我会看到了什么:)
谢谢, P110