Получить ассоциативный массив 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; 
}

Документы полезны. Вы можете использовать mysql_fetch_assoc

Вы должны изменить эту строку

 $indexedrow=mysql_fetch_row(mysql_query($query));

в

 $indexedrow=mysql_fetch_assoc(mysql_query($query));

mysql_fetch_row возвращает массив с номерами в качестве ключей, а mysql_fetch_assoc возвращает имена полей в качестве ключей.

Другие вопросы по тегам