Помещение данных MySQL в массив

Я пытался в течение нескольких дней получить все данные из столбца 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 />';
}

Спасибо всем заранее,
Денис Саидов

0

Решение

Попробуйте как ниже: —

$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 значения поступают из базы данных. спасибо

2

Другие решения

Массивы PHP похожи на словари (список пар ключ / значение)
Во-первых, перед циклом создайте пустой массив:

$new_array = Array();
while...

Затем для каждого столбца вы добавляете значение столбца в качестве нового ключа для массива.

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

Как в вашем примере, я положил "i" в качестве значения для каждой строки массива.

0

По вопросам рекламы [email protected]