Php 在sql行中选择一个结果?

Php 在sql行中选择一个结果?,php,mysql,prepared-statement,Php,Mysql,Prepared Statement,这是我想解决的问题 步骤1:例如,选择列在_idsujet等于3的邮件。 步骤2:在所有结果中,我将运行第二个查询,该查询将选择列id等于7的结果,例如 所有这些都有助于我按照特定的顺序恢复消息的位置。例如,它可能是某个主题的第三篇文章。因此,我会选择数字3 这是我现在得到的代码,有点复杂 $bdd->query('SET @compteur=0'); $gotonbpage = $bdd->prepare('SELEC

这是我想解决的问题

步骤1:例如,选择列在_idsujet等于3的邮件。 步骤2:在所有结果中,我将运行第二个查询,该查询将选择列id等于7的结果,例如

所有这些都有助于我按照特定的顺序恢复消息的位置。例如,它可能是某个主题的第三篇文章。因此,我会选择数字3

这是我现在得到的代码,有点复杂

                $bdd->query('SET @compteur=0');
                $gotonbpage = $bdd->prepare('SELECT id, @compteur:=@compteur+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_infosgotmsg['at_idsujet']是我研究的主题,它包含了我要研究的信息

警告,sql代码是PDO

提前感谢您的帮助


A数字。

在选择查询中添加限制

$bdd->query('SET @compteur=0');
$gotonbpage = $bdd->prepare('SELECT id, @compteur:=@compteur+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();

在SELECT查询中添加限制

$bdd->query('SET @compteur=0');
$gotonbpage = $bdd->prepare('SELECT id, @compteur:=@compteur+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();

选择ID时只有一个结果。此表中的ID不能存在两次。此外,查询$gotonbpage不正确,因为我收到了一个丑陋的错误。您在“未正常工作”中的第二个查询让我更新我得到以下错误:致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1248每个派生表必须在C:\xampp\htdocs\topics.php:419堆栈跟踪:0 C:\xampp\htdocs\topics.php419:PDO->prepare'SELECT id,@com…'1{main}在第419行的C:\xampp\htdocs\topics.php中抛出,将对第一个表发出第二个请求。第二种方法是在所有结果中选择一条特定的线。该行将由ID列选择,并具有特定值。为什么要使用ID=?的FROM SELECT*FROM messages?选择ID时只有一个结果。此表中的ID不能存在两次。此外,查询$gotonbpage不正确,因为我收到了一个丑陋的错误。您在“未正常工作”中的第二个查询让我更新我得到以下错误:致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1248每个派生表必须在C:\xampp\htdocs\topics.php:419堆栈跟踪:0 C:\xampp\htdocs\topics.php419:PDO->prepare'SELECT id,@com…'1{main}在第419行的C:\xampp\htdocs\topics.php中抛出,将对第一个表发出第二个请求。第二种方法是在所有结果中选择一条特定的线。该行将由ID列选择,并具有特定值。为什么要使用ID=?的FROM SELECT*FROM messages?