【问题标题】:Putting MySQL data into an array将 MySQL 数据放入数组
【发布时间】:2015-08-21 13:54:02
【问题描述】:

我已经尝试了几天从 MySQL 列中获取所有数据并将其放入数组中,格式如下:

$aSpam= array
    ( '.info'=> 'i'
    , 'anal'=> 'i'
    , 'anus'=> 'i'
    , 'arse'=> 'i'
)

我已经成功地将它以正确的格式回显出来,正如您在此处看到的那样:http://www.yourgrumble.com/phpbbforum/getSpam.php

使用以下 PHP 代码:

<?php
$servername = "localhost";
$username = "username";
$password = "pass";
$dbname = "db";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT `SpamWord` FROM spamWords";
                            $result = $conn->query($sql);

                            if ($result->num_rows > 0) {
                                // output data of each row
                                $counter = 0;
                                while($row = $result->fetch_assoc()) {
                                    if($counter){
                                        echo ", '" . $row["SpamWord"]. "'=> 'i'";
                                        $counter++;
                                    } else {
                                        echo "'" . $row["SpamWord"]. "'=> 'i'";
                                        $counter++;
                                    }
                                }
                            } else {
                                echo "Error!";
                            }
                            $conn->close();
                        ?>

我已经阅读并尝试了 10 多个在网络上和在 stackoverflow 上找到的解决方案,但是它们都没有奏效。我真的很绝望,没有你们的帮助,我无法度过难关。

编辑 例如,我尝试使用此解决方案,但没有成功:

while ($row = mysql_fetch_array($result)) 
{
    $new_array[$row['id']]['SpamWord'] = $row['SpamWord'];
}

foreach($new_array as $array)
{       
   echo $array['SpamWord'].'<br />';
}

提前谢谢大家, 丹尼斯·赛多夫

【问题讨论】:

    标签: php mysql arrays mysqli store


    【解决方案1】:

    尝试如下:-

    $sql = "SELECT `SpamWord` FROM spamWords";
    $result = mysqli_query($conn ,$sql) or die(mysqli_error($conn));
    $resultArray = array(); // create an array
       if ($result->num_rows > 0) {
             // output data of each row
            while($row = mysqli_fetch_assoc($result)) {
    
                    $resultArray[$row["SpamWord"]]  = 'i'; // assing value
    
            }
        } else {
            echo "Error!";
        }
    
    echo "<pre/>";print_r($resultArray); // print array
        $conn->close();
    

    注意:在这里您将获得包含所有 SpamWord 值的原始数组来自 database.thanks

    【讨论】:

    • 我已经用你的代码更新了我的帖子,我收到的是一个空数组。可以请你看一下。谢谢!
    • 我做到了。它正在显示整个列,我想要在数组中。看看 -> i.imgur.com/WSjeYKU.png
    • 是的!它有效,但它以这种方式显示它们 -> yourgrumble.com/phpbbforum/getSpam.php 。我需要它们以这种方式显示:i.imgur.com/9Ja6bUp.png
    • 只是一个简单的问题。我知道用撇号起作用。如果它是一个数组,是否有区别: 'content' => 'i' 还是 [content] => 'i' ?
    【解决方案2】:

    PHP 数组就像字典(键/值对列表)
    首先,在循环之前,创建空数组:

    $new_array = Array();
    while...
    

    然后对于每一列,将列值附加为数组的新键

    $new_array[$row['SpamWord']] = "i";
    

    在您的示例中,我将 "i" 作为每个数组行的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多