2016-11-28 66 views
0

我似乎有一个WHERE语句在现有的MySQL循环,这使我认为这是不可能的问题。如果它是可行的,我将如何执行它?MySQL哪里声明where语句

这个例子使用了它现有的连接,我也尝试过自己的连接,但没有成功。

我有2个表,预订作业 .. 预订是数据库的主要描述部分和作业可以具有从预订关于同一预订若干行

<?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 } ?> 
+0

你到底想达到什么目的?问题到底是什么? – Mureinik

+0

你会得到哪种错误或不确定的行为? – actc

+0

你真的应该看看使用“准备好的语句”和“参数绑定”的组合的好处,以防止sql注入漏洞... – arkascha

回答

0

我明白你会怎么做,但这不是一个好的解决方案;
我建议你使用你的表之间的连接:

$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;