关于sql选择和print_r数组的问题[重复]

Posted

技术标签:

【中文标题】关于sql选择和print_r数组的问题[重复]【英文标题】:Question about sql selection and print_r array [duplicate] 【发布时间】:2019-06-22 09:01:09 【问题描述】:

我有个问题,先看看我的代码:

$testsql = $db->prepare('SELECT * FROM forum_sujets');
$testsql->execute();
$test = $testsql->fetch();
print_r($test);

我的数据库:

好的,所以我想在数组中选择我的信息,我不希望这个数组看起来像:

array(              
    'id' => '1', array(
        'nom' => 'test',
        'titre' => 'test',
        'auteur' => 'test',
    ),
    'id' => '2', array(
        'nom' => 'test2',
        'titre' => 'test2',
        'auteur' => 'test2',
    ),
 );

好的,在我的数组看起来像这样之后,我想回显,例如,ID“2”的名称,我不知道我是否清楚。我希望你能帮助我,再见:)

【问题讨论】:

你试过foreach loop 吗? 如果您需要有关 id = 2 的信息,请在查询中使用 WHERE id = 2 另外,如果数组结构无效,同一层数组中不能有多个id键。 是的,我已经在一段时间内提出了我的请求,但为了优化,我不想把它放在 while 之外,而在 while 调用必要的信息中 【参考方案1】:

举个例子,你的截图不太好,所以我想你有colums titre, nom et auteur dans votre table:

$testsql = $db->prepare('SELECT id, titre, nom, auteur FROM forum_sujets');
$testsql->execute();
$data = [];
while ($test = $testsql->fetch()) 
    $id = $test['id'];
    $data[$id] = [
        'nom' => $test['nom'],
        'auteur' => $test['auteur'],
        'title' => $test['title'],
    ];


print_r($data);

输出将是这样的:

array(              
    1 => array(
        'nom' => 'test',
        'titre' => 'test',
        'auteur' => 'test',
    ),
    2 => array(
        'nom' => 'test2',
        'titre' => 'test2',
        'auteur' => 'test2',
    ),
 );

因为你不能在一个数组中有两个相同的键

【讨论】:

好一个。我只想指出@u_mulder 在他上面的评论中可能是正确的,BaguetteV1.0 实际上只在寻找一条记录。所以使用 WHERE 子句可能是更好的方法。但我们无法确定,除非进一步解释整个代码的工作原理以及它有什么用处。

以上是关于关于sql选择和print_r数组的问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将整个PHP数组散列成唯一值[重复]

SQL查询返回从数组中选择作者的数据[重复]

groovy sql选择数组语句[重复]

当我将 print_r() 应用于 PHP 中的数组时,为啥会得到“资源 id #4”? [复制]

从 SQL 单行中选择并设置为 php 数组 [重复]

将数组推入多维数组(php)[重复]