Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Раздел для общения на любые темы, для которых не нашлось места в остальных разделах. Если Вашу тему можно отнести по смыслу к другому разделу, лучше создайте её там, иначе Вас накажут.

В данном форуме немного понижены требования к Общим правилам форума, а именно:
1. Информативность темы
2. Отходить от первоначального смысла темы

!
В разделе запрещено создавать темы связанные с раскруткой игровых серверов

Создание многомерного массива в цикле

Статус пользователя JIokoMoTuB
сообщение 8.5.2012, 21:07
Сообщение #1


Стаж: 16 лет

Сообщений: 2174
Благодарностей: 566
Полезность: 425

Пробывал много разнцых способов. Один фиг выдает ошибку.


Код
$db = mysql_connect($host, $user, $password);
mysql_select_db("$dbase", $db);
$res = mysql_query("SELECT * FROM base WHERE status='true'",$db) or die(mysql_error());
$myrow = mysql_fetch_array($res);
$address = $myrow["address"];
$type = $myrow["type"];
$i = $myrow["id"];
$port = $myrow["port"];
$points = $myrow["points"];
$vip = $myrow["vip"];
mysql_close($db);

$servers = array(
while($myrow = mysql_fetch_array($res)){
    $i => array($type, $address, $port);
}
);


Ошибка в данном случае

Код
Parse error: syntax error, unexpected T_WHILE, expecting ')' in /var/www/html/mon/index.php on line 21



это строка

Код
while($myrow = mysql_fetch_array($res)){


пробывал также с for и с do while. Скоро мозг сломаю.


Empower isn't phoenix
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Саша
сообщение 8.5.2012, 21:17
Сообщение #2


Стаж: 16 лет

Сообщений: 1082
Благодарностей: 441
Полезность: 828

оно так в арей не занесет гг

вот попробуй:
Код
while($myrow = mysql_fetch_array($res)){    $i => array($type, $address, $port);
$servers[] = array($type, $address, $port);
}


по идее как я понял оно создаст массив в массиве элементы , эти элементы содержат массивы

Отредактировал: Саша, - 8.5.2012, 21:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIokoMoTuB
сообщение 8.5.2012, 21:18
Сообщение #3


Стаж: 16 лет

Сообщений: 2174
Благодарностей: 566
Полезность: 425

Цитата(Саша @ 8.5.2012, 21:17) *
оно так в арей не занесет гг

вот попробуй:
Код
while($myrow = mysql_fetch_array($res)){    $i => array($type, $address, $port);
$servers[] = array($type, $address, $port);
}


по идее как я понял оно создаст массив в массиве элементы , эти элементы содержат массивы



Код
Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/html/mon/index.php on line 20


20 строка


Код
while($myrow = mysql_fetch_array($res)){ $i => array($type, $address, $port);


Empower isn't phoenix
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Саша
сообщение 8.5.2012, 21:21
Сообщение #4


Стаж: 16 лет

Сообщений: 1082
Благодарностей: 441
Полезность: 828

Код
while($myrow = mysql_fetch_array($res)){
$servers[]= $i=>array($type, $address, $port);
}


а так?

а вообще так не делается, там есть вроде функция для назначения ключей в многомерных массивах..

Отредактировал: Саша, - 8.5.2012, 21:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIokoMoTuB
сообщение 8.5.2012, 21:39
Сообщение #5


Стаж: 16 лет

Сообщений: 2174
Благодарностей: 566
Полезность: 425

Цитата(Саша @ 8.5.2012, 21:21) *
Код
while($myrow = mysql_fetch_array($res)){
$servers[]= $i=>array($type, $address, $port);
}


а так?


Код
Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/html/mon/index.php on line 21


Код
$servers[] = $i=>array($type, $address, $port);




чтобы было понятно, это GameQ.
Там статичный массив. Решил перенести в mysql и чтобы оттуда брались значения и строился массив.


Цитата
$servers = array(
'server 1' => array('quake3', '194.109.69.61'),
'server 2' => array('cssource', '194.109.69.51', 27015),
'server 3' => array('bf2142', '194.109.69.21'),
'server 4' => array('ts3', 'voice.planetteamspeak.com')
);



вот его нужно заменить


Empower isn't phoenix
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Саша
сообщение 8.5.2012, 21:59
Сообщение #6


Стаж: 16 лет

Сообщений: 1082
Благодарностей: 441
Полезность: 828

Думаемс...

Извини. Не знаю как сделать..

Отредактировал: Саша, - 8.5.2012, 22:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vim
сообщение 8.5.2012, 23:41
Сообщение #7
Стаж: 14 лет

Сообщений: 19
Благодарностей: 8
Полезность: 0

Ппц) А про синтаксис php почитать хотя бы немного не пробовали?)
Код
$servers = array();
$i = 1;
while ($myrow = mysql_fetch_array($res)) {
    $servers[$i++]= array($myrow['type'], $myrow['address'], $myrow['port']);
}



Ну или, чтобы получить полностью твой статический массив, делаем так
Код
$servers = array();
$i = 1;
while ($myrow = mysql_fetch_array($res)) {
    $servers['server ' . $i++]= array($myrow['type'], $myrow['address'], $myrow['port']);
}


Отредактировал: vim, - 9.5.2012, 0:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIokoMoTuB
сообщение 9.5.2012, 7:43
Сообщение #8


Стаж: 16 лет

Сообщений: 2174
Благодарностей: 566
Полезность: 425

Ваши варианты не рабочие. Спасибо Fire, помог.


Empower isn't phoenix
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: