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

Форум MySQL

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

 

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

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

тема: Результат запроса в таблицу
 
 автор: kukuikar   (02.03.2007 в 01:35)   письмо автору
 
 

Чего-то не выходит сделать такуб весчь:(
Результат запроса MySQL возвращает ассоциативный массив с данными. В данном случае мне нужны только значения.
Нужно в зависимости от количества значений массива вывести таблицу, да так чтобы все строки были заполнены, чтобы не было пустых ячеек..
Можно конечно через if, и перебрать все возможные варианты, но это варварство, и рука не поднимается. Помогите хоть с алгоритмом...
Заранее спасибо.

   
 
 автор: XPraptor   (02.03.2007 в 03:55)   письмо автору
 
   для: kukuikar   (02.03.2007 в 01:35)
 

Не очень понял, но если как дусаю, то так:

//запрос вернул результаты
$rez=mysql_query("SELECT * FROM ....");
print "<table width=100%>";
while($row=mysql_fetch_object($rez))
{
    print "<tr>\r\n";
    foreach($row as $key=>$val){
        print "<td>" . $val . "</td>";
    }
    print "</tr>\r\n";
}
mysql_free_result($rez);
print "</table>";

   
 
 автор: kukuikar   (02.03.2007 в 12:31)   письмо автору
 
   для: XPraptor   (02.03.2007 в 03:55)
 

Эта штука запишет таблицу с количесвтом ячеек равным количеству строк, т.е. в 1 строке одна ячейка. А мне надо чтобы в зависимости от общего количества элементов в массиве-результате функция выводила таблицу... там 3х4 или 4х2...

   
 
 автор: devil   (02.03.2007 в 12:47)   письмо автору
 
   для: kukuikar   (02.03.2007 в 12:31)
 

а что именно надо выводить в ячейках.
сам вывод таблицы можно организовать так
$a=mysql_query("SELECT * FROM....");
$num=mysqk_num_rows($a);
echo "<table>";
for ($i=1; i<=$num; $i++){
echo "<tr><td>"......
и в таком духе выводить

   
 
 автор: cheops   (02.03.2007 в 12:46)   письмо автору
 
   для: kukuikar   (02.03.2007 в 01:35)
 

Не очень понятно, что значит, чтобы не было пустых ячеек - приведите пример.

   
 
 автор: kukuikar   (02.03.2007 в 16:20)   письмо автору
 
   для: cheops   (02.03.2007 в 12:46)
 


$cell_count = 4;//количество ячеек в одном ряду...
$result = mysql_query("SELECT * FROM ....");
echo "<table width=100%>"; 
echo "<tr>";
for{$i = 0; $i < mysql_mum_rows($result);$i++)
  {
  $n = $i + 1;
  $row = mysql_fetch_array($result);
  echo "<td>".$row["some_fiield_name"]."</td>";
  if (ceil($cell_count%$n) == 0)
    echo "</tr><tr>";
  } 
echo "</table>"; 


Так вот, если mysql_mum_rows($result) веонул 7 строк, а $cell_count = 3, то последняя строка таблицы будет содержать 1 ячейку и будет она слева.... Это во первых некрасиво, во вторых валидаторы матерятся. Немогу сделать так чтобы первая строка таблицы была из 1 ячейки, т.е. при выводе таблицы скрипт учитывал бы общее количечтво ячеек...

   
 
 автор: cheops   (02.03.2007 в 18:42)   письмо автору
 
   для: kukuikar   (02.03.2007 в 16:20)
 

А вы вычисляйте количество строк в таблице и формируйте таблицу примерно так
<?php
    
// Количество строк таблицы
    
$total = (int)(mysql_num_rows($tbl)/$row_count);
    if(
mysql_num_rows($tbl)%$row_count$total++;
    
// Выводим HTML-таблицу
    
echo "<table border=1 cellpadding=4>"
    for(
$i 0$i $total$i++)
    {
      
// Выводим ряд
      
echo "<tr>";
      for(
$j 0$j $row_count$j++)
      {
        
// Выводим ячейку
        
echo "<td>".@mysql_result($tbl$j $i*$total)."&nbsp;</td>";
      }
      echo 
"</tr>";
    }
    echo 
"</table>"
?>

PS Если столбцов много, то скрипт следует переисать без использования mysql_result(). $tbl - здесь дескриптор результирующей таблицы, которую возвращает mysql_query().

   
Rambler's Top100
вверх

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