Я начинаю начинать php, я сталкиваюсь с проблемой при попытке использовать несколько запросов в php.Php Многопользовательский поиск запросов из нескольких таблиц
SELECT student.id, student.name, fee_slip.payamount, fee_slip.time, student.class
FROM student
LEFT JOIN fee_slip
ON student.id=fee_slip.student
where (fee_slip.student) is null
Это код, который прекрасно работает без ошибок. Но теперь я хочу сделать это более динамично.
У меня есть код, который также работает хорошо, но я использую его на одной таблице здесь является код
$query = "SELECT id, name, std_reg_number, class, section FROM student where id IS NOT NULL ";
if ($name !=""){
$query .= " AND `name` LIKE '".$name."%'"; // id is greater then
}
if ($status !=""){
$query .= " AND `status` LIKE '".$status."%'"; // id is greater then
}
if ($class !=""){
$query .= " AND class IN($class) ORDER BY class DESC"; // Selecting class
}
if ($section !=""){
$query .= " AND section IN($section)"; // selecting section
}
if ($sort !=""){
$query .= " ORDER BY $sort ASC"; // Selecting religion
}
$result = mysql_query($query);
Теперь я пытался использовать подзапрос
$query .= " SELECT fee_slip.student_id, fee_slip.std_reg_number, fee_slip.payamount, fee_slip.totalamount ";
Но я не гер результат.
Что я должен делать .......
Первое, что вам нужно сделать, это: прекратить использование устаревшего интерфейса mysql и вместо этого использовать mysqli или PDO. Второе, что вам нужно сделать, это остановить создание уязвимостей SQL Injection, включив потенциально небезопасные значения в текст SQL, либо надлежащим образом экранируя значения (например, используя mysqli_real_escape_string), либо используя подготовленные операторы с привязками привязок. – spencer7593
Я не понимаю отношения между запросом, показанным в начале вопроса, и кодом, который показан. Мы видим, что код динамически создает текст SQL (уязвим для SQL Injection) и выполняет запрос. Затем мы видим, что SQL * добавлен * к существующему тексту SQL. Это * не * возможно выполнить два разных оператора SELECT за одно исполнение с использованием интерфейса mysql. (Один из подходов состоит в объединении результатов из двух запросов с использованием 'UNION ALL' (столбцы должны выстраиваться в линию, считать и dataype и добавлять столбец дискриминатора), поэтому это всего лишь одно утверждение. – spencer7593
После объединения все можно достичь того, что я необходимо –