Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Problem z sortowaniem.
Forum PHP.pl > Forum > Przedszkole
miras
Witam, mam następujący problem z sortowaniem, mam 2 pliki, jeden odpowiada za sortowanie województw, drugi za sortowanie kategorii, oba pliki są includowane do indexu

w wojewodztwach jeżeli nic nie jest wybrane to jest domyślnie (Cała Polska) a w Katagoriach (Inne) problem polega na tym, że jak wybiorę jakieś np. wojewodztwo to w kategoriach robi się pusto ( tzn, nic się nie wyświetla, a powinno to co jest zapisane w sesji) i na odwrót..

Troche zamotałem, ale prościej nie potrafię tego wytłumaczyć załączam kod może coś pomoże:

Kategoria.php:

  1. <?php
  2.  
  3.  
  4. if ($_POST['kateg']) {
  5.  
  6. if ($_POST['kateg']==19) {
  7. $_SESSION['kateg']="";
  8. $kateg=$_SESSION['kateg'];
  9. } else {
  10. $_SESSION['kateg']=$_POST['kateg'];
  11. $kateg=$_SESSION['kateg'];
  12. }
  13.  
  14. }
  15.  
  16. if ($_SESSION['kateg']) {
  17.  
  18. $k = mysql_fetch_array(mysql_query("SELECT * FROM kategorie WHERE `value`='$kateg'"));
  19. $wyn = mysql_query("SELECT * FROM kategorie WHERE `value`!='$kateg'")
  20. or die('Błąd zapytania');
  21.  
  22. if(mysql_num_rows($wyn) > 0) {
  23. echo '<form method="POST" action="">
  24. <select name="kateg" onchange="if(this.selectedIndex>0) submit()">';
  25. while($x = mysql_fetch_assoc($wyn)) {
  26.  
  27.  
  28. echo '<option value="'.$x['value'].'">'.$x['name'].'</option>';
  29.  
  30. }
  31. echo '<option selected="selected" value="'.$k.'">'.$k['name'].'</option>';
  32. echo '</select></form>';
  33. }
  34.  
  35. } else {
  36. $wyn = mysql_query("SELECT * FROM kategorie WHERE `value`!='19'")
  37. or die('Błąd zapytania');
  38.  
  39. if(mysql_num_rows($wynik) > 0) {
  40. echo '<form method="POST" action=""><select name="kateg" onchange="if(this.selectedIndex>0) submit()">';
  41. while($x = mysql_fetch_assoc($wyn)) {
  42.  
  43.  
  44. echo '<option value="'.$x['value'].'">'.$x['name'].'</option>';
  45.  
  46. }
  47. echo '<option selected="selected" value="19">Inne</option>';
  48. echo '</select></form>';
  49. }
  50.  
  51. }
  52.  
  53. ?>













Województwa.php:

  1. <?php
  2.  
  3. if ($_POST['woj']) {
  4.  
  5. if ($_POST['woj']==17) {
  6. $_SESSION['woj']="";
  7. $woj=$_SESSION['woj'];
  8. } else {
  9. $_SESSION['woj']=$_POST['woj'];
  10. $woj=$_SESSION['woj'];
  11. }
  12.  
  13. }
  14.  
  15. if ($_SESSION['woj']) {
  16.  
  17. $nam = mysql_fetch_array(mysql_query("SELECT * FROM wojewodztwa WHERE `value`='$woj'"));
  18. $wynik = mysql_query("SELECT * FROM wojewodztwa WHERE `value`!='$woj'")
  19. or die('Błąd zapytania');
  20.  
  21. if(mysql_num_rows($wynik) > 0) {
  22. echo '<form method="POST" action="">
  23. <select name="woj" onchange="if(this.selectedIndex>0) submit()">';
  24. while($r = mysql_fetch_assoc($wynik)) {
  25.  
  26.  
  27. echo '<option value="'.$r['value'].'">'.$r['name'].'</option>';
  28.  
  29. }
  30. echo '<option selected="selected" value="'.$nam['value'].'">'.$nam['name'].'</option>';
  31. echo '</select></form>';
  32. }
  33.  
  34. } else {
  35. $wynik = mysql_query("SELECT * FROM wojewodztwa WHERE `value`!='17'")
  36. or die('Błąd zapytania');
  37.  
  38. if(mysql_num_rows($wynik) > 0) {
  39. echo '<form method="POST" action=""><select name="woj" onchange="if(this.selectedIndex>0) submit()">';
  40. while($r = mysql_fetch_assoc($wynik)) {
  41.  
  42.  
  43. echo '<option value="'.$r['value'].'">'.$r['name'].'</option>';
  44.  
  45. }
  46. echo '<option selected="selected" value="17">cała Polska</option>';
  47. echo '</select></form>';
  48. }
  49.  
  50. }
  51.  
  52. ?>
b4rt3kk
Pierwszym krokiem powinno być sprawdzenie, czy ify się wykonują, kolejnym wyświetlenie zapytań i sprawdzenie ich poprawności.

miras
właśnie to zrobiłem przed wrzuceniem na forum ;>
b4rt3kk
No to jeśli oczekujesz pomocy to może byś się podzielił wynikami tego eksperymentu?
miras
Przecież napisałem... jak mam się podzielić, w jednym jest lista województw i faktycznie sie wyświetla wszystko jak powinno, w drugim lista kategorii, problem się pojawia jak wybiorę np. jakieś województwo - to wtedy znika mi zupełnie to co powinno być <selected> w kategoriach.. wszystkie kategorie są jak były, ale pierwszą "tą zaznaczoną wcześniej" jest puste pole.. no nie wiem jak to inaczej wytłumaczyć :/
b4rt3kk
  1. if (!empty($_POST['kateg'])) {
  2.  
  3. if ($_POST['kateg']==19) {
  4. $_SESSION['kateg']="";
  5. $kateg=$_SESSION['kateg'];
  6. } else {
  7. $_SESSION['kateg']=$_POST['kateg'];
  8. $kateg=$_SESSION['kateg'];
  9. }
  10.  
  11. echo 'jestem w if 1, wartosc session-kateg to: ' . $_SESSION['kateg'] . '<br/>';
  12.  
  13. }
  14.  
  15. if (!empty($_SESSION['kateg'])) {
  16.  
  17. $k = mysql_fetch_array(mysql_query("SELECT * FROM kategorie WHERE `value`='$kateg'"));
  18. $wyn = mysql_query("SELECT * FROM kategorie WHERE `value`!='$kateg'")
  19. or die('Błąd zapytania');
  20.  
  21. echo 'jestem w if 2, wartosc session-zapytania to: ' . $k . '<br/>';
  22.  
  23. if(mysql_num_rows($wyn) > 0) {
  24.  
  25. echo 'jestem w if 3<br/>';
  26. echo '<form method="POST" action="">
  27. <select name="kateg" onchange="if(this.selectedIndex>0) submit()">';
  28. while($x = mysql_fetch_assoc($wyn)) {
  29.  
  30.  
  31. echo '<option value="'.$x['value'].'">'.$x['name'].'</option>';
  32.  
  33. }
  34. echo '<option selected="selected" value="'.$k.'">'.$k['name'].'</option>';
  35. echo '</select></form>';
  36. }
  37.  
  38. } else {
  39. $wyn = mysql_query("SELECT * FROM kategorie WHERE `value`!='19'")
  40. or die('Błąd zapytania');
  41. echo 'jestem w if 4, zapytanie to: ' $wyn . '<br/>';
  42. if(mysql_num_rows($wyn) > 0) { // tu miales $wynik zamiast $wyn
  43.  
  44. echo 'jestem w if 5<br/>';
  45. echo '<form method="POST" action=""><select name="kateg" onchange="if(this.selectedIndex>0) submit()">';
  46. while($x = mysql_fetch_assoc($wyn)) {
  47.  
  48.  
  49. echo '<option value="'.$x['value'].'">'.$x['name'].'</option>';
  50.  
  51. }
  52. echo '<option selected="selected" value="19">Inne</option>';
  53. echo '</select></form>';
  54. }
  55.  
  56. }


odpal coś takiego i przekopiuj co wyświetli.
miras
Wyświetla to:

jestem w if 4, zapytanie to: Resource id #6 jestem w if 5
b4rt3kk
Cytat(miras @ 17.10.2012, 15:56:00 ) *
Wyświetla to:

jestem w if 4, zapytanie to: Resource id #6 jestem w if 5


Więc oznacza to, że zmienna $_SESSION['kateg'] jest pusta. Masz wystartowaną sesję w ogóle?

miras
nie miałem wystartowanej sesji, ale dodanie startu nic nie pomogło..
b4rt3kk
Mecz leci, także będę się streszczał.

  1. if (!empty($_POST['kateg'])) {
  2.  
  3. if ($_POST['kateg']==19) {
  4. $kateg = $_SESSION['kateg']="";
  5. } else {
  6. $kateg = $_SESSION['kateg']=$_POST['kateg'];
  7. }
  8.  
  9. } else $kateg = $_SESSION['kateg'] = 'wartosc_domyslna';


dalej:

  1. if (isset($_SESSION['kateg'])) {

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.