Дамп mysql_fetch_array приводит к многомерному массиву - PullRequest
1 голос
/ 23 декабря 2011

Спасибо всем вам, гуру.

Я пытаюсь сделать предыдущую и следующую кнопку на странице профиля. Если я просматриваю профиль Арнсдорфа, я хочу, чтобы предыдущая кнопка была связана с Антонио, а следующая кнопка - с Балдевизо.

Идентификаторы не последовательны, как вы можете видеть из вывода, упорядоченного по lname:

ID: 22 Name: Airaghi
ID: 36 Name: Antonio
ID: 27 Name: Arnsdorf
ID: 13 Name: Baldeviso
ID: 46 Name: Barnes

Вот мой код:

    $sql = "SELECT id,lname FROM profiles ORDER BY lname";

    $query = mysql_query($sql);
        if (!$query) {
            die('Invalid query: ' . mysql_error());
        }

    while ($row = mysql_fetch_array($query, MYSQL_BOTH)) {

        printf ("ID: %s  Name: %s", $row[0], $row["lname"]);
          echo "<br>";
    }

mysql_free_result($query);

Но я не могу получить это в array, чтобы отсортировать это.

Я надеялся создать 3 столбца multi-dimensional array с набором данных, который выглядит примерно так:

row,id,lname
1,22,Airaghi
2,36,Antonio
3,27,Arnsdorf
4,13,Baldeviso
5,46,Barnes

Тогда я мог бы выяснить, как получить номер строки, скажем, для Арнсдорфа. Затем получите номер строки для +1 и -1, чтобы я мог получить их соответствующие идентификаторы для использования в моей гиперссылке.

Я искал часы и не могу найти ни одного примера кода, который будет выгружать данные mysql в пронумерованный многомерный массив, достаточно постоянный для выполнения такой сортировки. Спасибо за вашу помощь.

Ответы [ 2 ]

3 голосов
/ 23 декабря 2011

Вы можете назначить каждую строку массиву, а затем отобразить данные из этого массива.Вот пример:

$persons = array();
while($row = mysql_fetch_assoc($query)) {
    $persons[] = $row;
}

// To access ID of user in third row
echo $persons[2]['id'];
// Name of that person
echo $persons[2]['lname'];
0 голосов
/ 23 декабря 2011

Это на самом деле довольно просто:

while($row = mysql_fetch_array($query)){
    $profiles[] = $row;
}

Теперь у вас будет такой массив:

array(
    0 => array('id' => 22, 'lname' => 'Airaghi'),
    1 => array('id' => 36, 'lname' => 'Antonio'),
    etc...
)

Тогда вы можете просто получить к нему доступ с $profiles[$index]['id'] или $profiles[$index]['lname']

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