|
|
|
| Если делать запроса вида
$query = mysql_query('SELECT field_name FROM table_name');
|
то какой массив получается при
$result = mysql_fetch_array($query);
|
Одномерный, двухмерный и т.д.? И как можно добраться до нужного элемента? Не доезжает до меня
С
SELECT * FROM table_name WHERE field_name=value
|
всё понятно, одномерный. | |
|
|
|
|
|
|
|
для: Freddie_X
(22.01.2008 в 18:21)
| | Погляди его функцией print_r(), там понятно станет. | |
|
|
|
|
|
|
|
для: Freddie_X
(22.01.2008 в 18:21)
| | добраться проще всего так
<?
$query = mysql_query('SELECT * FROM table_name');
while ($result = mysql_fetch_array($query))
{
echo "<pre>";
print_r ($result);
}
|
| |
|
|
|
|
|
|
|
для: Freddie_X
(22.01.2008 в 18:21)
| | Функция mysql_fetch_array() всегда возвращает одномерный массив, содержащий значения соответствующие одной записи в результирующей таблице. | |
|
|
|
|
|
|
|
для: cheops
(23.01.2008 в 00:20)
| | ...и сдвигая указатель на следующую запись | |
|
|
|
|
|
|
|
для: cheops
(23.01.2008 в 00:20)
| | cheops, я так и думал.
НО!
$query = mysql_query('SELECT id FROM table_name'); // в этой таблице около 20 записей
$array = mysql_fetch_array($query);
echo $array[...]; // вместо ... любое число подставить, даёт совершенно не то.
|
проверил массив через print_r() и ужаснулся...
Array ( [0] => 1 [id] => 1 ) - вот что мне выдало. Хотя в этом массиве должны быть элементы 1,2,3,4 и так далее до 20. А тут всего 2 элемента и те одинаковые.
Не скажете, в чём подвох? | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 00:36)
| | Записи в результирующей таблице запроса SELECT id FROM table_name всегда имеют одно значение равное id. Поэтому mysql_fetch_array() возвращет одно значение id = 1, следующий вызов вернёт id = 2, третий id = 3 и т.д. пока записи не кончатся. Так как вы используется функцию mysql_fetch_array() без дополнительных параметров - она возвращает для каждого значения из результирующей таблицы два значение, одно с числовым индексом, второе - с ключом, равным имени столбца, отсюда массив имеет два элемента, значения которых всегда совпадает. | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 00:36)
| | Ну да
Числовые ключи fetch_row
Строковые ключи fetch_ascos
Смешанные ключи fetch_array | |
|
|
|
|
|
|
|
для: bronenos
(23.01.2008 в 00:40)
| | Ну хорошо, с этим понятно.
А как всё таки можно получить доступ к определённой записи?
Пример:
Нужно узнать значение поля id в 10 записи.
Я про это имел ввиду. Такое можно сделать? | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 01:06)
| | это лучше делать с помощью sql запроса есть же для этой записи какие-то характерные только для нее признаки как минимум id, но вообще посмтановка вопроса не правильна мне кажется....
>Нужно узнать значение поля id в 10 записи. | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 01:06)
| | Хм... поля в базе даннных перемешаны, поэтому не имеет значение порядок записей без сортировки. Если вы сортируете записи можно воспользоваться конструкцией LIMIT, например, 10 запись можно извлечь следующим образом
SELECT id FROM table_name
ORDER BY id
LIMIT 10, 1
|
| |
|
|
|