2013-04-01 1 views
1

Мне нужно запустить запрос mysql, который выбирает записи из нескольких таблиц. имена таблиц получаются через почту и хранятся в массиве. То, что я сделал это, что не работает:Выполнение запроса с таблицами, перечисленными в массиве

//--> Check if anything is posted from the client 
if(isset($_POST['code'])){ 

    $emps = array(); 

    foreach(($_POST['code']) as $c) { 
     $emps[] = $c; 
    } 

    @$res = mysql_query("select code,fname,faname from (".implode(',',$emps).")") where emp_code='11330' ; 

    while($r = mysql_fetch_array($res)){ 
     //do something... 
    } 
} 
+0

Ну для начала, удалить ошибку супрессор для запроса и посмотреть почему он не работает. – Phix

+0

Что вы пытаетесь достичь? Передача имен таблиц в post/get является ужасной идеей. –

+1

dont use @ operator, чтобы игнорировать ошибку, ее всегда плохо, вы должны их решить. –

ответ

1

Заменить

mysql_query("select code,fname,faname from (".implode(',',$emps).")") where emp_code='11330' ; 

с

mysql_query("select code,fname,faname from (".implode(',',$emps).") where emp_code='11330'") ; 
+1

Я ожидаю эту ошибку: # 1052 - Столбец «emp_code» в том, где предложение неоднозначно – 2013-04-01 08:44:16

+0

вам нужно написать его вот так: tablename.emp_code и, более того, я думаю, вы должны использовать в нем объединения –

+1

Я думаю, вы знаете. Соединения: просто пройдите через него, http://stackoverflow.com/questions/12890071/select-from-multiple-tables-mysql –

0

попробовать этот

for($i=0;$i<count($emps);$i++) 
    { 
     $query=$query."select code,fname,faname from ".$emps[$i]." where 
     ".$emps[$i].".emp_code='11330' UNION " ; 
    } 

    @$res=mysql_query($query); 
+0

дайте мне знать ... если это работа? –

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