2015-11-25 3 views
1

Я пытаюсь получить данные из текущего сеанса и поле «bid_id» из tbl_bidder, где поле «accept» имеет значение Accepted, но я получаю данные всех пользователей в которую я не хочу. Это мой кодИзвлечение данных, принадлежащих сеансу и идентификатору пользователя

<?php } else if (($_SESSION['Usertype']) == 'recruiter') { ?> 
    <table class="table table-hover"> 
     <?php 
      $u_id = $_SESSION['UserID']; 
      $notifyR = " SELECT bidid, recbid_id, bidder_id, selected, accept FROM tbl_bides WHERE recbid_id = '" . $u_id . "'"; 

      $ResultR = mysql_query($notifyR, $con); 

      while ($rowR = mysql_fetch_array($ResultR)) { 
       if ($rowR['accept'] == "Accepted") { 
        echo "<h3 style='color:#001F7A;'><b>You Have Updates </b><i class='fa fa-bell-o'></i></h3>"; 
        echo $rowR['bidder_id']; 
       } 

       $recR = "SELECT users_id, first_name, last_name FROM tbl_users WHERE users_id = '" . $rowR['bidder_id'] . "'"; 
       $recResultB = mysql_query($recR, $con)or die(mysql_error()); 

       while ($rowre = mysql_fetch_array($recResultB)) { 
        echo " <tr><td>" . $rowre['first_name'] . " " . $rowre['last_name'] . "</td></tr>"; 

       } 
      } 
     ?> 

Помогите!

+0

пожалуйста конкретны. .. что вы ожидаете ed output –

+0

Мне нужно получить данные о пользователях, в которых принимается значение «accept» поля, и данные, принадлежащие текущему сеансу, который зарегистрирован в – Andrew

+1

. Изменить запрос на использование sql. 'AND accept = 'Accepted'' –

ответ

-1

Возможно, вам понадобится следующий запрос, если вы сохранили идентификатор пользователя в $ _SESSION ['UserID']. Может быть логической ошибкой: а также использовать mysqli_query вместо mysql_query, которая устарела в последних версиях php. И вместо привязки переменной непосредственно в запросе используйте параметр bind из подготовленного оператора.

$recR = "SELECT users_id, first_name, last_name FROM tbl_users WHERE users_id = '" . $_SESSION['UserID'] . "' LIMIT 1"; 
-1

Если вы хотите, чтобы выполнить второй запрос (выбор пользователя, связанный с данной заявкой), когда ставка была «принята», то вам необходимо переместить этот код в ваш условный:

if ($rowR['accept'] == "Accepted") { 
    echo "<h3 style='color:#001F7A;'><b>You Have Updates </b><i class='fa fa-bell-o'></i></h3>"; 
    echo $rowR['bidder_id']; 

    $recR = "SELECT users_id, first_name, last_name 
      FROM tbl_users 
      WHERE users_id = '" . $rowR['bidder_id'] . "'"; 
    $recResultB = mysql_query($recR, $con)or die(mysql_error()); 

    while ($rowre = mysql_fetch_array($recResultB)) { 
     echo " <tr><td>" . $rowre['first_name'] . " " . $rowre['last_name'] . "</td></tr>"; 
     // echo $rowre['users_id']; 
    } 
} 

Возможно, вы захотите использовать новый интерфейс для MySQL, такой как PDO, и защитить свой код от атак SQL-инъекций, используя такие методы, как подготовленные инструкции или, по крайней мере, очищение ввода.

0

Изменение От

$notifyR = " SELECT bidid, recbid_id, bidder_id, selected, accept FROM tbl_bides WHERE recbid_id = '" . $u_id . "'"; 

Для

$notifyR = " SELECT bidid, recbid_id, bidder_id, selected, accept FROM tbl_bides WHERE recbid_id = '" . $u_id . "' and accept = 'Accepted' "; 

добавить это в вашем запросе и принимаю = 'Принято' в $ notifyR

Смежные вопросы