2016-11-28 64 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;