Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: добавить в массив
 
 автор: moonfox   (27.12.2007 в 20:02)   письмо автору
 
 

подскажете пожалуйста как при while($danie=mysql_fetch_array($tt))....
добавлять значения колонки в один массив?

   
 
 автор: bronenos   (27.12.2007 в 20:22)   письмо автору
 
   для: moonfox   (27.12.2007 в 20:02)
 

$a[] = ...

   
 
 автор: moonfox   (27.12.2007 в 20:47)   письмо автору
 
   для: bronenos   (27.12.2007 в 20:22)
 

пробывал что то не то выходило..

вот
if($test[$i]==$u_id) $a[]=$danie['id'];$smarty->assign('a',$a);

в массиве находиться
Array ( [0] => 3 ) Array ( [0] => 3 [1] => 4 )
как в шаблоне вывести данные
........
{section name='h' loop=$a}
{$a[........]} ?
{/section}

   
 
 автор: Loki   (28.12.2007 в 10:36)   письмо автору
 
   для: moonfox   (27.12.2007 в 20:47)
 

>if($test[$i]==$u_id) $a[]=$danie['id'];$smarty->assign('a',$a);
Вы правда полагаете что если несколько строчек объединить в одну, то все они будут выполняться в результате одного if?

   
 
 автор: moonfox   (28.12.2007 в 17:07)   письмо автору
 
   для: Loki   (28.12.2007 в 10:36)
 

там не одна строка
я хотел узнать как создать и вносить элементы в массив чтобы на выходе получить один массив со всеми значениями

   
 
 автор: sim5   (28.12.2007 в 17:49)   письмо автору
 
   для: moonfox   (28.12.2007 в 17:07)
 

У вас массив какой-то странный. Ну вот такой, например:

<?
$a 
= Array(=> Array(=> 'as1_1'=> 'as1_2'=> 'as1_3'
      
=> Array(=> Array(=> 'one1'=> 'two1'))),
=> Array(=> 'as2_1'=> 'as2_2'=> 'as2_3'
      
=> Array(=> Array(=> 'one2'=> 'two2'))));
?>
//вывод
{section name="i" loop=$a}
 {$a[i][0]} - {$a[i][1]} - {$a[i][2]} <BR>
 {assign var = "new" value = $a[i][3]}
  &nbsp;&nbsp;{$new[i][0]} - {$new[i][1]}<BR>
{/section}

   
 
 автор: moonfox   (28.12.2007 в 19:00)   письмо автору
 
   для: sim5   (28.12.2007 в 17:49)
 

что то как все ... странно)
может я чего незнаю и не так делаю.

задача примерно такова.
есть поле 'komy' в нем находяться id пользователей для которых нужно показывать данные из этой строки из отведенного поля
данные в поле komy ввиде 1,12,36, - id пользователей
я пытаюся найти в каждой строке таблицы в поле komy наличие id соотвествующего id авторизированого пользователя а потом показать текст находящийся в поле для информации

<?
$query  
"SELECT * FROM `pub_ob`";
$ttmysql_query($query); 
$i=0;
while(
$danie=mysql_fetch_array($tt))
{
$test=explode(',' $danie['komy']);
for(
$i=0;$i<=count($test)-1;$i++)
// -1 потому как последняя запись любого поля имеет запятую - а это пустое значение
{
if(
$test[$i]==$u_id) {$a[]=$danie['id'];$b[]=$danie['name_ru'];}}  
// в каждом проходе цикла сверяю сооветвует ли цифра из поля - id юзера ( $u_id)
}
$smarty->assign('a',$a); 
$smarty->assign('b',$b); 

вывод print_r($a);
выдает что каждый проход создает массив с текущим результатом + новым тоесть:
для двух найденных соотвествий будет 2 массива
Array ( [0] => 3 ) Array ( [0] => 3 [1] => 4 )
для трех Array ( [0] => 3 ) Array ( [0] => 3 [1] => 4) Array ( [0] => 3 [1] => 4 [2]=>33)и тд..

в шаблоне пишу

{section name='h' loop=$a}
{$a[h]}
{/section}

получаю
3
4
33
вот тут я не пойму если массив $a содержал в себе вот ту кучу массивов и лишь последний содержал список всех выбранных данных - почему в шаблоне выводиться все правильно?

.........

   
 
 автор: sim5   (28.12.2007 в 19:06)   письмо автору
 
   для: moonfox   (28.12.2007 в 19:00)
 

Array ( [0] => 3 ) Array ( [0] => 3 [1] => 4 ) такого не знаю, такое array(0 => Array ( [0] => 3 ), 1 => Array ( [0] => 3 [1] => 4 )) еще могу понять. Что касается вывода в Смарти, то если вам нужно разложить многомерный массив некого элемента массива, то назначайте этот массив новой переменной Смарти и раскладывайте его во вложенном цикле. Вот про это и есть мой пример. Собственно в мануале Смарти все вроде понятно расписано, тем более если ваш массив проще.

   
 
 автор: moonfox   (28.12.2007 в 19:10)   письмо автору
 
   для: sim5   (28.12.2007 в 19:06)
 

так отчего
строка цикла
$a[]=$danie['id'];

заносить этот бред? - Array ( [0] => 3 ) Array ( [0] => 3 [1] => 4) Array ( [0] => 3 [1] => 4 [2]=>33
я предпологал получить только одну запись из переменой а = Array ( [0] => 3 [1] => 4 [2]=>33

а в смарти все нормально....

   
 
 автор: sim5   (28.12.2007 в 19:14)   письмо автору
 
   для: moonfox   (28.12.2007 в 19:10)
 

Вот почему у вас бред в массиве сказать не могу, код ваш. Если в Смарти у вас так как надо, значит вы не верно массив прописали здесь.

   
 
 автор: moonfox   (28.12.2007 в 19:18)   письмо автору
 
   для: sim5   (28.12.2007 в 19:14)
 

я привел тот кусок кода который выбирает и формирует массив
нет ли там чего не корректного?

   
 
 автор: sim5   (28.12.2007 в 19:26)   письмо автору
 
   для: moonfox   (28.12.2007 в 19:18)
 

Почитайте мануал - там все очень просто с примерами различных массивов. Разберетесь в чем у вас "бардак" будете знать как вывести.

   
 
 автор: moonfox   (28.12.2007 в 19:39)   письмо автору
 
   для: sim5   (28.12.2007 в 19:26)
 

проблемой как являеться что стоит for стоит внутри while... поэтому так и формирует

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования