Автор Тема: Проблема с mysql_fetch_array  (Прочитано 3760 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Smoke

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://icq.sandex.ru
Проблема с mysql_fetch_array
« : 23 Октября 2003, 23:49:45 »
Возникла проблема, мучаюсь а решить не получается :mad:

В базе данных MySQL есть такий поля
+-----------+-----------+-----------+-----------+
|__ r44 ____|__ r45 ____| _____r46_ |_____r47___|
+-----------+-----------+-----------+-----------+
| 0000,0000 | 0001,0000 | 0000,0000 | 1100,0000 |
| 0000,0000 | 0001,0000 | 0000,0000 | 0000,0000 |
| 0000,0000 | 1101,0000 | 0001,0000 | 0111,0000 |
| 0000,0000 | 0001,0000 | 0000,0000 | 0001,0000 |
| 0000,0000 | 0001,0000 | 0000,0000 | 1101,0000 |
+-----------+-----------+-----------+-----------+

и т.д.

Имя первого столбца "y"
Мне нужно выполнить запрос к базе MySQL и получить выше указанные значения строк в массиве (не ассоциативном), для этого я делаю следующее:

$minix=45-5; //столбцы
$miniy=50-5; //строки
$query="select ";
 for ($i=$minix;$i<$minix+11;$i++)
 {
__if ($i!=$minix+10)
__{
____$query=$query."r".$i.",";
__}
__else
__{
____$query=$query."r".$i." ";
__}
 }
$query=$query." from ".$dbmap." where y=".$miniy." or y=".$miniy."+1 or y=".$miniy."+2 or y=".$miniy."+3 or y=".$miniy."+4 or y=".$miniy."+5 or y=".$miniy."+6 or y=".$miniy."+7 or y=".$miniy."+8 or y=".$miniy."+9";
$result=mysql_query($query);
if ($result)
{
 $num_rows=mysql_num_rows($result);
 $minimap=mysql_fetch_array($result);
 for ($i=0;$i {
___$minimap1[$i]=substr($minimap[$i],0,4);
 }

В резулбтате получается что count($minimap) равно 22 вместо 100, а реально количество не пустых элементов массива получается 11 :insane:

Подскажите плз как мне решить эту проблему, так чтобы все элементы базы данных оказались в одном массиве по очереди (слева направо) :confused:
I hate real world

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Проблема с mysql_fetch_array
« Ответ #1 : 23 Октября 2003, 23:57:43 »
а ты можешь сюда кинуть текст сгенеренного запроса?
а то ничего вообще непонятно.
•••Jah\'d never let us down!•••

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проблема с mysql_fetch_array
« Ответ #2 : 24 Октября 2003, 00:06:22 »
echo $query; /// перед mysql_query() и сюда текст запроса.
Если массив нужен не ассоциативный то используй mysql_fetch_row
запрос типа
Цитировать
$query=$query." from ".$dbmap." where y=".$miniy." or y=".$miniy."+1 or y=".$miniy."+2 or y=".$miniy."+3 or y=".$miniy."+4 or y=".$miniy."+5 or y=".$miniy."+6 or y=".$miniy."+7 or y=".$miniy."+8 or y=".$miniy."+9";

ИМХО удобнее создавать примерно так
 
$query 
.= " FROM ".$dbmap." WHERE y IN (".implode(","range($miniy$miniy+9)).")";
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Smoke

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://icq.sandex.ru
Проблема с mysql_fetch_array
« Ответ #3 : 24 Октября 2003, 00:07:50 »
Вот текст запроса который получается в результате, в консоли все нормально, выдает то что надо (таблица вверху), а вот как эту таблицу преобразовать к массиву ?

select r44,r45,r46,r47,r48,r49,r50,r51,r52,r53,r54 from map where y=50 or y=50+1 or y=50+2 or y=50+3 or y=50+4 or y=50+5 or y=50+6 or y=50+7 or y=50+8 or y=50+9
I hate real world

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проблема с mysql_fetch_array
« Ответ #4 : 24 Октября 2003, 00:11:54 »
таблица это грубо говоря двумерный массив. А в какой массив тебе ее нужно преобразовать ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Smoke

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://icq.sandex.ru
Проблема с mysql_fetch_array
« Ответ #5 : 24 Октября 2003, 00:25:08 »
Преобразовать в  одномерный, чтоб при окончании первой строки таблицы начиналась вторая и т.д.
I hate real world

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проблема с mysql_fetch_array
« Ответ #6 : 24 Октября 2003, 01:17:15 »

$res 
mysql_query($query);
$ar = array();
while (
$row mysql_fetch_row($res)) {
  
$ar $ar array_values($row);
  
// или так может, лень проверять
  // $ar = array_merge($ar, array_values($row));
}
$ar - твой массив
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с mysql_fetch_array
« Ответ #7 : 24 Октября 2003, 10:52:11 »
Вообще, таблица, в которой поля называются именно так, вызывает у меня ОЧЕНЬ большие подозрения.
В том, что она должна быть совсем не такая.

Оффлайн Smoke

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://icq.sandex.ru
Проблема с mysql_fetch_array
« Ответ #8 : 24 Октября 2003, 16:39:32 »
И какая она должна быть ?
I hate real world

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с mysql_fetch_array
« Ответ #9 : 24 Октября 2003, 16:49:17 »
тонкая и стройная, как березка.
три поля.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28