За последние 24 часа нас посетили 19772 программиста и 1656 роботов. Сейчас ищут 1499 программистов ...

Как соединить 4 запроса к 4 разным таблицам бд

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

  1. Feorayler

    Feorayler Новичок

    С нами с:
    1 июн 2016
    Сообщения:
    17
    Симпатии:
    0
    Суть такова: необходимо вывести индикаторы о том, что доступен бонус. Но не получается что-то сделать..
    Я сделал вот так:
    Код (Text):
    1. <?PHP
    2. $db->Query("SELECT * FROM db_bonus_list1 WHERE user = '$uname' LIMIT 1");
    3. $db->Query("SELECT * FROM db_bonus_list12 WHERE user = '$uname' LIMIT 1");
    4. $db->Query("SELECT * FROM db_bonus_list WHERE user = '$uname' LIMIT 1");
    5. $db->Query("SELECT * FROM db_nak_bonus WHERE user = '$uname' LIMIT 1");
    6. ?>
    7. <?PHP
    8. }
    9. }else echo "
    10.  
    11. <span class='flr'>
    12. <img src='/путь к картинке' width='19' height='19' alt=''>
    13. </span>"
    14. ;?>
    Не сработали индикаторы(.
    А хотелось очень, чтобы сработал только 1 индикатор - в зависимости от того какие бонусы доступны.
    Затем решил пойти другим путем и прописать для каждого индикатора отдельно:
    Код (Text):
    1. <?PHP
    2. $db->Query("SELECT * FROM db_bonus_list1 WHERE user = '$uname' LIMIT 1");
    3. if($db->NumRows() > 0){
    4. while($data_bonus = $db->FetchArray()){
    5. ?>
    6. <?PHP
    7. }
    8. }else echo "
    9.  
    10. <span class='flr'>
    11. <img src='путь к картинке' width='19' height='19' alt=''>
    12. </span>"
    13. ;?>
    14. <?PHP
    15. $db->Query("SELECT * FROM db_bonus_list12 WHERE user = '$uname' LIMIT 1");
    16. if($db->NumRows() > 0){
    17. while($data_bonus = $db->FetchArray()){
    18. ?>
    19. <?PHP
    20. }
    21. }else echo "
    22.  
    23. <span class='flr'>
    24. <img src='путь к картинке' width='19' height='19' alt=''>
    25. </span>"
    26. ;?>
    27. <?PHP
    28. $db->Query("SELECT * FROM db_bonus_list WHERE user = '$uname' LIMIT 1");
    29. if($db->NumRows() > 0){
    30. while($data_bonus = $db->FetchArray()){
    31. ?>
    32. <?PHP
    33. }
    34. }else echo "
    35.  
    36. <span class='flr'>
    37. <img src='путь к картинке' width='19' height='19' alt=''>
    38. </span>"
    39. ;?>
    40. <?PHP
    41. $db->Query("SELECT * FROM db_nak_bonus WHERE user = '$uname' LIMIT 1");
    42. if($db->NumRows() > 0){
    43. while($data_bonus = $db->FetchArray()){
    44. ?>
    45. <?PHP
    46. }
    47. }else echo "
    48.  
    49. <span class='flr'>
    50. <img src='путь к картинке' width='19' height='19' alt=''>
    51. </span>"
    52. ;?>
    В итоге оповещение о бонусах работает, но выдает все 4 индикатора в ряд. А хочется - только 1.
    То есть если например доступны для получения бонусы 1,2,3 - то горит только 1 индикатор, а если доступен только 1 бонус - то все равно горит индикатор.
    Что я сделал не правильно? подскажите плиз)
     
  2. Feorayler

    Feorayler Новичок

    С нами с:
    1 июн 2016
    Сообщения:
    17
    Симпатии:
    0
    проблема решена, путем присвоения переменных. А точнее так:
    Код (Text):
    1. <?PHP
    2. $bonus1 = $db->Query("SELECT * FROM db_bonus_list1 WHERE user = '$uname' LIMIT 1");
    3. $bonus2 = $db->Query("SELECT * FROM db_bonus_list12 WHERE user = '$uname' LIMIT 1");
    4. $bonus3 = $db->Query("SELECT * FROM db_bonus_list WHERE user = '$uname' LIMIT 1");
    5. $bonus4 = $db->Query("SELECT * FROM db_nak_bonus WHERE user = '$uname' LIMIT 1");
    6. $bonus1 = $data_bonus;
    7. $bonus2 = $data_bonus;
    8. $bonus3 = $data_bonus;
    9. $bonus4 = $data_bonus;
    10. if($db->NumRows() > 0){
    11. while($data_bonus = $db->FetchArray()){
    12. ?>
    13. <?PHP
    14. }
    15. }else echo "
    16.  
    17. <span class='flr'>
    18. <img src='путь к картинке' width='19' height='19' alt=''>
    19. </span>"
    20. ;?>
     
  3. Feorayler

    Feorayler Новичок

    С нами с:
    1 июн 2016
    Сообщения:
    17
    Симпатии:
    0
    тоже неправильный вариант( срабатывает, но только последний бонус...
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Feorayler а что за сайт, где посмотреть? Чтобы понять получше задачу