19:37 

Задача php

Plexx
Имеется вывод циклом трех строк.

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

я делаю цикл. и вывожу. Но вывод будет сразу трех полей в одном месте...

нужна помощь. Я так догадываюсь нужно массив создать и foreach вывести с разными индексами в теге.

но как это выглядеть будет в коде?
id - name
1 - Тег1
2 - Тег2
3 - Тег 3

while() {

name = $row[name];

}

@темы: Вопросы, PHP

Комментарии
2010-09-29 в 20:09 

unsigned
мы так воодушевлены, что светимся
Да уж, задачка. Вы случаем не филолог? Попробуйте точнее сформулировать условие задачи, тогда можно будет рассчитывать на ответ.

2010-09-29 в 20:27 

Plexx
$name = array();

while ($row){

$name[] .= $row[name];

}

$name1 = $name[0];

$name2 = $name[1];

$name3 = $name[2];

Я вот до такого только додумался а если мне нужно вывести 10 например.. Дописывать $name4 и тд? автоматизировать как?

2010-09-29 в 21:03 

unsigned
мы так воодушевлены, что светимся
Похоже, диалога не выйдет — Ваш код лишен смысла.

php.net/manual/en/language.types.array.php
www.php.net/manual/en/language.control-structur...

Читайте документацию.

2010-09-29 в 21:05 

Crazy Wizard
Псих
if(isset($name[$n])){
echo $name[$n];
$n++;
}


в самом начале кода $n=0;

2010-09-29 в 21:06 

Crazy Wizard
Псих
unsigned, у автора массив переменной длинны и нужно выводить НЕ в цикле (хотя сходу и не придумаешь такую ситуацию)

2010-09-29 в 21:15 

unsigned
мы так воодушевлены, что светимся
Crazy Wizard Если нужно выбирать по одному элементу из массива, пока тот не кончится, то лучше воспользоваться чем-то вроде array_shift($name) или воспользоваться итераторами (внутренним указателем позиции массива, если быть точным). Но ответить автору на его вопрос — это сослужить дурную службу. Тут налицо непонимание самых основ. Лучше было бы вытянуть полное задание и объяснить как сделать правильно.

2010-09-29 в 21:15 

Plexx
Crazy вы верно поняли.
Нужно вывести все новости не в цикле в разных частях сайта.

Но сначала то нужно выбрать эти новости в цикле. и поместить в массив. а потом уже работая с массивом вытаскивать по одной новости и выводить в нужном месте на сайте..

2010-09-29 в 21:21 

Plexx
unsigned Специально для вас.

есть таблица с именами
id-name
1 - Игорь
2 -Максим
3 - Вера

как мне эти три имени вывести на сайте в разных местах тегами?

Делать для каждого тега по одному запросу не вариант.

Делать один запрос - цикл а потом с ним работать - вариант.. Но как реализовать я могу только рассуждая словами а не кодом.

Чуть выше я написал код как я считал нужным и у меня получилось. Но мне нужно что бы я не прописывал постоянно $name1 $name2 и т.д. (Вдруг мне нужно будет вывести 100 имен на сайте в разных местах) Нужно это как то автоматизировать.

Запрос

цикл

кеш+сериализация

ансериализация

foreach - вывод

2010-09-29 в 21:33 

unsigned
мы так воодушевлены, что светимся
Plexx
Если Вам очень важно использовать переменные типа $name1, $name2 вместо элементов массива, то Вы можете генерировать их в том же цикле как-то так:
$a = "name$i";
$$a = $name[$i];

Ну это так, в копилку общей бредовости диалога.

2010-09-29 в 21:45 

Crazy Wizard
Псих
> $a = "name$i";
> $$a = $name[$i];

не знал, что так можно)) Но и правда криво смотрится)

2010-09-29 в 21:53 

--==SS==--
Sanctus Satanas
А что значит «три имени вывести на сайте в разных местах тегами»?
И потом… Вот у вас есть массив. Почему нельзя обращаться к его элементам по индексу?

2010-09-29 в 22:20 

Plexx
--==SS==--

Это я к примеру про имя.
На самом деле нужно вывести сверху страницы одну новость

всередине страницы другую

ит.д

--------------------------
1 новость
--------------------------
тут какой то модуль
-------------------------
2 новость
-------------------------
тут например реклама
------------------------
3 новость
---------------------------
тут например картинка
-------------------------
и т.д






Ну я так выше и сделал.

$content_0 = $name[0];
$content_1 = $name[1];
$content_2 = $name[2];
$content_3 = $name[3];

Но этот вариант не совсем подходит потому что мне нужно что бы генерировалось на автомате.
Т.е. что то типа такого
$content_[$i] = $name[$i];

Ну я незнаю правильно ли написал и можно ли так делать.

2010-09-29 в 22:28 

--==SS==--
Sanctus Satanas
Можно.

foreach ($name as $key => $value)
{
    ${'content_' . $key} = $value;
}

Только почему нельзя вместо $content_1 написать просто $name[1] ума не приложу.

2010-09-29 в 23:40 

Plexx
Все собрал. Всем спасибо. Особенно --==SS==-- эта строчка очень помогла. ${'content_' . $key} = $value;

     

Сообщество PHP программистов

главная