Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php, MySql] problem z polaczeniem kilku tabel
Forum PHP.pl > Forum > Przedszkole
af2p
Witam
Chciałem zrobić bazę danych dla mojego sklepu w której użytkownik mógłby się zarejestrować a póżniej zamówić towar na dowóz do domu. I tak mam tabele:

UZYTKOWNIK:
-id_uzytkownik
-imie
-nazwisko
-ulica
-nr_domu
-nr_mieszkania
-nr_tel

ZAMOWIENIA
-id_produkt
-produkt
-ilosc
-data


pole produkt w tabeli ZAMÓWIENIA musiałoby korzystać z tabeli PRODUKTY w celu wyboru asortymentu do zamówienia. Tabela PRODUKTY sklada się z :

PRODUKTY
-id_nazwa
-nazwa
-cena

Proszę o pomoc w połączeniu tego razem ja sobie nie daje rady przerasta mnie to nieco ;/
Pozdrawiam
kszychu
POkaż co tam zmajstrowałeś, to pomożemy. A w ogóle to podpowiem Ci, że trzeba tu złączenia zastosować.
af2p
Cytat(kszychu @ 2006-03-24 15:00:38)
POkaż co tam zmajstrowałeś, to pomożemy. A w ogóle to podpowiem Ci, że trzeba tu złączenia zastosować.

tak tak wiem ze zlaczenia ale sie gubie w relacjach i nic mi nie wychodzi juz od 3 dni. a nie bardzo wiem co mam pokazac bo stronki jako takiej nie mam jeszcze narazie mecze kod pozniej jakos to dobiorę. Mam te tabele i glowie sie jak je polaczyc. Nawet próbuję w DBDesigner cos meczyc i tak nie idzie smile.gif
kszychu
POdpowiem ci uniwersalną składnię:
  1. SELECT t1.p1, t2.p2
  2. FROM t1,
  3. t2 WHERE t1.indeks1 = t2.indeks2
af2p
połączyłem chyba jakoś te tabele. Jednak mam problem kolejny, pisze tutaj coby nie zakładać nowego wątku. Chcę przeprowadzić rejestrację. Kod jest taki :

  1. <?php # Listing 12.6 - register.php
  2. // Skrypt pozwala na zarejestrowanie się na stronie.
  3.  
  4. // Dołączenie pliku konfiguracyjnego obsługującego błędy, itp.
  5. require_once ('includes/config.inc'); 
  6.  
  7. // Określenie tytułu strony i dołączenie nagłówka HTML.
  8. $page_title = 'Rejestracja';
  9. include ('includes/header.html');
  10.  
  11. if (isset($_POST['submit'])) { // Obsługa formularza.
  12.  
  13. require_once ('mysql_connect.php'); // Połączenie z bazą danych.
  14.  
  15. // Sprawdzenie imienia.
  16. if (eregi ("^[[:alpha:].' -]{2,15}$", stripslashes(trim($_POST['first_name'])))) {
  17. $fn = escape_data($_POST['first_name']);
  18. } else {
  19. $fn = FALSE;
  20. echo '<p><font color="red" size="+1">Proszę podać imię!</font></p>';
  21. }
  22.  
  23. // Sprawdzenie nazwiska.
  24. if (eregi ("^[[:alpha:].' -]{2,30}$", stripslashes(trim($_POST['last_name'])))) {
  25. $ln = escape_data($_POST['last_name']);
  26. } else {
  27. $ln = FALSE;
  28. echo '<p><font color="red" size="+1">Proszę podać nazwisko!</font></p>';
  29. }
  30.  
  31. // Sprawdzenie ulicy.
  32. if (eregi ("^[[:alpha:].' -]{2,15}$", stripslashes(trim($_POST['ulica'])))) {
  33. $g = escape_data($_POST['ulica']);
  34. } else {
  35. $g = FALSE;
  36. echo '<p><font color="red" size="+1">Proszę podać ulice!</font></p>';
  37. }
  38.  
  39. // Sprawdzenie adresu poczty elektronicznej.
  40. if (eregi ("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", stripslashes(trim($_POST['email'])))) {
  41. $e = escape_data($_POST['email']);
  42. } else {
  43. $e = FALSE;
  44. echo '<p><font color="red" size="+1">Proszę podać adres poczty elektronicznej!</font></p>';
  45. }
  46.  
  47. // Sprawdzenie nazwy użytkownika.
  48. if (eregi ("^[[:alnum:]_]{4,20}$", stripslashes(trim($_POST['username'])))) {
  49. $u = escape_data($_POST['username']);
  50. } else {
  51. $u = FALSE;
  52. echo '<p><font color="red" size="+1">Proszę podać poprawną nazwę konta!</font></p>';
  53. }
  54.  
  55. // Sprawdzenie hasła i jego potwierdzenia.
  56. if (eregi ("^[[:alnum:]]{4,20}$", stripslashes(trim($_POST['password1'])))) {
  57. if ($_POST['password1'] == $_POST['password2']) {
  58. $p = escape_data($_POST['password1']);
  59. } else {
  60. $p = FALSE;
  61. echo '<p><font color="red" size="+1">Wprowadzone hasło nie jest zgodne z jego potwierdzeniem!</font></p>';
  62. }
  63. } else {
  64. $p = FALSE;
  65. echo '<p><font color="red" size="+1">Proszę podać poprawne hasło!</font></p>';
  66. }
  67.  
  68. if ($fn && $ln && $g && $e && $u && $p) { // Jeśli nie wystąpiły żadne problemy.
  69.  
  70. // Sprawdza czy konto użytkownika istnieje.
  71. $query = "SELECT customer_id FROM customers WHERE username='$u'";
  72. $result = @mysql_query ($query);
  73.  
  74. if (mysql_num_rows($result) == 0) { // Jeśli istnieje.
  75.  
  76. // Dodawanie użytkownika.
  77. $query = "INSERT INTO customers (username, first_name, ulica, last_name, email, password, registration_date) VALUES ('$u', '$fn', '$g', '$ln', '$e', PASSWORD('$p'), NOW() )";
  78. $result = @mysql_query ($query); // Wykonanie zapytania.
  79.  
  80. if ($result) { // Jeśli nie wystąpiły żadne problemy.
  81.  
  82. // W razie potrzeby zostanie wysłana wiadomość poczty elektronicznej.
  83. echo '<h3>Dziękujemy za przeprowadzenie rejestracji!</h3>';
  84. include ('includes/footer.html'); // Dołączenie stopki HTML.
  85. exit();
  86.  
  87. } else { // Jeśli wystąpiły problemy.
  88. // W razie konieczności zapisuje w dzienniku błędów komunikat.
  89. echo '<p><font color="red" size="+1">Ze względu na wystąpienie błędu systemowego rejestracja nie była możliwa. Prz
    epraszamy za wszelkie niedogodności.</font></p>'
    ; 
  90. }
  91.  
  92. } else { // Takie konto użytkownika już istnieje.
  93. echo '<p><font color="red" size="+1">Podana nazwa konta już istnieje.</font></p>'; 
  94. }
  95.  
  96. mysql_close(); // Zamknięcie połączenia z bazą danych.
  97.  
  98. } else { // Jeśli jeden z testów danych się nie powiedzie.
  99. echo '<p><font color="red" size="+1">Proszę spróbować ponownie.</font></p>';
  100. }
  101.  
  102. } // Koniec głównej instrukcji warunkowej.
  103. ?>
  104.  
  105. <h1>Rejestracja</h1>
  106. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  107. <fieldset>
  108.  
  109. <p><b>Imię:</b> <input type="text" name="first_name" size="15" maxlength="15" value="<?php if (isset($_POST['first_name'])) echo $_POST['first_name']; ?>" /></p>
  110.  
  111. <p><b>Nazwisko:</b> <input type="text" name="last_name" size="30" maxlength="30" value="<?php if (isset($_POST['last_name'])) echo $_POST['last_name']; ?>" /></p>
  112.  
  113. <p><b>Ulica:</b> <input type="text" name="ulica" size="30" maxlength="30" value="<?php if (isset($_POST['ulica'])) echo $_POST['ulica']; ?>" /></p>
  114.  
  115. <p><b>Adres poczty elektronicznej:</b> <input type="text" name="email" size="40" maxlength="40" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /> </p>
  116.  
  117. <p><b>Konto użytkownika:</b> <input type="text" name="username" size="10" maxlength="20" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>" /> <small>Dopuszczalne są tylko litery, liczby i znak podkreślenie. Długość nazwy konta
     musi zawierać się w przedziale od 4 do 20 znaków.</small></p>
  118.  
  119. <p><b>Hasło:</b> <input type="password" name="password1" size="20" maxlength="20" /> <small>Dopuszczalne są tylko litery i liczby. Długość hasła musi zawierać się w prze
    dziale od 4 do 20 znaków.</small></p>
  120.  
  121. <p><b>Potwierdzenie hasła:</b> <input type="password" name="password2" size="20" maxlength="20" /></p>
  122. </fieldset>
  123.  
  124. <div align="center"><input type="submit" name="submit" value="Zarejestruj" /></div>
  125.  
  126. </form><!-- Koniec formularza -->
  127.  
  128. <?php // Dołączenie stopki HTML.
  129. include ('includes/footer.html');
  130. ?>


No i wyskakuje błąd : Ze względu na wystąpienie błędu systemowego rejestracja nie była możliwa. Przepraszamy za wszelkie niedogodności.

Jak nie ma pola ULICA to wszystko działa, może ktoś rzucić na ten kod okiem i powiedzieć co jest źle? Dzięki z góry
huntercs
wygląda na to że błąd jest w zapytaniu mySQL
dodaj po zapytaniu:
  1. <?php
  2. ?>

i powiedz co wydrukuje na ekran
af2p
Cytat
Unknown column 'email' in 'field list'


Ja nie widze tam błędu mad.gif ale siedze juz 4 godzine i może coś nie tak już ze mną. Aha pola w bazie oczywiście utowrzone smile.gif
huntercs
masz błąd w bazie, nie ma tam pola email może masz coś w podobie typu: e-mail albo mail? jak jesteś pewnien że jest email to daj zrzut skruktury bazy danych
af2p
mam na bank smile.gif

Poddaje się smile.gif
huntercs
dodajesz do customersów a pokazałeś zrzut tabeli users, chyba tu jest błąd:
  1. INSERT
  2. INTO customers
  3. (username, first_name, ulica,....)


ps. nie musisz dawać:
  1. action="<?php echo $_SERVER['PHP_SELF']; ?>"

wystarczy:
  1. action=""

aby wysłać na aktualną strone formularz
af2p
Wiedziałem że to błachostka musi być smile.gif się wpatrywać w ekran przez godzine i tego nie widzieć smile.gif dzięki za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.