2015-04-28 3 views
0

Whith помощь от вопроса я прошу за несколько минут я получаю от этого кода:Использование переменной передается в PHP PDO запрос

$uid = $_SESSION['uid']; 
$sth = $db->prepare("SELECT groupid FROM user_groups WHERE userid=?"); 
$sth->execute(array($uid)); 
$sth->execute(); 

$results = $sth->fetchAll(PDO::FETCH_COLUMN, 0); 
$results = implode(",",$resultas); 
echo $results; 

A Выход следующим образом: 11,13. Спасибо за вашу помощь :)

Теперь я хочу использовать эту переменную в другой п.д.о.-запроса и я пытаюсь это:

$stmt = $db->query('SELECT * FROM menu WHERE gruppe=0 OR gruppe in (?' 
    . ') ORDER BY reihe, parentId, name '); 
$stmt->execute(array($results)); 

Но нет результата ... но Wehen я стараюсь это

$stmt = $db->query('SELECT * FROM menu WHERE gruppe=0 OR gruppe in (11,13' 
    . ') ORDER BY reihe, parentId, name '); 
$stmt->execute(); 

Разве это не то же самое? Можете ли вы просить меня еще один намек на это?

+0

Обратите внимание, что это только копия, если вам нужно сделать, это в 2 отдельных запросов. Я проголосовал за закрытие, поскольку это было непроницаемое беспорядок в начале :-) – jeroen

ответ

2

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

SELECT * FROM menu 
    WHERE gruppe=0 OR gruppe IN (SELECT groupid FROM user_groups WHERE userid=?) 
    ORDER BY reihe, parentId, name 
+1

'gruppe' - зарезервированное слово. lol * grin * –

+0

@ Fred-ii- Немного немецкий никогда не болит :) – Rizier123

+0

@ Rizier123 Si signore RR –

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