2014-02-06 6 views
0

Я новичок в программировании на Android, и у меня возникают проблемы с запросами. Я пытался искать подобные вопросы, но я нашел ничего :) так вот ..Как я могу выбрать все данные из таблицы с условием?

дал этой patientinfo таблице

patient_id | name | gender | age 
     1 | jen | female | 20 
     2 | jay | male | 19 

и записи таблицу

patient_id | date | description 
     1 | 01-01-14 | healthy! 
     1 | 02-01-14 | healthy! 
     2 | 01-01-14 | needs medication. 

Я хотел бы получить все записи определенного пациента. , например, если я выберу пациента1. Будут показаны все записи пациента1.

это мой запрос ..

$query = "SELECT * FROM records INNER JOIN patientinfo ON records.patient_id = patientinfo.patient_id WHERE records.patient_id = $patient_id"; 

try{ 
    $stmt = $dbname->prepare($query); 
    $result = $stmt->execute(); 

}catch(PDOException $ex){ 
     $response["success"] = 0; 
     $response["message"] = $ex; 

     die(json_encode($response)); 
    } 


, но он дает мне ошибку в SQL синтаксисе, я думаю, что в $patient_id

errorInfo: У вас ошибка в ваш синтаксис SQL; проверьте, что соответствует вашей версии сервера MySQL для правильного использования синтаксиса.

Заранее спасибо! надеясь на ответ! Спасибо :)

+0

* "но это сплетает ошибку в синтаксисе sql ..." * - Бытие? –

+1

Где вы установили переменную patient_id? –

+2

Не имеет отношения к вашему вопросу, но, во-первых, не храните чей-то возраст. Меняется. Сохраните дату рождения и рассчитайте возраст. Во-вторых, выберите только нужные вам поля, а не выберите *. В-третьих, во многих базах данных становится понятным, когда вы используете ключевые слова в качестве имен столбцов. В этом случае поле является датой. –

ответ

1

Try по:

SELECT * 
FROM patientinfo, records 
WHERE (patientinfo.patient_id = $patient_id) AND (patientinfo.patient_id = records.patient_id); 

Вы можете также конкретно перечислить столбцы, чтобы показать, и присвоить им псевдоним, например:

SELECT records.date AS the_date 

WHERE records.patient_id = $patient_id кажется нормально до тех пор, $ patient_id не является пустой строкой. Для этого я запросил бы echo запрос до его выполнения и проверил, все ли в порядке.

+0

спасибо, но он получает все данные в таблице записей, даже данные, которые не входят в число пациентов, которых я нажал. :) – superJen

+1

Я обновил свой ответ, теперь проверьте, пожалуйста. Как я уже сказал, проверьте, является ли $ patient_id нулевым или нет. Если нет, и это число, это должно работать нормально. – nKn

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