[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: switch case
Fox13
Здравствуйте!!! Я начинающий...(знаю вопрос очень тупой).....


Можно ли с помощью конструкции switch case сделать так чтоб значения выводились в таблицу по столбикам

Код

switch ($name) {
case "Line":
   echo "<tr><td>$el[1]</td>";
   break;
case "Byline":
   echo "<tr><td>$el[1]</td></tr>";
break;
}


или так не делают??? или тут надо использовать цикл???





Спустя 8 минут, 45 секунд (17.03.2009 - 15:52) sergeiss написал(а):
Во-первых, у тебя в первом ЭХО не хватает </tr>, а во-вторых, использование тех или иных средства определяется потребностью smile.gif Вот у тебя какая потребность, что ты хочешь сделать?
Может ты и правильно всё сделал, кто ж тебя знает...

Спустя 8 минут, 3 секунды (17.03.2009 - 16:00) Fox13 написал(а):
Я хочу чтобы Line выводилось в один столбик, а Byline в другой т е 2 столбика, а у меня выводиться все в 1 столбик...

Спустя 44 минуты, 49 секунд (17.03.2009 - 16:45) sergeiss написал(а):
А $name откуда берется? Вводит юзер, или из БД? И будут ли следовать строго друг за другом эти величины: "Line" и "Byline"?

Спустя 8 минут, 18 секунд (17.03.2009 - 16:54) Fox13 написал(а):
$name берется из XML такого вида:

Код

- <Lines>
 <Line>Мыло</Line>
 <Byline>123</Byline>
 </Lines>
- <Lines>
 <Line>Щелоч</Line>
 <Byline>12</Byline>
 </Lines>


Да, надо чтоб они друг за другом шли и образовали табличку из 2х столбиков

Спустя 9 минут, 33 секунды (17.03.2009 - 17:03) sergeiss написал(а):
Если они всегда строго идут парой, тогда надо в твоем начальном коде очень мало что именить:
PHP
echo "<tr>";
switch (
$name) {
case 
"Line":
   echo 
"<td>{$el[1]}</td>";
   break;
case 
"Byline":
   echo 
"<td>{$el[1]}</td>";
break;
}
echo 
"</tr>";

И кстати. Почему бы не вывести эти данные в 2 разных переменные? Тогда проще будет их выводить. В одну строку smile.gif

Спустя 24 минуты, 7 секунд (17.03.2009 - 17:27) Fox13 написал(а):
Все равно выводит в 1 столбик все эти значения поочереди... sad.gif

А как вывести в 2 разные переменные я вообще не понял...
Вот все функция
Код

function end_handler( $p, $name)
{
global $open_stack;
$el=array_pop( $open_stack);
echo "<table border=1 width=560 bgcolor=#eeeeee bordercolor=#fefefe>";
echo "<tr>";
switch ($name) {
case "Line":
echo "<td>$el[1]</td>";
break;
case "Byline":
echo "<td>$el[1]</td>";
break;
}
echo "</tr>";
echo "</table>";
}

Спустя 22 минуты, 43 секунды (17.03.2009 - 17:50) sergeiss написал(а):
Я тебе не совсем правильно сказал...
Вот смотри, какой надо сделать алгоритм:
PHP
echo "<table ...параметры...>";
// цикл по блокам Lines
echo "<tr>";
  
// тут выбираешь и выводишь переменные Line Byline, чтобы они были в одну строку, т.е. используешь только <td> и </td>


echo "</tr>";
// конец цикла по блокам Lines
echo "</table>";

Спустя 17 часов, 38 секунд (18.03.2009 - 10:51) Fox13 написал(а):
Если я правильно понял, с циклом нужно сделать так....

Код

function end_handler( $p, $name)
{
global $open_stack;
$el=array_pop( $open_stack);
echo "<table border=1 width=560 bgcolor=#eeeeee bordercolor=#fefefe>";
echo "<tr>";
$counter="Lines";
while ($counter==$name)
{
switch ($name) {
case "Line":
echo "<td>$el[1]</td>";
break;
case "Byline":
echo "<td>$el[1]</td>";
break;
}
$counter++;
}
echo "</tr>";
echo "</table>";
}



но ничего не выводит.....????? sad.gif

Спустя 37 минут, 18 секунд (18.03.2009 - 11:28) sergeiss написал(а):
Тебе нужно внутри таблицы делать цикл, а внутри цикла делать выборку данных. Которые уже ты будешь выводить.

У тебя же, насколько я понял, сначала выбираются данные (один блок), затем ты вызываешь функцию, в которой открываешь таблицу и заполняешь ее...

Логику продумай сначала!!! Я же написал некий обобщенный алгоритм. А ты делаешь нечто другое.
Плюс к этому, у тебя в цикле вообще бардак полный: ты сравниваешь величины 2-х переменных, $counter и $name. Но при этом $name может принимать значения 'Line' и 'Byline', а $counter - это числовое значение... Ты сам-то понял, что хотел сделать?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.