За последние 24 часа нас посетили 21732 программиста и 1020 роботов. Сейчас ищут 647 программистов ...

поиск по трём объединенным таблицам совпадающих данных.

Тема в разделе "Сделайте за меня", создана пользователем Denis777, 16 апр 2019.

  1. Denis777

    Denis777 Новичок

    С нами с:
    16 апр 2019
    Сообщения:
    1
    Симпатии:
    0
    Помогите Пожалуйста)))!!Нужно что-бы таблица могла искать по таблице klient данные об этом клиенте в других таблицах(customer_account, vklad)
     

    Вложения:

  2. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Это то что в файлике, подожду более опытних людей @Valick ато отсебятину опят понесу =)
    PHP:
    1. $servername = "localhost";
    2. $username = "root";
    3. $password = "";
    4. $dbname = "bank";
    5.     $dbh = mysql_connect($servername, $username, $password, $dbname);
    6. mysql_select_db($dbname) or die("Не могу");
    7. $N = $_POST['name'];
    8. $S = $_POST['adress'];
    9. $A = $_POST['seria'];
    10. $U = $_POST['number'];
    11. $T = $_POST['telephone'];
    12. $name  = mysql_query("SELECT * FROM klient WHERE ФИО");
    13. $adress  = mysql_query("SELECT * FROM klient WHERE Адрес = ('$S')");
    14. $serial  = mysql_query("SELECT * FROM klient WHERE Серия_паспорта = ('$A')");
    15. $number = mysql_query("SELECT * FROM klient WHERE Номер_паспота = ('$U')");
    16. $telephone = mysql_query("SELECT * FROM klient WHERE Телефон = ('$T')");
    17.  
    18.  
    19. $tabl1 =  mysql_query("SELECT ФИО, Код_клиента FROM klient");//таблица 1 klient
    20. $tabl2 =  mysql_query("SELECT Наименование, Срок_хранения, Ставка_годовых FROM vklad"); //таблица 2 vklad
    21. $tabl3 =  mysql_query("SELECT Дата_открытия_счета, Дата_закрытия_счета, Сумма_вложения FROM customer_account"); //таблица 3 customer_account"
    22.  
    23.  
    24. $yourArray = array();
    25.  
    26. //klient
    27.  
    28.         $index = 0;
    29. while($roc = mysql_fetch_assoc($tabl1))
    30. {
    31.      $yourArray[$index] = $roc;
    32.      $index++;
    33. }
    34.  
    35. echo $roc [ФИО][Код_клиента][klient];
    36.  
    37. //vklad
    38.  
    39.         $index = 0;
    40.  
    41. while($ros = mysql_fetch_assoc($tabl2))
    42. {
    43.      $yourArray[$index] = $ros;
    44.      $index++;
    45. }
    46. echo $ros [Наименовани][Срок_хранения][Ставка_годовых][vklad];
    47.  
    48.  
    49. //customer_account
    50.  
    51.         $index = 0;
    52. while($row = mysql_fetch_assoc($tabl3))
    53. {
    54.      $yourArray[$index] = $row;
    55.      $index++;
    56. }
    57. echo $row [Дата_открытия_счета][Дата_закрытия_счета][Сумма_вложения][customer_account];
    58.  
    59.  
    60.  
    61.  
    62.  
    63. while ($line  =  mysql_fetch_row($name))
    64. {
    65. echo "<center><table bgcolor=white border=12 cellspacing=2 cellpadding=5 width=70%><tr><td>Код клиента:ФИО: $line[1]. </td><td> Серия паспорта: $line[2]. </td><td> Номер паспорта: $line[3]. </td><td> Адрес: $line[4]. </td><td> Телефон: $line[5].</td>";
    66. }
    67. while ($line  =  mysql_fetch_row($adress))
    68. {
    69. echo "<center><table bgcolor=white border=12 cellspacing=2 cellpadding=5 width=70%><tr><td>Код клиента:ФИО: $line[1]. </td><td> Серия паспорта: $line[2]. </td><td> Номер паспорта: $line[3]. </td><td> Адрес: $line[4]. </td><td> Телефон: $line[5].</td>";
    70. }
    71. while ($line  =  mysql_fetch_row($serial))
    72. {
    73. echo "<center><table bgcolor=white border=12 cellspacing=2 cellpadding=5 width=70%><tr><td>Код клиента:ФИО: $line[1]. </td><td> Серия паспорта: $line[2]. </td><td> Номер паспорта: $line[3]. </td><td> Адрес: $line[4]. </td><td> Телефон: $line[5].</td>";
    74. }
    75. while ($line  =  mysql_fetch_row($number))
    76. {
    77. echo "<center><table bgcolor=white border=12 cellspacing=2 cellpadding=5 width=70%><tr><td>Код клиента:ФИО: $line[1]. </td><td> Серия паспорта: $line[2]. </td><td> Номер паспорта: $line[3]. </td><td> Адрес: $line[4]. </td><td> Телефон: $line[5].</td>";
    78. }
    79. while ($line  =  mysql_fetch_row($telephone))
    80. {
    81. echo "<center><table bgcolor=white border=12 cellspacing=2 cellpadding=5 width=70%><tr><td>Код клиента:ФИО: $line[1]. </td><td> Серия паспорта: $line[2]. </td><td> Номер паспорта: $line[3]. </td><td> Адрес: $line[4]. </td><td> Телефон: $line[5].</td>";
    82. }
     
  3. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    iner join объединить все в один запрос.
    вот это все в одном запросе нужно делать.
    да код ужасен, и еще mysql_query уже устарело и удаленно, PDO mysqli использовать нужно)
     
  4. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Так никто человеку и не помог
    @Denis777 вот смотри, у тебя есть 3 таблицы

    klient :
    Код (Text):
    1.  
    2. id | ФИО | Адрес | Серия_паспорта | Номер_паспота | Телефон
    vklad:
    Код (Text):
    1.  
    2. id | Наименование | Срок_хранения | Ставка_годовых | id_user
    customer_account:
    Код (Text):
    1.  
    2. id | Дата_открытия_счета | Дата_закрытия_счета | Сумма_вложения | id_user
    Обрати внимание у vklad и customer_account должен быть столбец с id из таблицы klient. В данном случае мы назвали ее id_user.

    Допустим нам надо получить данные по одному клиенту. Пусть будет Василий с таким id : 12345.

    Итак чтобы получить все данные по нему, пишем:

    Код (Text):
    1.  
    2. SELECT KL.ФИО AS fio,
    3.        KL.Адрес as adres,
    4.        KL.Серия_паспорта as s_pasport,
    5.        KL.Номер_паспота as n_pasport,
    6.        KL.Телефон as telephon,
    7.        VK.Наименование as name
    8.        VK.Срок_хранения as time
    9.        VK.Ставка_годовых as rate
    10.        CA.Дата_открытия_счета as open_date
    11.        CA.Дата_закрытия_счета as close_date
    12.        CA.Сумма_вложения as summ
    13. FROM klient as KL
    14. LEFT JOIN vklad as  VK ON VK.id = KL.id
    15. LEFT JOIN customer_account as CA ON CA.id = KL.id
    16. WHERE KL.id = '12345'
    Вот такой вот запрос, выведет тебе все данные. И запихиваем его в php:
    PHP:
    1. $mysqli = new mysqli($servername,$username,$password,$dbname);
    2. $sql = "
    3. SELECT KL.ФИО AS fio,
    4.       KL.Адрес as adres,
    5.       KL.Серия_паспорта as s_pasport,
    6.       KL.Номер_паспота as n_pasport,
    7.       KL.Телефон as telephon,
    8.       VK.Наименование as name
    9.       VK.Срок_хранения as time
    10.       VK.Ставка_годовых as rate
    11.       CA.Дата_открытия_счета as open_date
    12.       CA.Дата_закрытия_счета as close_date
    13.       CA.Сумма_вложения as summ
    14. FROM klient as KL
    15. LEFT JOIN vklad as  VK ON VK.id = KL.id
    16. LEFT JOIN customer_account as CA ON CA.id = KL.id
    17. WHERE KL.id = '12345'
    18. ";
    19. $mysqli->real_query($sql);
    20. $res = $mysqli->use_result();
    21.  
    22. while ($row = $res->fetch_assoc()) {
    23.    // и вперед
    24. }
     
  5. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Только поправка, там нужно вместо VK.id и CA.id использовать VK.id_user и CA.id_user