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 :: C 1-го запроса, 2-е таблицы.

 PHP.SU

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


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

> Без описания
4ik
Отправлено: 02 Января, 2012 - 19:04:40
Post Id


Гость


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


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




Вечер добрый, а точнее С Прошедшим.

Имеется простенький запрос с выводом таблицы:
PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT name, colour, score FROM plr";
  2. $result = $db->query($sql);
  3. echo"<table>
  4. <tr>
  5. <th>name plr</th>
  6. <th>colour plr</th>
  7. <th>score plr</th>
  8. </tr>";
  9.  
  10. while ($list = $db->fetch_array($result2,'assoc')) {
  11. $name=$list["name"];
  12. $colour=$list["colour"];
  13. $score=$list["score"];
  14.  
  15. echo"<tr>
  16. <td>$name</td>
  17. <td>$colour</td>
  18. <td>$score</td>
  19. </tr>";
  20. }
  21. echo"</table>


Вопрос: как использую етот один запрос, вывести перед етой таблицей, еще одну но горизонтальную в два ряда, первый ряд: colour>0, второй ряд: colour>5.

Простите за бред Ниндзя
 
 Top
Саныч
Отправлено: 02 Января, 2012 - 19:44:44
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




1. colour у вас это целое число?
2. в первом ряду должны быть от 0 до 5 или все же от 0 и до конца?

Так сходу мне пока пришла мысль, загнать результат выборки в массив, а потом уже проходиться по нему foreach-ем и тащить что нужно.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
4ik
Отправлено: 03 Января, 2012 - 02:32:01
Post Id


Гость


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


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




Саныч,
Саныч пишет:
colour у вас это целое число?

Да.

Саныч пишет:
в первом ряду должны быть от 0 до 5

Первый ряд - от 1 до 5, второй - от 7 до 11 (число 6 отсутствует).

Ну главное, что бы я верно / понятно изложил суть, а то буду попусту вас напрягать Ниндзя
 
 Top
Саныч
Отправлено: 03 Января, 2012 - 12:51:05
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Ну вот как-то так
PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT name, colour, score FROM plr";
  2. $result = $db->query($sql);
  3. echo '<table><tr><th>1 - 5</th>';
  4. $res = array();
  5. while ($list = $db->fetch_array($result2,'assoc')) {
  6.    echo '<td>'.$list['colour'].'</td>';
  7.    $res[] = $list;
  8.    if ((int) $list['colour'] == 5)
  9.       echo '</tr><tr><th>7 - 11</th>';
  10. }
  11. echo '</tr></table>';
  12. //table 2
  13. echo '<table>
  14. <tr>
  15. <th>name plr</th>
  16. <th>colour plr</th>
  17. <th>score plr</th>
  18. </tr>';
  19. foreach ($res as $v)
  20.    echo '<tr>
  21. <td>'.$v['name'].'</td>
  22. <td>'.$v['colour'].'</td>
  23. <td>'.$v['score'].'</td>
  24. </tr>';
  25. echo '</table>';

(Отредактировано автором: 03 Января, 2012 - 12:51:30)



-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
4ik
Отправлено: 03 Января, 2012 - 21:00:06
Post Id


Гость


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


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




Саныч, оно ! Именно так как я и хотел.
Спасибо !

Только вот не понял как использовать больше одного $list
А именно, загвоздка вот в етом месте

(Отредактировано автором: 03 Января, 2012 - 21:19:07)

 
 Top
Саныч
Отправлено: 03 Января, 2012 - 21:44:26
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




4ik пишет:
А именно, загвоздка вот в етом месте
Это цикл, перебор массива


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
4ik
Отправлено: 04 Января, 2012 - 01:19:50
Post Id


Гость


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


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




Можете тогда привести пример, с двумя запросами, так как я не понимаю как их вывести в второй таблице Ниндзя
 
 Top
Саныч
Отправлено: 04 Января, 2012 - 11:42:22
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




А что тут не понятно-то? В цикле while проходимся по результату запроса. Формируем первую таблицу и копируем результаты в массив (строка 7). Затем проходимся foreach-ем по тому самому массиву и выводим вторую таблицу.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
4ik
Отправлено: 04 Января, 2012 - 15:06:48
Post Id


Гость


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


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




Прочёл - вникнул.

Саныч пишет:
А что тут не понятно-то?

Но я не понимаю, как передать в вторую таблицу больше одного запроса ($list).
Можно пример ?
 
 Top
4ik
Отправлено: 05 Января, 2012 - 09:14:00
Post Id


Гость


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


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




Ну вот к примеру, мне нужно зделать еще один запрос, и вывести его в вторую таблицу:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT name, colour, score FROM plr ORDER BY colour";
  2. $result = $db->query($sql);
  3. echo '<table>
  4. <tr>
  5. <th>1 - 5</th>';
  6.  
  7. $res = array();
  8. while ($list = $db->fetch_array($result,'assoc')) {
  9.  
  10.  
  11. $sql2 = "SELECT score FROM scores WHERE name = '$list[name]'";
  12. $result2 = $db->query($sql2);
  13. $list2 = $db->fetch_array($result2,'assoc');
  14.  
  15.  
  16. echo '<td>'.$list['colour'].' '.$list['name'].' '.$list['score'].' '.$list2['score'].'</td>';
  17. $res[] = $list;
  18.  
  19.  if ((int) $list['colour'] == 5)
  20. echo '</tr><tr>
  21. <th>7 - 11</th>';
  22. }
  23. echo '</tr></table>';
  24.  
  25. //table 2
  26. echo '<table>
  27. <tr>
  28. <th>name plr</th>
  29. <th>colour plr</th>
  30. <th>score plr</th>
  31. <th>score 2</th>
  32. </tr>';
  33. foreach ($res as $v)
  34. foreach ($res2 as $key => $v2)
  35. echo '<tr class=top>
  36. <td>'.$v['name'].'</td>
  37. <td>'.$v['colour'].'</td>
  38. <td>'.$v['score'].'</td>
  39. <td> --- </td>
  40. </tr>';
  41. echo '</table>';


...
 
 Top
LIME
Отправлено: 05 Января, 2012 - 12:30:48
Post Id


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


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


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




ребятки а зачем гимор с массивами?
проще в цикле не выводить таблицу а формировать строку
и 2ою строку тамже для другой таблицы
а после вывести обе в любом порядке
 
 Top
4ik
Отправлено: 05 Января, 2012 - 14:04:26
Post Id


Гость


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


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




А можно пример ?
 
 Top
LIME
Отправлено: 05 Января, 2012 - 14:10:09
Post Id


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


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


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




еслиб я понял что надо написал бы))
переписал ваш первый пример
надеюсь мысль понятна будет
в том же цикле можно формировать вторую строку для второй таблицы
и вывести ее после цикла
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $sql = "SELECT name, colour, score FROM plr";
  3. $result = $db->query($sql);
  4. $str ="<table>
  5. <tr>
  6. <th>name plr</th>
  7. <th>colour plr</th>
  8. <th>score plr</th>
  9. </tr>";
  10.  
  11. while ($list = $db->fetch_array($result2,'assoc')) {
  12. $name=$list["name"];
  13. $colour=$list["colour"];
  14. $score=$list["score"];
  15.  
  16. $str.="<tr>
  17. <td>$name</td>
  18. <td>$colour</td>
  19. <td>$score</td>
  20. </tr>";
  21. }
  22. $str.="</table>";
  23. echo $str;
  24.  
 
 Top
4ik
Отправлено: 05 Января, 2012 - 16:02:39
Post Id


Гость


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


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




LIME, да, спасибо - работает.
Такой вариант для меня будет проще использовать.

(Отредактировано автором: 05 Января, 2012 - 16:41:21)

 
 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