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

Форум MySQL

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

 

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

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

тема: Почему массив mysql_fetch_array выводит некорректно
 
 автор: dmtrfoxerr   (18.02.2008 в 00:31)   письмо автору
 
 

Вот мой код
вывода мз базы:

<?  
  $query 
"SELECT  id_model, model FROM tbl_model WHERE id_marka=".$_GET['id_marka'];  
  
$cat=mysql_query($query);  
  if(!
$cat) exit ("Ошибка ".mysql_error());  
   
   
$rows=4;  
if(
mysql_num_rows($cat))  
 {  
     
$num=intval(mysql_num_rows($cat)/$rows);  

    if(
mysql_num_rows($cat))  
     
$num++ ;  
     echo 
"<table>";  

    for (
$i=0$i<$num$i++)  
      {      
              
          echo 
"<tr>";  
          for (
$j=0$j<$rows$j++)  
           {  
              
$model mysql_fetch_array($cat); 
              
$model[]=@mysql_result($cat,$j*$num+$i);  
                
         echo 
"<td><a href=grade.php?id_model=".$model['id_model']."&id_marka=".$_GET['id_marka'].">".$model['model']."</a>&nbsp;&nbsp;&nbsp;</td>";  

         }  
         echo 
"</tr>";  

    }  

     echo 
"</table>";  
 }


не могу понять почему выводится в виде
1 2 10
6 3 11
7 4 12
... ...
9 5

а хотелось бы нормальный вертикальный вывод....

   
 
 автор: cheops   (18.02.2008 в 13:26)   письмо автору
 
   для: dmtrfoxerr   (18.02.2008 в 00:31)
 

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

   
 
 автор: dmtrfoxerr   (22.02.2008 в 09:27)   письмо автору
 
   для: cheops   (18.02.2008 в 13:26)
 

Вертикальный вывод как описан в Вашей книге....
т.е.
данные сортируются сверху вниз ... как только достигается определенное количество строк начинается новый столбец... и тд.
в моем случае :
1 | 12 | 22
2 | 13 | ....
3 | 14 | 30
4 | .... |
... | 20 |
11 | 21 |

   
 
 автор: cheops   (22.02.2008 в 13:01)   письмо автору
 
   для: dmtrfoxerr   (22.02.2008 в 09:27)
 

Сначала следует поместить данные в массив, а лишь потом выводить данные в цикле.

   
 
 автор: dmtrfoxerr   (22.02.2008 в 14:19)   письмо автору
 
   для: cheops   (22.02.2008 в 13:01)
 

поместил данные в массив перед циклом ... но данные выводятся все равно не так как положенно...
уж ткните мне пальцем куда правельно .... -))

   
 
 автор: dmtrfoxerr   (23.02.2008 в 13:36)   письмо автору
 
   для: cheops   (22.02.2008 в 13:01)
 

Все равно спсок выводиться не корректно...

$query = "SELECT  id_model, model FROM tbl_model WHERE id_marka=".$_GET['id_marka'];
  $cat=mysql_query($query);
  if(!$cat) exit ("Ошибка ".mysql_error());
    $rows=4;

 if(mysql_num_rows($cat))
 {
     $num=(int)(mysql_num_rows($cat)/$rows);
    if(mysql_num_rows($cat))
    

     $num++ ;
     echo "<table>";
while  ($model = mysql_fetch_assoc($cat))
   {

    for ($i=0; $i<$num; $i++)
      {
          echo "<tr>";
          for ($j=0; $j<$rows; $j++)
           {

            $model[]=@mysql_result($cat,$j*$num+$i);
          
         echo "<td><a href=generation.php?id_model=".$model['id_model']."&id_marka=".$_GET['id_marka'].">".$model['model']."</a>&nbsp;</td>\n";

         }

         echo "</tr>\n";
    }
    }
     echo "</table>";
 }


Помогите найти ошибку .... я уже все перепробывал ....
Заранее благодарен...

   
 
 автор: dmtrfoxerr   (27.02.2008 в 00:55)   письмо автору
 
   для: cheops   (22.02.2008 в 13:01)
 

Уважаемый cheops ну помогите ПЛЗ ... я уже все (наверное) перепробывал...

   
 
 автор: ONYX   (27.02.2008 в 09:42)
 
   для: dmtrfoxerr   (27.02.2008 в 00:55)
 

Я думаю тут просто нужно сделать обычную сортировку
$query = \"SELECT id_model, model FROM tbl_model WHERE id_marka=\".$_GET[\'id_marka\'].\" order by model\";

   
 
 автор: dmtrfoxerr   (27.02.2008 в 22:49)   письмо автору
 
   для: ONYX   (27.02.2008 в 09:42)
 

Инфа в базе и так по алфавиту идет.....
Просто при выводе массива все путается .....

   
 
 автор: Thrasher   (28.02.2008 в 10:28)   письмо автору
 
   для: dmtrfoxerr   (27.02.2008 в 22:49)
 

В базе инфа идет не по алфавиту, а как серверу удобнее ее хранить.
Сортировать надо при выводе.

   
Rambler's Top100
вверх

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