PHP:如何将选择结果推送到多维数组(部分工作)



我是PHP的新手,希望有人可以帮助我。

我有一个 Select 查询,它返回(除其他外)数据库表中两列的值,"ID"和"en"。从 Select 获取结果时,我想将每个项目的这两个值存储在二维数组中

到目前为止,我有以下内容。Select 本身工作正常,但是当推送到数组时,它只输出 Select 结果中的最后一项(看起来也正确),所以我的猜测是,我每次都会覆盖它,而不是将每个项目添加到数组中。

有人可以告诉我我在这里做错了什么吗?另外,请让我知道这里是否应该首选 While 以外的其他内容。

我的PHP:

<?php     
    $tbl = "TranslationsMain";  
    $conn = new mysqli($servername, $username, $password, $dbname);
    if($conn->connect_error){
        die("Connection failed: " . $conn->connect_error);
    } 
    $sql = "SELECT * FROM " . $tbl;
    $result = $conn->query($sql);   
    while($translations = $result->fetch_assoc()){
        $arr = array('ID' => $translations['ID'], 'en' => $translations['en']);
    }
    $conn->close();
    print_r($arr);
?>

电流输出(用小表测试):

Array ( [ID] => ID10 [en] => Value10 )

预期产出:

Array ( [ID] => ID1 [en] => Value1, [ID] => ID2 [en] => Value2, [ID] => ID3 [en] => Value3, ... [ID] => ID10 [en] => Value10  )

提前非常感谢,话筒

您获得此输出是因为您正在覆盖array中的键。您需要保存到另一个array(也称为非二维):

<?php     
    $tbl = "TranslationsMain";  
    $conn = new mysqli($servername, $username, $password, $dbname);
    if($conn->connect_error){
        die("Connection failed: " . $conn->connect_error);
    } 
    $sql = "SELECT * FROM " . $tbl;
    $result = $conn->query($sql);   
    while($translations = $result->fetch_assoc()){
        // ***** Create a new array here ***** //
        $arr[] = array('ID' => $translations['ID'], 'en' => $translations['en']);
    }
    $conn->close();
    print_r($arr);
?>

为您提供:

Array ( 
        [0] => Array ([ID] => ID1 [en] => Value1 ),
        [1] => Array ([ID] => ID2 [en] => Value2 ),
        [2] => Array ([ID] => ID3 [en] => Value3 ),
      )

$arr替换为$arr[],然后尝试。

相关内容

  • 没有找到相关文章

最新更新