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 :: Выводится всего 1 строка с базы данных

 PHP.SU

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


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

> Описание: Выводится всего 1 строка с базы данных
imayday
Отправлено: 13 Февраля, 2019 - 14:56:44
Post Id


Новичок


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


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




Доброго времени суток, господа.
Я новичок в работе с php, поэтому извините за мой глупый вопрос.
Пользуюсь CMS DLE. PHP версии 5.4. Пытаюсь вывести информацию с бд на главную страницу.
Вписываю в main.php код:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $vquery = $db->query( "SELECT * FROM " . PREFIX . "_video_file  ORDER BY user_id ASC LIMIT 0,10" );
  2. while ( $row = $db->get_row($vquery) ) {
  3. $ytquery = $row['info']; //Вытаскиваем с базы данных ссылку на видео
  4. $ytrdatequery = $row['reg_date']; //Вытаскиваем с базы данных дату добавления видео
  5. $ytnamequery = $row['name']; //Вытаскиваем с базы данных название видео
  6. $ytcatquery = $row['user_category']; //Вытаскиваем с базы айди категории
  7. $ytidvideo = $row['user_id']; //Вытаскиваем айди поста с видео
  8.  
  9. preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $row['info'], $out);
  10. $video_id =  $out[1];
  11. }
  12.  
  13.  
  14. $vquery2 = $db->query( "SELECT name FROM " . PREFIX . "_video_category WHERE id=" .$ytcatquery. "" ); //приравниваем базу по айди категории
  15. while ( $row = $db->get_row($vquery2) ){
  16. $ytcatnamequery = $row['name']; //вытаскиваем название категории
  17. }
  18. $vquery2->free ();
  19.  
  20. $db->free ();


Информацию выводит, но почему-то только одну последнюю добавленную запись. А нужно чтобы 5-10 записей из бд.
Заранее благодарен за вашу помощь и уделённое время моей проблему)

(Отредактировано автором: 13 Февраля, 2019 - 16:56:49)

 
 Top
LIME
Отправлено: 13 Февраля, 2019 - 15:20:51
Post Id


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


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


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




потому что ты сначала пробегаешь по результату первого запроса и во второй вставляешь толь последний результат
PHP:
скопировать код в буфер обмена
  1. $ytcatquery = [];
  2. $vquery = $db->query( "SELECT * FROM " . PREFIX . "_video_file" );
  3. while ( $row = $db->get_row($vquery) ) {
  4.     $ytquery = $row['info']; //Вытаскиваем с базы данных ссылку на видео
  5.     $ytrdatequery = $row['reg_date']; //Вытаскиваем с базы данных дату добавления видео
  6.     $ytnamequery = $row['name']; //Вытаскиваем с базы данных название видео
  7.     $ytcatquery[] = '' . $row['user_category']; //Вытаскиваем с базы айди категории
  8.     $ytidvideo = $row['user_id']; //Вытаскиваем айди поста с видео
  9.     preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $row['info'], $out);
  10.     $video_id =  $out[1];
  11. }
  12.  
  13.  
  14.  
  15.  
  16. $vquery2 = $db->query( "SELECT name FROM " . PREFIX . "_video_category WHERE id IN (" .implode(',', $ytcatquery). ")" ); //приравниваем базу по айди категории
  17. while ( $row = $db->get_row($vquery2) ){
  18.     $ytcatnamequery = $row['name']; //вытаскиваем название категории
  19. }
  20. $vquery2->free ();
  21.  
  22. $db->free ();
 
 Top
imayday
Отправлено: 13 Февраля, 2019 - 15:38:12
Post Id


Новичок


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


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




LIME пишет:
потому что ты сначала пробегаешь по результату первого запроса и во второй вставляешь толь последний результат
PHP:
скопировать код в буфер обмена
  1. $ytcatquery = [];
  2. $vquery = $db->query( "SELECT * FROM " . PREFIX . "_video_file" );
  3. while ( $row = $db->get_row($vquery) ) {
  4.     $ytquery = $row['info']; //Вытаскиваем с базы данных ссылку на видео
  5.     $ytrdatequery = $row['reg_date']; //Вытаскиваем с базы данных дату добавления видео
  6.     $ytnamequery = $row['name']; //Вытаскиваем с базы данных название видео
  7.     $ytcatquery[] = '' . $row['user_category']; //Вытаскиваем с базы айди категории
  8.     $ytidvideo = $row['user_id']; //Вытаскиваем айди поста с видео
  9.     preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $row['info'], $out);
  10.     $video_id =  $out[1];
  11. }
  12.  
  13.  
  14.  
  15.  
  16. $vquery2 = $db->query( "SELECT name FROM " . PREFIX . "_video_category WHERE id IN (" .implode(',', $ytcatquery). ")" ); //приравниваем базу по айди категории
  17. while ( $row = $db->get_row($vquery2) ){
  18.     $ytcatnamequery = $row['name']; //вытаскиваем название категории
  19. }
  20. $vquery2->free ();
  21.  
  22. $db->free ();


что-то не помогло. Тем более вообще перестало название категории выводить.

(Отредактировано автором: 13 Февраля, 2019 - 15:39:04)

 
 Top
LIME
Отправлено: 13 Февраля, 2019 - 15:42:01
Post Id


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


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


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




это не рабочий код
набросок
сам допили
навскидку не хватает кавычек
PHP:
скопировать код в буфер обмена
  1. $ytcatquery[] = '"' . $row['user_category'] . '"';

а так же в результат второго запроса сохранится только последний
пожалуй я умою руки
 
 Top
imayday
Отправлено: 13 Февраля, 2019 - 16:28:13
Post Id


Новичок


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


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




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

(Отредактировано автором: 13 Февраля, 2019 - 17:28:20)

 
 Top
imayday
Отправлено: 13 Февраля, 2019 - 18:51:22
Post Id


Новичок


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


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




Переделал код
CODE (htmlphp):
скопировать код в буфер обмена
  1. $vquery = $db->query( "SELECT * FROM " . PREFIX . "_video_file ORDER BY user_id ASC LIMIT 0, 10" );
  2. while ( $row = $db->get_row($vquery) ) {
  3.  
  4. $vquery2 = $db->query( "SELECT name FROM " . PREFIX . "_video_category WHERE id='".$row['user_category']."'" );
  5. while ( $vdrow = $db->get_row($vquery2) ) {
  6. $ytcatnamequery = $vdrow['name'];
  7. }
  8. $vquery2->free ();
  9.  
  10. $ytquery = $row['info']; //Вытаскиваем с базы данных ссылку на видео
  11. $ytrdatequery = $row['reg_date']; //Вытаскиваем с базы данных дату добавления видео
  12. $ytnamequery = $row['name']; //Вытаскиваем с базы данных название видео
  13. $ytcatquery = $row['user_category']; //Вытаскиваем с базы айди категории
  14. $ytidvideo = $row['user_id']; //Вытаскиваем айди поста с видео
  15.  
  16. preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $row['info'], $out);
  17. $video_id =  $out[1];
  18. }
  19. $vquery->free ();
  20.  
  21. $db->free ();


Теперь не вставляю результат во второй запрос, но проблема не решена. Всё равно выводит последнюю строку
 
 Top
Vladimir Kheifets
Отправлено: 14 Февраля, 2019 - 13:02:31
Post Id



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


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




imayday пишет:
Переделал код
CODE (htmlphp):
скопировать код в буфер обмена
  1. $vquery = $db->query( "SELECT * FROM " . PREFIX . "_video_file ORDER BY user_id ASC LIMIT 0, 10" );
  2. while ( $row = $db->get_row($vquery) ) {
  3.  
  4. $vquery2 = $db->query( "SELECT name FROM " . PREFIX . "_video_category WHERE id='".$row['user_category']."'" );
  5. while ( $vdrow = $db->get_row($vquery2) ) {
  6. $ytcatnamequery = $vdrow['name'];
  7. }
  8. $vquery2->free ();
  9.  
  10. $ytquery = $row['info']; //Вытаскиваем с базы данных ссылку на видео
  11. $ytrdatequery = $row['reg_date']; //Вытаскиваем с базы данных дату добавления видео
  12. $ytnamequery = $row['name']; //Вытаскиваем с базы данных название видео
  13. $ytcatquery = $row['user_category']; //Вытаскиваем с базы айди категории
  14. $ytidvideo = $row['user_id']; //Вытаскиваем айди поста с видео
  15.  
  16. preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $row['info'], $out);
  17. $video_id =  $out[1];
  18. }
  19. $vquery->free ();
  20.  
  21. $db->free ();


Теперь не вставляю результат во второй запрос, но проблема не решена. Всё равно выводит последнюю строку


Добрый день!
Не понятно, где выводите последюю строку.
Если в 22 строке коде, то так и должно быть. Если хотите вывести все строки, то нужно записать значения в массивы. Например, так:
PHP:
скопировать код в буфер обмена
  1. $ytquery[] = $row['info']; //Вытаскиваем с базы данных ссылку на видео
  2. $ytrdatequery[]= $row['reg_date']; //Вытаскиваем с базы данных дату добавления видео
  3. $ytnamequery[] = $row['name']; //Вытаскиваем с базы данных название видео
  4. $ytcatquery[] = $row['user_category']; //Вытаскиваем с базы айди категории
  5. $ytidvideo[] = $row['user_id']; //Вытаскиваем айди поста с видео
удачи!

(Отредактировано автором: 15 Февраля, 2019 - 07:21:41)

 
 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