php - 为什么在 PHP 中执行时 mySQL 查询结果不显示表中的文本?

标签 php mysql

下面的代码返回复选框行(每个 mySQL 表的正确数量)并且没有错误。问题是它没有抓取列值((按照:“.$row['Zone'].”:“.$row['RowNumber'].))放置在所述复选框旁边。

<?php
include'connect.php'
?>
<form method="post" action="chooseDate.php">

<?php   
$sql = "
    SELECT s.RowNumber, s.Zone, 
    FROM Seat AS s 
        LEFT JOIN Booking AS b, ON s.RowNumber = b.RowNumber, 
                                AND b.PerfDate = ?, 
                                AND b.PerfTime = ?, 
    WHERE b.RowNumber IS NULL, 
    GROUP BY s.RowNumber
";
$date = "$_POST[Date]";
$time = "$_POST[Time]"; 
$handle = $conn->prepare($sql); 
$handle->execute(array($date, $time));  
$res = $handle->fetchAll(); 
    foreach($res as $row) {
        echo "<input name='Seat' type='checkbox' value='".$row['Zone'].":   
             ".$row['RowNumber']."'><br>";  
    }   
?>

<input class="mybutton" type="submit" value="Choose Seat"/>
</form>

我使用相同的方法运行查询,它们按预期显示结果。这里唯一的区别是查询是 LEFT JOIN。结果显示在 shell 中。这是结果示例和一个复选框的预期输出。

|**RowNumber**|**Zone**|
|-------------|--------|
|Z20          |box 4   |

我哪里出错了?提前致谢。

最佳答案

你看过 HTML 输出吗?您将文本放入输入元素内。收盘>是在正文之后。

您只需移动 > 即可解决此问题。到前面,但我认为最好生成一个 <label>复选框之后或复选框周围的元素。如果您为复选框指定一个 id,并且为标签指定 for属性指向该 id,文本也可以点击,这使得用户体验很棒。 :)

所以我建议像这样更改 for 循环:

$idcounter = 0;
foreach($res as $row) {
    $id = 'Seat' . ($idcounter++); 
    echo "<input name='Seat' type='checkbox' id='$id'><label for='$id'>".$row['Zone'].":".$row['RowNumber']."</label><br>";  
}  

请注意,我删除了 value 属性。我不确定您是否需要它,但也许您需要两者:值和标签。如果是这样,您可以像以前一样放回该属性,只要确保在打开标签之前关闭输入元素即可。

关于php - 为什么在 PHP 中执行时 mySQL 查询结果不显示表中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40947627/

相关文章:

php - nginx + proxy pas - 504 网关超时,1 分钟 30 秒后超时。试过 proxy_read_timeout 但没有成功

php - 从 PHP 中的字符串中删除控制字符

Mysql 查询不在 WHERE 上返回结果,而是在 AND 上返回结果

wordpress页面内的PHP区域

php - 将帖子内容放入标题中

php - 如何将localhost phpmyadmin连接到android模拟器

html - 如何在html中以特定格式显示sql数据

php - 如何连接到 heroku 上的外部 mysql 数据库?

带有元键和值的 MySQL 查询

mysql - 字段数量可变的数据库结构设计