Получить ассоциативный массив PHP из MySQL
Я пытаюсь поместить данные из SQL в массив и одновременно создать один и тот же массив, связанный с именем исходных столбцов. Это функция, что я получил:
GetRowFromDb("`id`,`name`,`email`", " WHERE `id`='1'", "database1", "table1");
function GetRowFromDb ($column, $condition, $database, $table) {
$target="`$database`.`$table`";
$query="SELECT $column FROM $target $condition";
$indexedrow=mysql_fetch_row(mysql_query($query));
return $indexedrow;
}
Это возвращает мне индексированный массив. Когда я хочу узнать адрес электронной почты, мне нужно использовать индекс (число), например, $result[2]. Но я хочу, чтобы мой массив ассоциировался с именами исходных столбцов, как это
print $result[email] //should return email
Спасибо за ответ! завивать волосы щипцами
3 ответа
Решение
Использование mysql_fetch_assoc
вместо mysql_fetch_row
,
GetRowFromDb("`id`,`name`,`email`", " WHERE `id`='1'", "database1", "table1");
function GetRowFromDb ($column, $condition, $database, $table) {
$target="`$database`.`$table`";
$query="SELECT $column FROM $target $condition";
$indexedrow=mysql_fetch_assoc(mysql_query($query));
return $indexedrow;
}
Вы должны изменить эту строку
$indexedrow=mysql_fetch_row(mysql_query($query));
в
$indexedrow=mysql_fetch_assoc(mysql_query($query));
mysql_fetch_row возвращает массив с номерами в качестве ключей, а mysql_fetch_assoc возвращает имена полей в качестве ключей.