2015-12-03 2 views
0

У меня проблема с синтаксисом SQL. NON рабочий код:SQL WHERE условия

$showdata = $db->prepare("SELECT * FROM adherence WHERE dateandtime='$chosendate' AND lastname='$lastname'"); 

Работа Код 1:

$showdata = $db->prepare("SELECT * FROM adherence WHERE dateandtime='$chosendate'"); 

Рабочий код 2:

$showdata = $db->prepare("SELECT * FROM adherence WHERE lastname='$lastname'"); 

Отдельно - код работает, но при использовании И я не получить результаты из базы данных. Есть идеи?

EDIT

$showdata = $db->prepare("SELECT * FROM adherence WHERE dateandtime= :chosendate AND lastname= :lastname"); 
       $showdata->bindParam(':chosendate', $chosendate); 
       $showdata->bindParam(':lastname', $lastname); 
       $showdata->execute(); 
       $rowas = $showdata->fetch(); 
       foreach ($showdata as $rowas){ 
       echo '<div class="twenty name">', $rowas["lastname"], $rowas["firstname"], '</div>'; 
       } 

EDIT 2 БАЗА ДАННЫХ: enter image description here

ECHO'ing $ chosendate и $ LastName чуть выше сценария. Результат:

enter image description here

+0

Можете ли вы показать нам, как выглядит ваш стол? –

+2

[Ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). Вы должны использовать [подготовленный] (http : //en.wikipedia.org/wiki/Prepared_statement). –

+0

Вы уверены, что есть строка, в которой оба этих условия верны? – Draco18s

ответ

1

Я думаю, что вы сделали ошибку в логике вашего запроса, может быть, не любая строка, которая удовлетворяет этим двум условиям. Кроме того, вы должны правильно использовать Prepared Statement:

$showdata = $db->prepare("SELECT * FROM adherence WHERE 
dateandtime= :chosendate AND lastname= :lastname"); 
$showdata->bindParam(':chosendate', $chosendate); 
$showdata->bindParam(':lastname', $lastname); 
$showdata->execute(); 
+0

Добавлено Редактирование, которое все еще не работает – JustinasT

+0

$ chosendate и $ lastname установлены правильно, Пробовали даже эхо их перед этим скриптом. – JustinasT

+0

Да, вы правы, но я думаю, что нет какой-либо строки, которая удовлетворяет этим двум условиям после WHERE. –

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