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

Форум PHP

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

 

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

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

тема: Помогите подправить код пожалуйсто
 
 автор: nek-v   (06.09.2008 в 00:34)   письмо автору
 
 

вот код но не мой:
<table border="1"> 
<?php
require_once'conf/db.php';   
$num_on_row 7
$num 174
$iter $num + ($num_on_row - ($num $num_on_row));  
$query_id mysql_query("SELECT * FROM `card_tehnology` WHERE `id` = '$_GET[id]';"); 
$row mysql_fetch_array($query_id); 
for(
$i=0;$i<=$iter;$i++)   
{   
$ost $i $num_on_row
if(
$ost ==1
print 
'<tr>'
print 
'<td>'.(($i <= $num) ? $row['col_'.$i]:'').'</td>';   
if(
$ost ==0)
print 
'</tr>'
}   
?>   
</table> 

он выводит по 7 записей из базы на строку.
но вот в чем проблема
выводит он в таком виде

1
2 3 4 5 6 7
а надо так
1 2 3 4 5 6 7
тоесть все 7 на одной строке
а он первое ставит отдельно а остальные 6 на одну строку.
и я че то не догоню что исправить

  Ответить  
 
 автор: DDK   (06.09.2008 в 00:51)   письмо автору
 
   для: nek-v   (06.09.2008 в 00:34)
 

<table border="1">
<tr> 
<?php 
require_once'conf/db.php';    
$num_on_row 7;
$num 174;

$query_id mysql_query("SELECT * FROM `card_tehnology` WHERE `id` = '".$_GET[id]."'";
if(
mysql_num_rows($query_id))
{
    
$k=0;
    for(
$i=0$i $num$i++)
    {
        echo 
'<td>'.$row['col_'.$i].'</td>';
        
        if(
$k == $num_on_row) {
            echo 
'</tr><tr>';
            
$k=1;
        } else {
            
$k++;
        }
    }
}

?>
</tr>
</table> 

  Ответить  
 
 автор: nek-v   (06.09.2008 в 01:17)   письмо автору
 
   для: DDK   (06.09.2008 в 00:51)
 

блин спасибо!!!
работает!!!
только вот теперь вопрос, как сделать так чтоб не выводило пустых ячеек если в бд только несколько полей заполнены а не все 174?

  Ответить  
 
 автор: DDK   (06.09.2008 в 02:23)   письмо автору
 
   для: nek-v   (06.09.2008 в 01:17)
 


<table border="1"> 
<tr>  
<?php  
require_once'conf/db.php';     
$num_on_row 7
$num 174
 
$query_id mysql_query("SELECT * FROM `card_tehnology` WHERE `id` = '".$_GET[id]."'"
if(
mysql_num_rows($query_id)) 

    
$k=0
    for(
$i=0$i $num$i++) 
    { 
        if(!empty(
$row['col_'.$i])) 
        { 
            echo 
'<td>'.$row['col_'.$i].'</td>'
            if(
$k == $num_on_row
            { 
                echo 
'</tr><tr>'
                
$k=1
            } 
            else 
            { 
                
$k++; 
            } 
        }
    } 
}
?>
</tr> 
</table>

  Ответить  
 
 автор: sim5   (06.09.2008 в 07:31)   письмо автору
 
   для: DDK   (06.09.2008 в 02:23)
 

И где открывающий тег TR?

  Ответить  
 
 автор: DDK   (06.09.2008 в 09:05)   письмо автору
 
   для: sim5   (06.09.2008 в 07:31)
 

Внимательнее посмотрите :)

  Ответить  
 
 автор: sim5   (06.09.2008 в 09:16)   письмо автору
 
   для: DDK   (06.09.2008 в 09:05)
 

Мдя, что же вы его в черный выкрасили, не заметил :)

  Ответить  
 
 автор: sim5   (06.09.2008 в 07:49)   письмо автору
 
   для: nek-v   (06.09.2008 в 00:34)
 

Принцип таков:
1. Если текущая итерация цикла четна числу колонок то выводим открывающий тег TR
2. Далее выводим ячейки, но с учетом бордюра
3. Если текущая итерация цикла плюс 1 четна числу колонок то выводим закрывающий тег TR
Что значит с учетом бордюра:
Если вы указываете бордюр таблице, то в пустые ячейки нужно вставлять код проблеа - &nbsp;
Если раскладываемый массив не четен числу колонок таблицы, и вы указываете бордюр для нее, то нужно дополнить счетчик цикла разложения этого массива до четного числу колонок. Это можно сделать по такому принципу:
N = если число колонок больше числа элементов массива, или число элементов массива кратно числу колонок, значит равно числу элементов массива, иначе равно числу элементов массива плюс разница числа колонок и числа элементов массива деленного по модулю на число колонок.
Если этого не сделать и не вставлять &nbsp; в пустые ячейки, при указании бордюра, то ваша таблица будет выглядеть аляписто.

  Ответить  
Rambler's Top100
вверх

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