MySQL where 语句中的 where 语句
MySQL where statement in a where statement
现有 MySQL 循环中的 WHERE 语句似乎有问题,这让我认为这是不可能的。如果可行,我将如何执行?
这个例子使用了它现有的连接,我也试过它自己的连接但没有成功。
我有 2 个表,booking 和 jobs.. Booking 是主要描述数据库的一部分和 jobs 可能有几行与来自 booking
的同一预订相关
<?php
$conn = mysqli_connect($servername,$username,$password,$dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM rwxoq_Bookings WHERE user_id = $user_id";
$result = mysqli_query($conn, $sql);
while($rowb = mysqli_fetch_assoc($result)) {
?>
<tr>
<td valign="top">
<?php echo $rowb{'Booking_ID'};?>
</td>
<td>
<?php echo date("D, d-m-Y g:ia", strtotime($rowb{'created'}));?>
</td>
<td>
<?php
$sqlj = "SELECT * FROM rwxoq_jobs WHERE Booking_ID = $rowb{'Booking_ID'}";
$resultj = mysqli_query($conn, $sqlj);
while($rowj = mysqli_fetch_assoc($resultj)) {
$count++;
}
echo $count;
?>
</td>
<td id="<?php echo $row{'id'};?>">PENDING</td>
</tr>
<?php } ?>
我知道你想做什么,但这不是一个好的解决方案;
我建议你在你们之间使用连接table:
</p>
<pre><code>$conn = mysqli_connect($servername,$username,$password,$dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT b.*, COUNT(*) AS cnt FROM rwxoq_Bookings b LEFT JOIN rwxoq_jobs j ON j.Booking_ID = b.Booking_ID WHERE user_id = $user_id GROUP BY b.Booking_ID";
$result = mysqli_query($conn, $sql);
$table = "";
while($rowb = mysqli_fetch_assoc($result)) {
$table .= "
<tr>
<td valign='top'>
{$rowb['Booking_ID']}
</td>
<td>
". date('D, d-m-Y g:ia', strtotime($rowb['created'])) ."
</td>
<td>
{$rowb['cnt']}
</td>
<td id='{$row['id']}'>PENDING</td>
</tr>";
}
echo $table;
现有 MySQL 循环中的 WHERE 语句似乎有问题,这让我认为这是不可能的。如果可行,我将如何执行?
这个例子使用了它现有的连接,我也试过它自己的连接但没有成功。
我有 2 个表,booking 和 jobs.. Booking 是主要描述数据库的一部分和 jobs 可能有几行与来自 booking
的同一预订相关<?php
$conn = mysqli_connect($servername,$username,$password,$dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM rwxoq_Bookings WHERE user_id = $user_id";
$result = mysqli_query($conn, $sql);
while($rowb = mysqli_fetch_assoc($result)) {
?>
<tr>
<td valign="top">
<?php echo $rowb{'Booking_ID'};?>
</td>
<td>
<?php echo date("D, d-m-Y g:ia", strtotime($rowb{'created'}));?>
</td>
<td>
<?php
$sqlj = "SELECT * FROM rwxoq_jobs WHERE Booking_ID = $rowb{'Booking_ID'}";
$resultj = mysqli_query($conn, $sqlj);
while($rowj = mysqli_fetch_assoc($resultj)) {
$count++;
}
echo $count;
?>
</td>
<td id="<?php echo $row{'id'};?>">PENDING</td>
</tr>
<?php } ?>
我知道你想做什么,但这不是一个好的解决方案;
我建议你在你们之间使用连接table:
</p>
<pre><code>$conn = mysqli_connect($servername,$username,$password,$dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT b.*, COUNT(*) AS cnt FROM rwxoq_Bookings b LEFT JOIN rwxoq_jobs j ON j.Booking_ID = b.Booking_ID WHERE user_id = $user_id GROUP BY b.Booking_ID";
$result = mysqli_query($conn, $sql);
$table = "";
while($rowb = mysqli_fetch_assoc($result)) {
$table .= "
<tr>
<td valign='top'>
{$rowb['Booking_ID']}
</td>
<td>
". date('D, d-m-Y g:ia', strtotime($rowb['created'])) ."
</td>
<td>
{$rowb['cnt']}
</td>
<td id='{$row['id']}'>PENDING</td>
</tr>";
}
echo $table;