За последние 24 часа нас посетили 55435 программистов и 1795 роботов. Сейчас ищут 803 программиста ...

Как вывести все записи с 2х таблиц mysql

Тема в разделе "PHP для новичков", создана пользователем Khaybulla, 21 дек 2016.

  1. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Особо не чего не поменялось теперь выходит 1я запись 1й таблицы бесконечно
     
  2. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    PHP:
    1. <?
    2.  
    3. function zapros($table) {
    4.     $var = mysql_query("SELECT * FROM $table");
    5.     $result = mysql_fetch_assoc($var);
    6.  
    7.     while ($list = $result) {
    8.         if (mysql_num_rows($result) == 0) {
    9.             echo "Список пуст";
    10.         }
    11.         ?>
    12.             <span class=""><?php echo $list["title"] ?></span>
    13. <?
    14.     }
    15.    
    16. }
    17. zapros ("table1");
    18. zapros ("table2");
    19. ?>
    2 минуты времени убил ((
    --- Добавлено ---
    то что он затирает $result я вижу - поэтому использовал $result2
     
    Khaybulla нравится это.
  3. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Так же бесконечно выводит 1ю запись 1й таблицы
     
  4. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    мозг на работе закипел - не увидел
    минуту
     
    Khaybulla нравится это.
  5. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Что, прям выводит только 1 строку на экран?
     
    Khaybulla нравится это.
  6. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    PHP:
    1. <?
    2. function zapros($table) {
    3.      $result = mysql_query("SELECT * FROM $table");
    4.    
    5.     while ($list = while($list = mysql_fetch_array( $result)) {
    6.         if (mysql_num_rows($result) == 0) {
    7.             echo "Список пуст";
    8.         }
    9.         ?>
    10.             <span class=""><?php echo $list["title"] ?></span>
    11. <?
    12.     }
    13. }
    14. zapros ("table1");
    15. zapros ("table2");
    16. ?>
    исправился =)
     
    Khaybulla нравится это.
  7. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Неужели не кто не выводил рандомно записи с 2х таблиц что бы показать пример нор
    Ошибка: Parse error: syntax error, unexpected T_WHILE
     
  8. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    а простите - вы сами можете откорректировать мою идею ? подправить скобочки .. кавычечки .. подставить какието переменные которые Вам надо
    я пишу ( да как и многие ) прямо тут ... без какой либо подсветки кода - без возможности запустить и оттестировать скрипт - особенно когда речь идет о базах данных -

    если вопрос - в том что я забыл скопировать Ваш order by rand ()

    ну так скопируйте и вставьте вашу сортировку в запрос в чем пробема ?
    --- Добавлено ---
    сами же видите что я в
    while($list=while($list=mysql_fetch_array($result)){
    строке описался - ну поправьте на
    while($list=mysql_fetch_array($result)){
    --- Добавлено ---
     
    Khaybulla и denis01 нравится это.
  9. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Если бы код был рабочий я бы подправил, но в данной ситуации я все это уже испробовал и как только не менял все тот же результат!
    Или выходит 1я запись 1й таблицы бесконечно или 1я запись 2й таблицы бесконечно!
    --- Добавлено ---
    Неужели не кто не выводил рандомно записи с 2х таблиц что бы показать пример нормального кода...
     
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    PHP:
    1. $arr = array(1,2,3,4);
    2. $arr1 = array(5,6,7,8);
    3. $arr = array_merge($arr, $arr1);
    4. shuffle($arr);
    5. var_dump($arr);
    С числовыми ключами так. С строковыми array_merge() работает иначе. Можно не сливая в отдельности перемешать их и выводить.
     
    Khaybulla нравится это.
  11. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Приношу свои извинения код работает отлично это у меня в коде просто мешало одно другому из-за этого и не работало! Спасибо огромное!

    И вам спасибо! Направили меня в нужном направлении, сейчас работает как надо.
    Извиняюсь ещё раз!
     
  12. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    народ расслабьтесь - на пыхе такого никогда не сделает
    обратите внимание что таблицы у него перемешаны ..

    в пыхе - перемешать таблицы между собой никогда не получится ( ну или все грузить в массив и перемешивать )
    это можно сделать только на стороне скуэля вот так

    http://sqlfiddle.com/#!9/e4de9/3
    исходя из этого ПЕРЕПИСЫВАЮ и ДЕЛАЮ ВАШУ хотелку

    опять же говорю - на коленке и без тестов

    сразу предупреждаю СО * вместо названия столбцов работать не будет НИКОГДА!
    если у вас и названия столбцов разные в таблицах и количество тогда приводите их к общему знаменателю

    волшебным словом AS таблицу можно переименовать например data as "dd1"
    вот такой махинацией - можно вставить недостаюший (ие) столбцы
    '' as "dd2"
    поэтому КОД ЗАПРОСА я не смогу сделать за Вас никогда - я тупо не знаю вводных названий столбцов


    я заметил что выводится только 1 столбец ( title ) - если это так то вот ваш код

    PHP:
    1.  
    2. <?php
    3. $result = mysql_query("select * from
    4. (select title  from table1
    5. union
    6. select title  from table2) as tbl1
    7. order by rand();");
    8.  while($list = mysql_fetch_array( $result)) {
    9.         if (mysql_num_rows($result) == 0) {
    10.             echo "Список пуст";
    11.         }
    12.      
    13.          echo   "<span class=\"\" >".$list["title"]."</span>";
    14.  
    15.     }

    если же как я сказал выше у вас не 1 столбец то вот

    PHP:
    1.  
    2. <?php
    3. $result = mysql_query("
    4. select * from
    5. (select data as "dd1", '' as "dd2"  from example
    6. union
    7. select data1 as "dd1", data2 as "dd2"  from example1) as tbl1
    8. order by rand();
    9. ");
    10.  while($list = mysql_fetch_array( $result)) {
    11.         if (mysql_num_rows($result) == 0) {
    12.             echo "Список пуст";
    13.         }
    14.      
    15.          echo   "<span class=\"\" >".$list["title"]."</span>";
    16.  
    17.     }
     
    Khaybulla нравится это.
  13. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Спасибо теперь точно работает как надо!)
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    примеры в документации всегда смотри, и будет понятно.
     
  15. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    не всегда.... - посмотри мой топик про мультикур
    https://php.ru/forum/threads/multi-curl.61377/
    пример из документации вешает пыху -)
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    и часто такое попадается?
     
  17. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    первый раз
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну тогда наверное хуже не будет смотреть примеры в документации :D
     
  19. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    PHP:
    1. SELECT db_a.referer, db_a.referer_id, db_b.from_referals FROM db_a, db_b WHERE db_a.id = db_b.id AND db_a.id = 1"
    При условии, что в первой таблице и во второй id равны.