2016-11-28 6 views
0

У меня, похоже, проблема с оператором WHERE в существующем цикле MySQL, что заставляет меня думать, что это невозможно. Если это выполнимо, как я его выполню?MySQL where statement in a where statement

В этом примере используется его существующее соединение, я также пробовал его собственное соединение без успеха.

У меня есть 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;