Я хочу получить данные из нескольких таблиц, используя оператор dot / join, где аргументы передаются из формы HTML / PHP.
HTML-код
<input name="rollno" type="text" placeholder="Roll Number" required> <input name="submit_view_details" type="submit" value="Proceed">
PHP-код
if(isset($_POST['submit_view_details'])) { $rollno = (int) $_POST['rollno']; $query = "select * from table1, table2 where table1.{$rollno}=table2.{$rollno}"; $result=mysqli_query($connection,$query); }
В браузере, если введите вход 1
и выполните эхо-запрос, он выглядит следующим образом:
select * from table1, table2 where table1.1=table2.1
и никакая строка не извлекается, несмотря на наличие данных в таблице (таблицах).
он работает только в том случае, если запрос выглядит следующим образом:
select * from table1,table2 where table1.rollno=table2.rollno
Однако в этом случае он извлекает все строки, но мне нужна только строка rollno, введенная пользователем в вышеупомянутой форме.
Я просто не в состоянии это решить. Помощь будет высоко оценена. Благодаря!
Используйте ключевое слово AND, чтобы указать rollno.
SELECT * FROM table1, table2 WHERE table1.rollno = table2.rollno AND table1.rollno = {$rollno};
Вероятно, вы могли бы использовать ключевое слово JOIN следующим образом:
SELECT * FROM table1 NATURAL JOIN table2 WHERE rollno = {$rollno};
Вам нужно присоединиться
возьмите здесь ссылки,
я уверен, что это поможет
Вы должны использовать соединение, подобное этому
$query = "SELECT tbl1.*, tbl2.* FROM tbl1 INNER JOIN tbl2 ON tbl1.id = tbl2.id WHERE tbl1.column = value ";
foreach ($pieces_2 AS $value) { $pieces_3[] ="(CONCAT_WS('|',$presql2) like '%$value%')"; //concat all columns from one table } $serch_jyouken = implode(" and ",$pieces_3); // for multiple keywords $result1 = mysqli_query($connection, "select p.p_no from pfr_data p where (" .$serch_jyouken .")"); $res1 = array(); while($r1 = mysqli_fetch_array($result1){ $res1[] = $r1['p_no'] ; //fetch primary key from table and store it into array } foreach ($pieces_2 AS $value) { $pieces_4[] ="(CONCAT_WS('|',$presql3) like '%$value%')"; // same as above } $serch_jyouken1 = implode(" and ",$pieces_4); $result2 = mysqli_query($connection, "select p2.p_no from pfr_mod_inform p2 where (" .$serch_jyouken1 .")" ); $res2 = array(); while($r2 = mysqli_fetch_array($result2)){ $res2[] = $r2['p_no']; } $res_mrg = array_merge($res1 , $res2); //merge array $result = implode("','",$res_mrg ); // array to sring $sql5 = $presql ." from pfr_data p where p.p_no in ('$result') order by p.section_p,p.status,p.no";