Проблема с PHP MySQL функция выборки массива - PullRequest
1 голос
/ 08 декабря 2008

У меня есть база данных с 2 таблицами.

Одна из таблиц содержит строку, содержащую числа от 0 до 10.

В PHP я делаю это:

$query = "SELECT ".$param." FROM issues WHERE ".$param." >=0";
$result = @mysql_query($query) or showError("query failed");
if (!($record = mysql_fetch_array($result))) return null;
return $record;

Параметр $ содержит имя строки.

Я ожидал получить массив с числом от 0 до 10, но вместо этого я получил массив с 2 элементами:

array(
    [0] = 0
    [row_name] = 0
    .
    .
    . // AND SO ON
)

И это все.

Я никогда раньше не работал с этими функциями, и у www.php.net нет примеров, которые бы действительно помогли ...

Ответы [ 3 ]

6 голосов
/ 08 декабря 2008

Я не совсем уверен, чего вы здесь добиваетесь, но думаю, что вы хотите:

// query...
$records = array();
while($r = mysql_fetch_array($result)) {
    $records[] = $r;
}
return $records;
3 голосов
/ 08 декабря 2008

Вы хотите получить все результаты за один звонок. С помощью вашего метода вы должны зациклить результаты, как показал Паоло. Но может быть лучше использовать PDO с fetchAll . Если вы изучаете соединения с базой данных PHP, изучите PDO .

1 голос
/ 08 декабря 2008

По умолчанию mysql_fetch_array возвращает как нормальные, так и ассоциативные массивы, поэтому вы можете получить доступ к значениям по позиции ($ result [0]) или по имени ($ result ['user_name']) ':

array mysql_fetch_array  ( resource $result  [, int $result_type  ] )

result_type: тип массива, который быть доставленным. Это константа и может принять следующие значения: MYSQL_ASSOC, MYSQL_NUM и значение по умолчанию MYSQL_BOTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...