Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Warunkowe wyswietalnie rekordow
Forum PHP.pl > Forum > Przedszkole
wupasek
Witam
mam ogloszenia w bazie, wyswietlaja sie ok, ale wszystkie na raz, a ja chcialbym zeby sie wyswietlaly tylko wybrane kategorie czyli np tylko "sprzedam samochod" albo tylko "kupie czesci"
rodzaj ogloszenia jest zapisywany w bazie jako numer 1,2,3 lub 4 a maja oznaczac odpowiednio: Sprzedam samochod, Kupie samochod, Sprzedam czesci, Kupie czesci
i teraz pytanie, co musze dodac i gdzie zeby

1/ po kliknieciu na stronie na odnosnik show.php?rodzaj=1 wyswietlaly mi sie na stronie tylko ogloszenia kategorii 1 czyli Sprzedam samochod i analogicznie pozostale kategorie po wybraniu ?rodzaj=2, 3 i 4
2/na stronie w tabeli chcialbym zeby wyswietlaly sie nie numery kategorii tylko to co oznaczaja czyli tekst np "Sprzedam samochod"

to kod, przy LIKE w SELECT wstawilem questionmark.gif teraz na potrzebe wklejenia tego tutaj bo wiem, ze jak dam np 1 to wyswietli mi sie Sprzedam samochod, ale w ten sposob show moze pokazac tylko ta jedna kategorie, a ja chcialbym zeby tam zamiast questionmark.gif byla zmienna tylko nie wiem jak tego dokonac :/

prosze o wskazowki albo jakies pelniejsze rozwiazanie, troche kombinowalem ale cos mi nie wychodzi :/
plik show.php
  1. <?
  2. {
  3.  $user = "login";
  4.  $pass = "haslo";
  5.  $database = "typ";
  6.  
  7.  mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  8.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  9.  mysql_query($query);
  10.  
  11. $cnt=0;
  12. $query = "SELECT rodzaj, data, marka, model, opis, rocznik, przebieg, cena, miasto, s
    przedajacy, email, telefon 
  13. FROM ogloszenia_auta WHERE rodzaj LIKE questionmark.gif ORDER BY data DESC";
  14. $result = mysql_query($query) or die('Nie można pobrać rekordów z bazy ');
  15. }
  16.  
  17. if(mysql_num_rows($result) == 0)
  18. {
  19. echo "Nie znaleziono ogłoszeń w tej kategorii.";
  20. } 
  21. else
  22. {
  23. while(list( $rodzaj, $data, $marka, $model, $opis, $rocznik, $przebieg, $cena, $miasto, $sprzedajacy, $email, $telefon) 
  24. = mysql_fetch_array($result))
  25. {
  26.  $cnt++;
  27.  
  28.  echo "
  29. <table width=550 cellpadding=5 bgcolor=#FFFFFF border=1px align=center >
  30. <tr><td width=150 class=ogl>
  31.  Rodzaj: </td><td width=400 class=ogl>$rodzaj<br></td></tr>
  32.  
  33. /* tutaj wyswietlalem jeszcze reszte rekordow ale usunalem bo dzialalo dobrze, a 
    nie dotyczy to tematu */
  34.  
  35. </table>";
  36. }  
  37. }
  38.  ?>
Wieviór
Istnieje coś takiego jak warunek WHERE ;]

  1. <?php
  2. $query = "SELECT * FROM tabela WHERE kategoria='".$_GET[rodzaj]."'"
  3. ?>
WebCM
  1. SELECT pola FROM tabela WHERE rodzaj = 1

Jeśli strona jest jednojęzyczna:
  1. <?php
  2. switch($rodzaj)
  3. {
  4. case 1: echo 'Rodzaj 1'; break; //Poczytaj o instrukcji switch
  5. default: echo 'Rodzaj domyślny';
  6. }
  7. ?>

~Wieviór - nie ufaj danym pochodzącym z zewnątrz.
  1. <?php
  2. $mysqli->query('SELECT ... WHERE rodzaj='.(int)$_GET['rodzaj']);
  3. ?>
Wieviór
Słusznie, warto dodać jeszcze sprawdzenie (int) ;]
wupasek
poradzilem sobie sam polowicznie, wiedzialem jak wydobyc za pomoca WHERE ale jedna opcje ale nie jak wydobyc okreslona kategorie z poziomu przegladarki
zrobilem wiec cos takiego jak ponizej:

show.php
  1. <?
  2. echo " <form method='POST' action='show3.php?ogl=$rodzaj_id' ENCTYPE='multipart/form-data'>
  3. <table width=550 align=center>
  4. <tr><td width=400>Wybierz rodzaj ogłoszenia:</td><td>
  5. <select NAME='rodzaj_id' >
  6. <option value='1' >Sprzedam samochód</option>
  7. <option value='2' >Kupię samochód</option>
  8. <option value='3' >Sprzedam części</option>
  9. <option value='4' >Kupię części</option>
  10. </select></td></tr>
  11. <tr><td width=150> </td><td width=400> <INPUT TYPE='submit' VALUE='Wybierz'>
  12. </td></tr></table></form>";
  13.  
  14. if ($_GET['ogl']==$rodzaj_id) 
  15. {
  16.  $user = "login";
  17.  $pass = "pass";
  18.  $database = "typ";
  19.  $rodzaj_id = $_POST['rodzaj_id'];
  20.  
  21.  mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  22.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  23.  mysql_query($query);
  24.  
  25. $cnt=0;
  26. $query = "SELECT rodzaj, data, marka, model, opis, rocznik, przebieg, cena, miasto, s
    przedajacy, email, telefon 
  27. FROM ogloszenia_auta WHERE rodzaj LIKE $rodzaj_id ORDER BY data DESC";
  28. $result = mysql_query($query) or die('');
  29. }
  30.  
  31. if(mysql_num_rows($result) == 0)
  32. {
  33. echo "<center>Nie znaleziono ogłoszeń w tej kategorii.<br><br>
  34. <a href='ogl.html'>Powróć do wyboru ogłoszeń</a></center><br>";
  35. } 
  36.  
  37. else
  38.  
  39. {
  40. while(list( $rodzaj, $data, $marka, $model, $opis, $rocznik, $przebieg, $cena, $miasto, $sprzedajacy, $email, $telefon) 
  41. = mysql_fetch_array($result))
  42. {
  43.  $cnt++;
  44.  
  45. echo "<table width=550 cellpadding=5 bgcolor=#FFFFFF border=1px align=center ><tr>
  46. <td width=100 class=ogl>
  47.  Rodzaj: </td><td width=430 class=ogl>$rodzaj<br></td></tr></table>";
  48. }
  49.  }
  50.  ?>

wchodze sobie na show.php wybieram z okienka select jedna z czterech opcji, klikam wybierz no i mam okreslona kategorie, ale w pasku adresu przegladarki ma "show.php?ogl=" obojetnie ktora kategorie wybiore
a chcialbym zeby bylo "show.php?ogl=1" dla kategorii 1, "show.php?ogl=2" dla drugiej itd
to odnosnie wyboru odpowiedniej kategorii

co do nazw kategorii to uzylem if i elseif trzykrotnie, dziala ok ale czy tak moze zostac? czy moze sie wykrzaczyc jesli tyle elseif do jednej opcji jest??
  1. <? 
  2. if ($rodzaj=1)
  3. {
  4. echo "<td width=150 class=ogl>
  5.  Rodzaj: </td><td width=400 class=ogl>Sprzedam samochód<br></td></tr>";
  6. }
  7. //
  8. elseif ($rodzaj=2)
  9. {
  10. echo "<td width=150 class=ogl>
  11.  Rodzaj: </td><td width=400 class=ogl>Kupię samochód<br></td></tr>";
  12. }
  13. //
  14. elseif ($rodzaj=3)
  15. { 
  16. echo "<td width=150 class=ogl>
  17.  Rodzaj: </td><td width=400 class=ogl>Sprzedam części<br></td></tr>";
  18. }
  19. //
  20. elseif ($rodzaj=4)
  21. { echo "<td width=150 class=ogl>
  22.  Rodzaj: </td><td width=400 class=ogl>Sprzedam części<br></td></tr>";
  23. }?>


i jeszcze jedna kwestia dotyczaca formularza
czy ktos wie czemu wysyla mi formularz mimo ze pola <input> maja parametr required? probowalem i tak jak jest teraz czyli zwyczajnie <Input required i required="required' i wysyla mimo to puste pola

no i chcialbym jeszcze zeby lista <select> wygladala tak ze wyswietla sie na poczatku --wybierz rodzaj-- jako wartosc poczatkowa ale zeby taka wartosc NIE MOGLA bysc wyslana, zeby trzeba bylo wybrac ktoras z pozostalych
  1. <?php
  2. <form method='POST' action='nowy2.php?akcja=dodaj' ENCTYPE='multipart/form-data'>
  3. <table width=550 align=center>
  4. <tr><td width=400>Rodzaj ogłoszenia:</td><td>
  5. <select NAME='rodzaj' >
  6. <option >--wybierz rodzaj--</option>
  7. <option value='1' >Sprzedam samochód</option>
  8. <option value='2' >Kupię samochód</option>
  9. <option value='3' >Sprzedam cześci</option>
  10. <option value='4' >Kupię cześci</option>
  11. </select></td></tr>
  12.  
  13. <tr><td width=150>  Marka: <b>*</b></td><td width=400><INPUT TYPE='text' NAME='marka' required size=30><br></td></tr>
  14. <tr><td width=150>  Model: </td><td width=400><INPUT TYPE='text' NAME='model' size=30><br></td></tr>
  15. <tr><td width=150>  Opis: <b>*</b></td><td width=400><textarea name='opis' rows=8 cols=35 required></textarea><br></td></tr>
  16. <tr><td width=150>  Rocznik: </td><td width=400><INPUT TYPE='text' NAME='rocznik' size=10><br></td></tr>
  17. <tr><td width=150>  Przebieg: </td><td width=400><INPUT TYPE='text' NAME='przebieg' size=15></td></tr>
  18. <tr><td width=150>  Cena: </td><td width=400><INPUT TYPE='text' NAME='cena' size=15>&nbsp;.</td></tr>
  19. <tr><td width=150>  Miasto: <b>*</b></td><td width=400><INPUT TYPE='text' NAME='miasto' size=20 required ></td></tr>
  20. <tr><td width=150>  Sprzedający: <b>*</b></td><td width=400><INPUT TYPE='text' NAME='sprzedajacy' size=30 required ></td></tr>
  21. <tr><td width=150>  E-mail: </td><td width=400><INPUT TYPE='text' NAME='email' size=30></td></tr>
  22. <tr><td width=150>  Telefon: <b>*</b></td><td width=400><INPUT TYPE='text' NAME='telefon' size=30 required ></td></tr>
  23. <tr><td width=150> </td><td width=400> <INPUT TYPE='submit' VALUE='Dodaj'>
  24. <button type='reset' name='reset'>Wyczyść</button>&nbsp;<input type=button value='Wróć' class=tekst onclick='javascript:history.back()'>
  25. </td></tr></table></form>
  26. ?>


bede bardzo wdzieczny za jakiekolwiek wskazowki
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.