Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]problem z porównaniem i pobraniem z bazy
pablo_83
post
Post #1





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

Ostrzeżenie: (0%)
-----


witam,
mam problem z porównaniem i zwróceniem rekordów z bazy. Mam formularz który wypełnia użytkownik wpisuje Markę i rocznik sprawdza czy dane auto istnieje w bazie i ma zwrócić jego szczegóły. Sprawdzenie odbywa się, tylko mam gdzieś błąd
ponieważ jeśli jest więcej rekordów odpowiadających zapytaniu wyświetla tylko pierwszy pasujący i powtarza go tyle razy ile jest róznych pasujących rekordów. Np w bazie jest 6 Fordów z rocznika 1995 (fiesta '95, fiesta '95, mondeo '95, mondeo '95,mondeo '95, fiesta '95). Po wpisaniu w formularzu Ford 1995 wyświetla tylko pierwszego forda i powtarza go 6 razy. A powinien wyświetlić wszystkie Fordy z rocznika '95 proszę o pomoc. Mam jeszcze pytanie czy można dać takie zapytanie do bazy żeby wyszukać rekord po czterech wartościach (Marka, Model, Rocznik, Pojemność)? Wtedy mogę precyzyjnie sprawdzić czy dane auto istnieje w bazie
  1. <?php
  2. require_once('db_connect.php');
  3. $mail = $_POST['mail'];
  4. $marka = $_POST['marka'];
  5. $model =$_POST['model'];
  6. $rocznik = $_POST['rocznik'];
  7. $pojemnosc = $_POST['pojmenosc'];
  8.  
  9. if (!isset($_POST['check']))
  10. {
  11.  
  12. }
  13. else {
  14. connect_db();
  15. $zapytanie1 = "SELECT Marka, Rocznik FROM Auto_rodzaj WHERE Marka = '$marka' && Rocznik = '$rocznik'";
  16. $wynik1 = mysql_query($zapytanie1);
  17. $ile = mysql_num_rows($wynik1);
  18. if ($ile > 0){
  19.    echo 'takie auto istnieje już w bazie i to są jego szczegóły :<br>';
  20.    
  21.     for($i=0; $i<$ile; $i++)
  22.   {
  23.       $row = mysql_fetch_array($wynik1);
  24.    
  25.    $zapytanie2 = "SELECT * FROM Auto_rodzaj WHERE Rocznik = '$rocznik'";
  26.    $wynik2 = mysql_query($zapytanie2);
  27.    $row = mysql_fetch_array($wynik2);
  28.    
  29.    
  30.    
  31.    echo''.$row['Marka'].'<br>'.$row['Model'].'<br>'.$row['Rocznik'].'<br>'.$row['Pojemnosc'].'<br>'.$row['IdAuta'].'<br>';
  32.    }}
  33.    
  34. else {
  35.        echo 'Takie auto nie istnieje w bazie';
  36. }
  37. }
  38.  
  39. echo '<form action="check.php" method="post">
  40. <input type="text" name="mail">E-mail
  41. <input type="text" name="marka">Marka
  42. <input type="text" name="model">Model
  43. <input type="text" name="rocznik">Rocznik
  44. <input type="text" name="pojemnosc">Pojemność
  45. <input type="submit" name="check" value="Sprawdź">
  46. </form>';
  47. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




daj tak:

  1. <?php
  2. $zapytanie1 = "SELECT * FROM Auto_rodzaj WHERE Marka = '".$marka."' && Rocznik = '".$rocznik."'";
  3. $wynik1 = mysql_query($zapytanie1);
  4. $ile = mysql_num_rows($wynik1);
  5. if ($ile > 0)
  6. {
  7.    echo 'takie auto istnieje już w bazie i to są jego szczegóły :<br>';
  8.    while ($row = mysql_fetch_array($wynik1))
  9.    {
  10.    echo $row['Marka'].'<br>'.
  11.    $row['Model'].'<br>'.
  12.    $row['Rocznik'].'<br>'.
  13.    $row['Pojemnosc'].'<br>'.
  14.    $row['IdAuta'].'<br>';
  15.    }
  16. }
  17. else
  18. {
  19. echo 'Takie auto nie istnieje w bazie';
  20. }
  21. ?>


Cytat
Mam jeszcze pytanie czy można dać takie zapytanie do bazy żeby wyszukać rekord po czterech wartościach (Marka, Model, Rocznik, Pojemność)?


tak można. dodajesz albo AND albo OR do kryteriów wyszukiwania.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 30.09.2025 - 07:13