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 :: Вывод данных в цикле в 3 колонки

 PHP.SU

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


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

> Описание: Помогите изменить код чтобы выводились не две а три колонки из базы
Рашид
Отправлено: 11 Июня, 2014 - 21:57:37
Post Id


Новичок


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


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




Здравствуйте ! помогите пожалуйста изменить код, чтобы из базы выводилось не в две калонки с данными , а в три. Вот рабочий код вывода в цикле из базы в две колонки:

<?PHP
$result=mysql_query("SELECT * FROM `menu`");
$row=mysql_num_rows($result);
$result2=ceil($row/2);
print '<table cellpadding="0" cellspacing="0" border="0"><tr valign="top"><td width="150">';
$i="1";
while ($array=mysql_fetch_array($result))
{
?>
<input type='checkbox' value="<?PHP print $array['name']; ?>">
<?PHP print $array['name']; ?>
<?PHP
if($result2==$i)
{
print "</td><td width='150'>";
}
$i++;
}
print "</td></tr></table>";
?>
(Добавление)
Здравствуйте ! помогите пожалуйста изменить код, чтобы из базы выводилось не в две калонки с данными , а в три. Вот рабочий код вывода в цикле из базы в две колонки:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $result=mysql_query("SELECT * FROM `menu`");
  4. $row=mysql_num_rows($result);
  5. $result2=ceil($row/2);
  6. print '<table cellpadding="0" cellspacing="0" border="0"><tr valign="top"><td width="150">';
  7. $i="1";
  8. while ($array=mysql_fetch_array($result))
  9. {
  10. ?>
  11. <input type='checkbox' value="<?PHP print $array['name']; ?>">
  12. <?PHP print $array['name']; ?>
  13. <?PHP
  14. if($result2==$i)
  15. {
  16. print "</td><td width='150'>";
  17. }
  18. $i++;
  19. }
  20. print "</td></tr></table>";
  21. ?>
 
 Top
LIME
Отправлено: 12 Июня, 2014 - 10:45:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




код глупейший
проще переписать
гуглить на выбор
block-inline
float
 
 Top
DelphinPRO
Отправлено: 12 Июня, 2014 - 11:16:32
Post Id



Активный участник


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


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




PHP:
скопировать код в буфер обмена
  1. $columnCount = 3;
  2.  
  3. $result = mysql_query("SELECT * FROM `menu`");
  4. $row = mysql_num_rows($result);
  5.  
  6. $width: round(100 / $columnCount, 4);
  7. echo '<div>';
  8. while ($array=mysql_fetch_array($result))
  9. {
  10.         echo '<div style="display:inline-block;vertical-align:top;width:'.$width.'%">';
  11.         echo "<input type='checkbox' value=\"{$array['name']}\">";
  12.         echo $array['name'];
  13.         echo "</div>";
  14. }
  15. echo "</div>";


в первой строке можно задать количество колонок


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 12 Июня, 2014 - 11:26:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




DelphinPRO пишет:
$width: round(100 / $columnCount, 4);
все круто кроме синтаксической ошибки и лучше всетаки floor дабы в большую не округлило
(Добавление)
 
 Top
DelphinPRO
Отправлено: 12 Июня, 2014 - 12:29:48
Post Id



Активный участник


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


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




LIME пишет:
все круто кроме синтаксической ошибки и лучше всетаки floor дабы в большую не округлило

Да это я на sass второй день пишу Улыбка загнался
По поводу floor - согласен
(Добавление)
DelphinPRO пишет:
По поводу floor - согласен


Нет, не согласен. он же до целого округляет. А 33% это не совсем то же самое, что 33.3333%.
Поэтому именно round, но с округлением в меньшую сторону.

PHP:
скопировать код в буфер обмена
  1. round(100 / $columnCount, 4, PHP_ROUND_HALF_DOWN);


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 12 Июня, 2014 - 12:51:29
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




DelphinPRO а разве браузеры понимают дробные % ?
они округляют до пикселей понятно но принимают ли дроби?
сомневаюсь
просвети
(Добавление)
и кстати именно из-за округления до пикселей и даже если дроби понимают я лучше использую 33% чем 33.3333%
может округлить до пикселей не туда
 
 Top
DelphinPRO
Отправлено: 12 Июня, 2014 - 13:51:52
Post Id



Активный участник


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


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




LIME пишет:
просвети

Дроби понимают. С разной точностью. Минимальная точность у IE - четыре знака.
Это когда речь идет об относительных единицах. С пикселями не прокатит, разумеется. Но ведь у нас проценты. Смотри:

Пусть
100% - 1000px
тогда 33% - 330px
а 33.3333% - 333.3333px которые округлятся до 333px

разница в три пикселя.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 12 Июня, 2014 - 13:56:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




тогда пожалуй да
но округлять в меньшую было важным замечанием)
(Добавление)
DelphinPRO спасибо
(Добавление)
а если блок 1000px и надо 13 колонок? ))
(Добавление)
да да ))
не поленился

(Отредактировано автором: 12 Июня, 2014 - 13:59:11)

 
 Top
DelphinPRO
Отправлено: 12 Июня, 2014 - 14:12:18
Post Id



Активный участник


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


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




ну и что? где проблема?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 12 Июня, 2014 - 14:13:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




до пикселя округлится в большую и последний блок перейдет вниз
нет?
 
 Top
DelphinPRO
Отправлено: 12 Июня, 2014 - 14:25:16
Post Id



Активный участник


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


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




нет (искал что-то наподобие phpfiddle Улыбка ) нашел

http://viper-7[dot]com/dcCkzE


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 12 Июня, 2014 - 14:31:30
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




ничего не понимаю
каждый блок по 77px а всеравно помещаются
ладно...потом если не будет лениво поставлю чистые эксперименты
 
 Top
DelphinPRO
Отправлено: 12 Июня, 2014 - 14:32:20
Post Id



Активный участник


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


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




Кстати, если посмотреть пример в каком-нибудь древнем браузере, то там съедет последний блок по озвученной Lime`ом причине. Но современные браузеры намного умнее Улыбка

Четвертый красный блок на 1 пиксель меньше остальных ;) Но зато все в ряд стоят.
(Добавление)
На хабре была статейка по этому поводу - как браузеры округляют пиксели. К сожалению в закладках не нашел, и название не помню... Там как-раз рассказывалось об этих "умных" механизмах. Давняя статейка, год-полтора-два.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 12 Июня, 2014 - 14:36:26
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




стало яснее
вот бы еще f12 не врал по поводу последнего блока а честно признался что он 76px
ну тема эта чисто гипотетическая
но спасибо DelphinPRO за то что поучаствовал еще раз)

(Отредактировано автором: 12 Июня, 2014 - 14:36:40)

 
 Top
DelphinPRO
Отправлено: 12 Июня, 2014 - 14:38:11
Post Id



Активный участник


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


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




у меня не последний, а четвертый красный (т.е. седьмой). Инспектор и правда врет Улыбка но я экранной линейкой мерил ;)


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB