|
|
|
|
|
для: Лена
(27.08.2008 в 13:16)
| | А зачем тогда объеденять эти заголовки в строку, чтобы потом мучиться при выводе? Может стоит привести сперва таблицу к нормальному виду, а уж потом... | |
|
|
|
|
|
|
|
для: sim5
(27.08.2008 в 12:04)
| | explode по пробелу не получится. На выходе из базы получается строка типа:
БегемотКрокодил опасныйЖирафМартышка
|
Каждый заголовок - с большой буквы. С помощью регулярных выражений? Если да, то буду дальше думать
В конечном счете должна получиться таблица, где три ряда, три столбца, где в каждой ячейке вот такое:
<TD><input type = 'checkbox' name = 'typeWork'>заголовок</TD>
|
| |
|
|
|
|
|
|
|
для: Лена
(27.08.2008 в 11:57)
| | explode по пробелу, например, если в строке нет других разделителей. И вообще, что представялет собой в итоге (после "вытягивания" из базы) эта строка? Чтобы разложить это в while, нужен естественно цикл для разложения этого массива (чекбоксов). Или нужна общая таблица, в которой должны быть разложены еще и чекбоксы? | |
|
|
|
|
|
|
|
для: sim5
(27.08.2008 в 10:56)
| | Давайте разбираться.
Не знаю, как грамотно спросить, постараюсь, чтобы вы меня поняли.
$title - это заголовки для чекбоксов, которые вытягиваются из базы в виде строки.
Я так понимаю, эту строку нужно разбить на отдельные части и по количеству частей формировать таблицу.
Вот из базы я вытягиваю $title = $row[2]. Как можно разбить эту строку? По чем можно ее бить, чтобы получились отдельные слова-заголовки? В заголовках одно-два-три слова. | |
|
|
|
|
|
|
|
для: Лена
(27.08.2008 в 10:43)
| | А что такое $title? Если это строка текста, то почему по ее длине строится таблица? И еще:
[$i] ? print.... тут ошибка. Вы просто узнаете существует ли у итерации значение, а у меня в примере, итерация служит индексом массива к которому обращаемся ($d). Ну и последнее. Строка в примере:
$n = ($col>count($d) || !(count($d)%$col)) ? count($d) : count($d)+($col-count($d)%$col);
служит для того, чтобы независимо от числа элементов раскладываемого массива, присвоить счетчику цикла величину кратную числу колонок получаемой таблицы. Это важно тогда, когда таблицу надо визуализировать, в противном случае она не нужна, как и вывод <TD> </TD>.
PS. Стоит добавить, что, например, слово, это тоже массив, и обращаясь к нему как $s[$i], например, вы будете получать по одной букве этого слова (это к тому, почему одну буковку получаете). | |
|
|
|
|
|
|
|
для: sim5
(26.08.2008 в 10:55)
| | Делаю подобным образом, вывожу значения из базы в таблицу:
<?php
include("../configs/dbopen.php");
$sql = "SELECT * FROM `menu` WHERE `pid` = 0 ORDER BY `id_menu`";
$result = mysql_query($sql) or die (mysql_error());
while($row = mysql_fetch_row($result)) {
$title = $row[2];
$col = 2;
$n = ($col>count($title) || !(count($title)%$col)) ? count($title) : count($title)+($col-count($title)%$col);
echo "<table cellspacing=''">;
for ($i=0; $i<$n; $i++) {
if (!($i % $col)) print '<TR>';
$title[$i] ? print "<TD><input type = 'checkbox' name = 'typeWork'>" . $title[$i] . "</TD>" : print "<TD> </TD>";
if (!($i+1 % $col)) print "</TR>";
}
echo "</table>";
}
?>
|
Выводится только первая буква слова. Как вытянуть все слово? | |
|
|
|
|
|
|
|
для: Лена
(26.08.2008 в 10:32)
| |
<?php
$d = array("a", "s", "e", "r", "f", "d", "c", "w", "s");
echo "<table border = 4>";
echo "<tr>";
for($n = 0; $n < count($d); $n++)
{
for($i = 0; $i < 3; $i++){
if(!empty($d[$n+$i])) echo "<td>" . $d[$n+$i] . "</td>";
else echo "<td> </td>";
}
echo "</tr><tr>";
$n=$n+3;
}
echo "</tr>";
echo "</table>";
?>
|
| |
|
|
|
|
|
|
|
для: Лена
(26.08.2008 в 10:32)
| |
<?
$d = array("a", "s", "e", "r", "f", "d", "c", "w", "s");
$col = 3; //число колонок
$n = ($col>count($d) || !(count($d)%$col)) ? count($d) : count($d)+($col-count($d)%$col);
print '<TABLE cellpadding="4" cellspacing="1" bgcolor="#000000">';
for ($i=0; $i<$n; $i++) {
if (!($i % $col)) print '<TR bgcolor="#ffffff">';
$d[$i] ? print "<TD>" . $d[$i] . "</TD>" : print "<TD> </TD>";
if (!($i+1 % $col)) print "</TR>";
}
print "</TABLE>";
?>
|
| |
|
|
|
|
|
|
| Нужно вывести массив в таблицу, в которой 3 ряда по три столбца - всего 9 ячеек.
Я пробовала вот так сделать:
<?php
$d = array("a", "s", "e", "r", "f", "d", "c", "w", "s");
echo "<table border = 4>";
for($n = 0; $n < count($d);$n++){
echo "<tr>";
for($i = 0; $i < 3; $i++){
if(!empty($d[$n][$i])) echo "<td>" . $d[$n][$i] . "</td>";
else echo "<td> </td>";
}
echo "</tr>";
}
echo "</table>";
?>
|
Заполняется данными только первая ячейка каждой строки, две остальные - пустые. Как исправить? Заранее спасибо. | |
|
|
|
|