2015-04-29 2 views
2

Я хочу получить данные из нескольких таблиц, используя оператор dot/join, где аргументы передаются из формы HTML/PHP.Как получить данные из нескольких таблиц с помощью формы 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, что пользователь вошел в указанной выше форме.

Я просто не могу это обработать. Помощь будет высоко оценена. Благодаря!

+0

попробовать это $ запрос = "SELECT * FROM table1, table2 где table1.rollno = table2.rollno И table1.rollno = $ rollno"; –

+0

@GaneshPatil Ya, который работает. Мне это не хватало. Спасибо – Yomesh

ответ

2

Используйте ключевое слово и, чтобы указать rollno.

SELECT * FROM table1, table2 WHERE table1.rollno = table2.rollno 
AND table1.rollno = {$rollno}; 

Вы могли бы использовать ключевое слово РЕГИСТРИРУЙТЕСЬ вместо так:

SELECT * FROM table1 NATURAL JOIN table2 
WHERE rollno = {$rollno}; 
+0

Спасибо, это работает как шарм! : D – Yomesh

1

Вам нужно присоединяется

взять справку о присоединяется здесь,

я уверен, что поможет

http://www.tutorialspoint.com/mysql/mysql-using-joins.htm

+0

Нет такой вещи, как mysqli или mysql JOINS. JOINS - это просто стандартный SQL. – Daan

+0

да спасибо Даан, внесли некоторые изменения –

+0

@MeeneshJain Спасибо. Я обязательно прочитаю о ПРИСОЕДИНЕНИЯХ. – Yomesh

0

Вы должны использовать присоединиться как этот

$query = "SELECT tbl1.*, tbl2.* 
      FROM tbl1 
      INNER JOIN tbl2 ON tbl1.id = tbl2.id 
      WHERE tbl1.column = value "; 
-1
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"; 
+0

это длинный метод, но я уверен, что он поможет, и я дам результат в течение второго –

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