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

Форум PHP

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

 

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

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

тема: вывод из базы в 3 или более столбцов
 
 автор: sidPR   (07.08.2007 в 10:54)   письмо автору
 
 

есть к примеру массив выводящий в шаблон


<!--UK-->  
  <tr>
      <td class="c-">{{name}}</td>
      <!--<td>таблица 2</td>-->
      <!--<td>таблица 3</td>-->
       </tr>
     <!--/UK--


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


1 5 9
2 6 10
3 7 11
4 8 12


мне хотябы сам принцип как это сделать а там я уже разберусь сам =)

P.S. заранее всем спасибо!

   
 
 автор: wolfandman   (07.08.2007 в 11:26)   письмо автору
 
   для: sidPR   (07.08.2007 в 10:54)
 

Что-то как ни стараюсь не могу понять чего хочет автор.

   
 
 автор: sidPR   (07.08.2007 в 11:37)   письмо автору
 
   для: wolfandman   (07.08.2007 в 11:26)
 

вывод из массива в 3 столбика послеовательность цепочки вывода должна быть такой

1-столбец 2-столбец 3-столбец
1 5 9
2 6 10
3 7 11
4 8 12

   
 
 автор: sidPR   (07.08.2007 в 11:54)   письмо автору
 
   для: sidPR   (07.08.2007 в 11:37)
 

Хорошо поставлю по другому вопрос ,

есть массив такого вида:

    $he[] = array('name' => $haz['name']);    


он полностьб запоняется всеми записями из базы к примеру 360....


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

   
 
 автор: Faraon   (07.08.2007 в 11:57)   письмо автору
 
   для: sidPR   (07.08.2007 в 11:54)
 

Можно попробовать типа такого

<?
echo "<table border=0 cellpadding=0 cellspacing=0>
<tr>"
;
$rows=mysql_query("SELECT * FROM table");
 
$res=mysql_fetch_array($rows);

  foreach(
$res as $val) {

$t=0;
$r=4;


 if (
$t==$r)
{
echo 
"</tr><tr><td bgcolor=ffffff colspan=7 width=20>".$val[param]."</td>";
 
$r=$r+3;
 }else{
echo 
"<td bgcolor=ffffff colspan=7 width=20>".$val[param]."</td>";
 
$t=$t+1;
 }
 }
echo 
"</tr>
</table>"
;
?>

Но тут по 4 элемента в строку а не в столбик, а там сами додумайте, принцип Вам на лицо

   
 
 автор: sidPR   (07.08.2007 в 12:08)   письмо автору
 
   для: Faraon   (07.08.2007 в 11:57)
 

а как мне разделить массив на 3 равные части...

   
 
 автор: Faraon   (07.08.2007 в 12:16)   письмо автору
 
   для: sidPR   (07.08.2007 в 12:08)
 

Если Вы имеете ввиду чтобы было по три элемента в строку
<?
echo "<table border=0 cellpadding=0 cellspacing=0>
<tr>"
;
$rows=mysql_query("SELECT * FROM table");
 
$res=mysql_fetch_array($rows);

  foreach(
$res as $val) {

$t=0;
$r=3;


 if (
$t==$r)
{
echo 
"</tr><tr><td bgcolor=ffffff colspan=7 width=20>".$res[param]."</td>";
 
$r=$r+2;
 }else{
echo 
"<td bgcolor=ffffff colspan=7 width=20>".$res[param]."</td>";
 
$t=$t+1;
 }
 }
echo 
"</tr>
</table>"
;
?>

А насчет равных не понял, просто выбираете количество записей чтобы их количество было например 12 и тогда будет 3 равных столбца

   
 
 автор: sidPR   (07.08.2007 в 12:23)   письмо автору
 
   для: Faraon   (07.08.2007 в 12:16)
 

нее я не про это я имеюю ввиду

есть массив
$hash

примерно такого вида:


Array
(
    [0] => Array
        (
            [name] => Тестик
        )

    [1] => Array
        (
            [name] => Тестик22
        )

    [2] => Array
        (
            [name] => Тестик тестер
        )

    [3] => Array
        (
            [name] => обтестер
        )

    [4] => Array
        (
            [name] => трестер
        )

)


записей может быть сколько угодно ..... мне этот массив нужно разложить на 3 равные части ну может быть гдето на 1 больше или меньше... если записи не делятся ровно на 3...

   
 
 автор: Faraon   (07.08.2007 в 13:09)   письмо автору
 
   для: sidPR   (07.08.2007 в 12:23)
 


<?
echo "<table border=0 cellpadding=0 cellspacing=0 width=60>
<tr>"
;
$res=array(
array(
"name"=>"1"),
array(
"name"=>"2"),
array(
"name"=>"3"),
array(
"name"=>"4"),
array(
"name"=>"5"),
array(
"name"=>"6")
         );
$t=0;
$r=3;

  foreach(
$res as $val) {




 if (
$t==$r)
{
echo 
"</tr><tr><td bgcolor=ffffff width=20>".$val["name"]."</td>";
 
$r=$r+2;
 }else{
echo 
"<td bgcolor=ffffff width=20>".$val["name"]."</td>";
 
$t=$t+1;
 }
 }
echo 
"</tr>
</table>"
;
?>

   
 
 автор: sidPR   (07.08.2007 в 14:26)   письмо автору
 
   для: Faraon   (07.08.2007 в 13:09)
 

Проблема в том что используется шаблонизатор, и мне нужно разделить массив на 3 массива.... равных между собой.. и потом уже выводить их... тоесть до вывода в HTML сделать 3 массива

   
 
 автор: Faraon   (07.08.2007 в 15:35)   письмо автору
 
   для: sidPR   (07.08.2007 в 14:26)
 

Вот так подойдет ?

<?

$res
=array(
array(
"name"=>"1"),
array(
"name"=>"2"),
array(
"name"=>"3"),
array(
"name"=>"4"),
array(
"name"=>"5"),
array(
"name"=>"6")
         );
 
$a=count($res);

$d=ceil($a/3);


for(
$i=0;$i<$a;$i++){

if((
$i>=$d)&&($i<($d*$d))){
$ar2.="array(\"name\"=>.\"".$res[$i]["name"]."\"),";
 }
if(
$i>=$d*$d){
$ar3.="array(\"name\"=>.\"".$res[$i]["name"]."\"),";
 }
if(
$i<$d){
$ar1.="array(\"name\"=>.\"".$res[$i]["name"]."\"),";
 }

}
$arr1=array($ar1);
$arr2=array($ar2);
$arr3=array($ar3);



?>

   
Rambler's Top100
вверх

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