Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод в две колонки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
nsbox
Отправлено: 03 Сентября, 2008 - 11:19:23
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Сент. 2008  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




Помогите! пишу галерею и застрял на выводе категорий.
В базе имеется некоторое колличество категорий и нужно чтобы все категории выводились в два столбца. Вот код (допишите пожалуйста или подскажите как сделать):
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $categoryquery = mysql_query("SELECT * FROM tatoo_category");
  4. while ($categoryresquery = mysql_fetch_array($categoryquery)) {
  5. echo "
  6. <tr>
  7. <td align=\"center\"><a href=\"/gallery.php?category=".$categoryresquery["id"]."\">
  8. <img src=\"gallery/category/".$categoryresquery["foto"]."\"><br>".$categoryresquery["name"]."
  9. </a>
  10. </td>
  11. </tr>
  12. ";
  13. ?>

(Отредактировано автором: 03 Сентября, 2008 - 11:20:14)



-----
Мой форум: http://forum[dot]nsbox[dot]ru/
 
 Top
Вездеход
Отправлено: 03 Сентября, 2008 - 11:59:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




или делайте в 2-3 запроса - для 1го слобца и для второго по половине данных.
или же все данные вписывайте в массив и его уже обрабатывайте - через count() получайте количество элементов и пополам делите на 2 столбца


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
nsbox
Отправлено: 03 Сентября, 2008 - 12:19:04
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Сент. 2008  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




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


-----
Мой форум: http://forum[dot]nsbox[dot]ru/
 
 Top
Ыыы
Отправлено: 03 Сентября, 2008 - 14:44:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Июль 2008  
Откуда: Россия, Хабаровск


Помог: 0 раз(а)




if($i%2==0) echo '</tr>';

и все
 
 Top
Andrey5555
Отправлено: 03 Сентября, 2008 - 15:33:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




$query = mysql_query ("SELECT id, title, image FROM gallery ORDER BY id");
while ($array[]=mysql_fetch_array($query));
unset($array[(count($array)-1)]);
echo "<table border='1'>";
foreach ($array as $value)
{
echo "<tr>";
echo "<td>".$value['image']."</td><td>".$value['image']."</td>";
echo "</tr>";
}
echo "</table>";
 
 Top
Вездеход
Отправлено: 03 Сентября, 2008 - 16:45:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




Andrey5555
я только не заметил как в вашем запросе происходит ограничение на количество выводимых данных и где разделение на 2 столбца )))


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Andrey5555
Отправлено: 03 Сентября, 2008 - 17:08:13
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




))) Все работает нормально выводит в 2 колонки, но ожинакового содержания))Вездеход
Предложите свой вариант)
 
 Top
nsbox
Отправлено: 03 Сентября, 2008 - 17:18:13
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Сент. 2008  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




Andrey5555 пишет:
Вездеход,
Предложите свой вариант)

+1 очень нужно.

И если в таблице будет нечётное число строк. нужно чтобы все строки делились на 2 столбца.


-----
Мой форум: http://forum[dot]nsbox[dot]ru/
 
 Top
A.St.
Отправлено: 03 Сентября, 2008 - 17:57:32
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Такие вещи делаются либо с флагом, либо дивами с style="float:left; width=49%" - имхо.
Z.B.:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $categoryquery = mysql_query("SELECT * FROM tatoo_category");
  4. $flag = 0;
  5. echo "<tr>";
  6. while ($categoryresquery = mysql_fetch_array($categoryquery)) {
  7. if ( $flag == 1) {
  8. echo "</tr><tr>";
  9. $flag = 0;
  10. } else {
  11. $flag = 1;
  12. }
  13. echo "<td align=\"center\"><a href=\"/gallery.php?category=".$categoryresquery["id"]."\">
  14. <img src=\"gallery/category/".$categoryresquery["foto"]."\"><br>".$categoryresquery["name"]."
  15. </a>
  16. </td>
  17. ";
  18. }
  19. echo "</tr>";
  20. ?>
  21.  

(Отредактировано автором: 03 Сентября, 2008 - 18:00:22)

 
 Top
pifon1989
Отправлено: 03 Сентября, 2008 - 20:24:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $categoryquery = mysql_query("SELECT * FROM tatoo_category");
  4. $flag = 0;
  5. echo "<tr>";
  6. while ($categoryresquery = mysql_fetch_array($categoryquery)) {
  7. if ( $flag == 1) {
  8. echo "</tr><tr>";
  9. $flag = 0;
  10. } else {
  11. $flag = 1;
  12. }
  13. echo "<td align=\"center\"><a href=\"/gallery.php?category=".$categoryresquery["id"]."\">
  14. <img src=\"gallery/category/".$categoryresquery["foto"]."\"><br>".$categoryresquery["name"]."
  15. </a>
  16. </td>
  17. ";
  18. }
  19. echo "</tr>";
  20. ?>
  21.  

Я называю это по-разному: "танец операнды", "хирург понтуется" или "режь его тильдой!!!"
но суть одна: здесь он не подходит, т.к. в случае если число ячеек нечётное, и никак не будет упомянута последняя, чётная ячейка, таблица примет непредсказуемый вид - правила html4.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. echo '<table border="1" bordercolor="white">';
  4. $categoryquery = mysql_query("SELECT * FROM tatoo_category");
  5. while($categoryresquery = mysql_fetch_array($categoryquery))
  6. {
  7. // обработчик
  8. $tds[] = '<td align="center"><a href="/gallery.php?category='.$categoryresquery["id"].'"><img src="gallery/category/'.$categoryresquery["foto"].'"><br>'.$categoryresquery["name"].'</a></td>';
  9. }
  10. $i = count($tds);
  11. if(!is_int($i/2))
  12. {
  13. $tds[] = "&nbsp";
  14. }
  15. $tor = array_chunk($tds, 2);
  16.  
  17. // генератор
  18. foreach($tor as $value)
  19. {
  20. echo '<tr>';
  21.  foreach($value as $value2)
  22.  {
  23.  echo $value2;
  24.  }
  25. echo '</tr>';
  26. }
  27. echo '</table>';
  28. ?>
  29.  

Таким образом таблица должна встроиться верно.

(Отредактировано автором: 03 Сентября, 2008 - 20:25:29)



-----
Ассемблер для Чайников
Всем любителям Pascal посвящается:
function writeln($text) {echo '<br>'.$text};
 
 Top
nsbox
Отправлено: 03 Сентября, 2008 - 20:54:18
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Сент. 2008  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




pifon1989 пишет:
Таким образом таблица должна встроиться верно.


Огромное спасибо всё
<?php
echo "ok";
?> Радость
Прикреплено изображение (Нажмите для увеличения)
1.JPG

(Отредактировано автором: 03 Сентября, 2008 - 20:59:27)



-----
Мой форум: http://forum[dot]nsbox[dot]ru/
 
 Top
A.St.
Отправлено: 04 Сентября, 2008 - 13:10:33
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




pifon1989 пишет:
здесь он не подходит, т.к. в случае если число ячеек нечётное, и никак не будет упомянута последняя, чётная ячейка, таблица примет непредсказуемый вид - правила html4.


С одним циклом и проще, и быстрее.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $categoryquery = mysql_query("SELECT * FROM tatoo_category");
  4. $flag = 1;
  5. echo "<tr>";
  6. while ($categoryresquery = mysql_fetch_array($categoryquery)) {
  7. if ( $flag % 2 == 0) {
  8. echo "</tr><tr>";
  9. }
  10. echo "<td align=\"center\"><a href=\"/gallery.php?category=".$categoryresquery["id"]."\">
  11. <img src=\"gallery/category/".$categoryresquery["foto"]."\"><br>".$categoryresquery["name"]."
  12. </a>
  13. </td>
  14. ";
  15. // -> сюда иф вставить проще будет.
  16. if ( $flag == count( $categoryresquery) && $flag % 2 != 0) {
  17.     echo "<td></td>";
  18. } else {
  19.     $flag ++ ;
  20. }
  21. }
  22. echo "</tr>";
  23. ?>
  24.  

(Отредактировано автором: 04 Сентября, 2008 - 13:17:13)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB