2015-10-27 4 views
1

Вот моя проблема, которую я бы хотел решить.Выберите один результат в строке sql?

Шаг 1: Выберите, какие сообщения с колонкой «at_idsujet» равны «3», например. Шаг 2. Среди всех результатов я бы выполнил второй запрос, который выберет результат, например, столбец «id», равный «7».

Все это послужит мне для восстановления позиции сообщения в определенном порядке. Например, это может быть третий пост темы. Поэтому я хотел бы иметь номер 3.

Вот код, я получаю сейчас, немного сложнее ..

   $bdd->query('SET @compteur=0'); 
       $gotonbpage = $bdd->prepare('SELECT id, @compteur:[email protected]+1 AS num_ligne FROM (SELECT * FROM messages WHERE id = ?) WHERE at_idsujet = ?'); 
       $gotonbpage->execute(array($get_gotomsg,$ft_infosgotomsg['at_idsujet'])); 
        $fetch_fgotopage = $gotonbpage->fetch('SELECT * FROM messages WHERE id = '.$ft_infosgotomsg['id'].''); 

переменные «$ gotonbpage» является предмет ID. Переменная "$ ft_infosgotomsg ['at_idsujet']" - это тема, в которой есть сообщение, которое я исследую.

Предупреждение, код sql является PDO.

Заранее благодарю вас за помощь.

Aymeric.

ответ

0

Добавить LIMIT в вашем запросе SELECT,

$bdd->query('SET @compteur=0'); 
$gotonbpage = $bdd->prepare('SELECT id, @compteur:[email protected]+1 AS num_ligne FROM (SELECT * FROM messages WHERE id = ?) WHERE at_idsujet = ?'); 
$gotonbpage->execute(array($get_gotomsg,$ft_infosgotomsg['at_idsujet'])); 
$fetch_fgotopage = bdd->prepare('SELECT * FROM messages WHERE id = '.$ft_infosgotomsg['id'].' LIMIT 1'); 
$fetch_fgotopage->execute(); 
$singlePage = $fetch_fgotopage->fetch(); 
+0

Существует только один результат из-за при выборе идентификатора. Идентификатор не может существовать дважды в этой таблице. Кроме того, запрос «$ gotonbpage» неверен, потому что я получаю уродливую ошибку. – Aymeric98

+0

Ваш второй запрос в нерабочем состоянии, позвольте мне обновить – Mitul

+0

Я получаю эту ошибку: Неустранимая ошибка: Не удалось исключить «PDOException» с сообщением «SQLSTATE [42000]: Ошибка синтаксиса или нарушение доступа: 1248 Каждая производная таблица должна иметь свой собственный псевдоним ' в C: \ xampp \ htdocs \ themes.php: 419 Трассировка стека: # 0 C: \ xampp \ htdocs \ themes.php (419): PDO-> prepare ('SELECT id, @com ...') # 1 {main} выбрано в C: \ xampp \ htdocs \ themes.php в строке 419 – Aymeric98

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