Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL]warunkowe pobieranie z galerii
Forum PHP.pl > Forum > Przedszkole
deejay3
po piwersze, jak uruchamiam strone to wywawala mi blad, ze nie widzi zmiennej $katalog, ktora wlasnie ma byc wybierana ;/
po drugie, w tabeli wyszukuje tylko przy "WSZYSTKO" i pokazuje wszystko, a nie chce w ogole wejsc w petle WHILE przy innym wyborze ;/

dlaczego?

jak pozmieniac ten kod zeby wszystko chodzilo tak jak sie nalezy



tabela MySQL:

album_pictures
-------------------------
lp | nazwa | katalog |
-------------------------



chcialbym, zeby poprzez wybor select wyrzuccalo tylko zdjecia z danego katalogu

  1. <?
  2.  
  3.  
  4. include ('config.inc.php');
  5.  
  6. $ile = 4;
  7.  
  8. echo "<table cellpadding=10>";
  9. $i = 0;
  10.  
  11.  
  12.  
  13. echo "<FORM ACTION=\"index.php\" METHOD=\"post\">
  14.  
  15. Wybierz katalog: <SELECT NAME=\"katalog\">
  16.  
  17. <OPTION VALUE=\"moda\">moda</OPTION>
  18.  
  19. <OPTION VALUE=\"portret\">portret</OPTION>
  20.  
  21. <OPTION VALUE=\"nagosc\">nagosc</OPTION>
  22.  
  23. <OPTION VALUE=\"pokazy\">pokazy</OPTION>
  24.  
  25. <OPTION VALUE=\"nic\">wszystko</OPTION>
  26.  
  27. </SELECT>
  28.  
  29. <INPUT TYPE=\"submit\" VALUE=\"ok\">
  30.  
  31. </FORM>";
  32.  
  33.  
  34.  
  35.  
  36.  
  37. switch ($katalog)
  38.  
  39. {
  40. case "moda":
  41. $zapytanie = "SELECT * FROM album_pictures where 'katalog'='moda'";
  42. break;
  43.  
  44. case "nagosc":
  45. $zapytanie = "SELECT * FROM album_pictures where 'katalog'='nagosc'";
  46. break;
  47.  
  48. case "pokazy":
  49. $zapytanie = "SELECT * FROM album_pictures where 'katalog'='pokazy'";
  50. break;
  51.  
  52. case "portret":
  53. $zapytanie = "SELECT * FROM album_pictures where 'katalog'='portret'";
  54. break;
  55.  
  56. case "nic":
  57. $zapytanie = "SELECT * FROM album_pictures";
  58. break;
  59. }
  60.  
  61.  
  62.  
  63.  
  64. //$zapytanie = "SELECT * FROM album_pictures";
  65. $wykonaj = mysql_query("$zapytanie");
  66.  
  67.  
  68. while ($wiersz = mysql_fetch_array($wykonaj))
  69. {
  70.  
  71.  
  72.  if (++$i == 1) {
  73. echo "<tr>";
  74.  }
  75.  
  76.  echo '<td >';
  77. echo "<a href=\"".$wiersz['katalog']."/duze/".$wiersz['nazwa']."\" title=\""."\"><img class='button' src=".$wiersz['katalog']."/mini/".$wiersz['nazwa']." border=0></a>";
  78.  echo '</td>';
  79.  
  80.  if ($i == $ile) {
  81. echo "</tr>";
  82. $i = 0;
  83.  }
  84. }
  85.  
  86. echo '</table>';
  87. ?>



z gory dzieki za wszelka pomoc
wipo
zamien na
  1. <?php
  2. if ($katalog)
  3.  $zapytanie = "SELECT * FROM album_pictures where katalog='{$katalog}'";
  4. else
  5.  $zapytanie = "SELECT * FROM album_pictures";
  6. ?>

to jedno a drugie to gdzie podajesz zmeinną $katalog - moze dodaj przed tym $katalog=$_GET['katalog'] ?
deejay3
wstawienie pierwszej czesci pomoglo, wyrzuca zdjecia z wybranego katalogu, dzieki wipo rolleyes.gif

ale dalej pozostaje blad przy pierwszym wywolaniu strony, czyli okreslenie zmiennej $katalog.

$katalog=$_GET['katalog'] - nic nie daje, dalej wyrzuca, ze brak zmiennej sadsmiley02.gif
wipo
A skad wiesz co ma byc w zmiennej $katalog? gdzie ona jest?
deejay3
zmienna $katalog ma na celu pobranie warosci z tabeli, pozniej porzez SELECT ma byc zmieniana, chcialbym to wszystko zawrzec w jednym pliku a jezeli na jego poczatku okresle wartosc zmiennej to pozniej mi sie ona nie przelaczy przez SWITCH. chcialbym zeby domyslnie przy uruchomieniu $katalog='moda' ale jezeli wpisze to w plik to pozniej co bym nie wybral to zmienna zawsze przybiera ta wartosc.

chyba jednak bede musial rozrzucic to na dwa pliki ;/
wipo
A nie mozesz przekazac jej jako wartosc w funkcji lub przez adres w $_GET?
Skie
Ja bym na Twoim miejscu zrobił tak:

$katalog = $_GET['katalog']

a do Switch'a na końcu dorzucił

  1. <?php
  2. default:
  3. $zapytanie = "SELECT * FROM album_pictures where 'katalog'='moda'";
  4. ?>
deejay3
poprzez GET dalej zmienna nie przyjmuje zadnej wartosci,

jezlei chodzi o rozwiazanie Skie to pomoze to tylko w wyswietleniu katalogu MODA, w na poczatek chcialbym zeby wyrzucalo wlasnie wszystko, wczesniej zle to okreslilem mowiac ze chcialbym aby to byla 'moda', czyli po krotkim przemysleniu winksmiley.jpg niech $katalog=""


w chwili obecnej wyglada to tak:

  1. <?
  2.  
  3.  
  4. include ('config.inc.php');
  5.  
  6. $ile = 4;
  7.  
  8. echo "<table cellpadding=10 width=600>";
  9. $i = 0;
  10.  
  11.  
  12.  
  13. //echo $katalog=$_GET['katalog'];
  14.  
  15.  
  16.  
  17. echo "<FORM ACTION=\"index.php\" METHOD=\"get\">
  18.  
  19. Wybierz katalog: <SELECT NAME=\"katalog\">
  20.  
  21. <OPTION type=selected VALUE=\"moda\">moda</OPTION>
  22.  
  23. <OPTION VALUE=\"portret\">portret</OPTION>
  24.  
  25. <OPTION VALUE=\"nagosc\">nagosc</OPTION>
  26.  
  27. <OPTION VALUE=\"pokazy\">pokazy</OPTION>
  28.  
  29. <OPTION VALUE=\"\">wszystko</OPTION>
  30.  
  31. </SELECT>
  32.  
  33. <INPUT TYPE=\"submit\" VALUE=\"ok\">
  34.  
  35. </FORM>";
  36.  
  37.  
  38. if ($katalog){
  39.  $zapytanie = "SELECT * FROM album_pictures where katalog='$katalog'";
  40. }else{
  41.  $zapytanie = "SELECT * FROM album_pictures";
  42.  
  43. }
  44.  
  45.  
  46. $wykonaj = mysql_query("$zapytanie");
  47.  
  48.  
  49. while ($wiersz = mysql_fetch_array($wykonaj))
  50. {
  51.  
  52.  
  53.  if (++$i == 1) {
  54. echo "<tr>";
  55.  }
  56.  
  57.  echo '<td >';
  58. echo "<a href=\"".$wiersz['katalog']."/duze/".$wiersz['nazwa']."\" title=\""."\"><img class='button' src=".$wiersz['katalog']."/mini/".$wiersz['nazwa']." border=0></a>";
  59.  echo '</td>';
  60.  
  61.  if ($i == $ile) {
  62. echo "</tr>";
  63. $i = 0;
  64.  }
  65. }
  66.  
  67. echo '</table>';
  68. ?>


wywalilem SWITH bo w tym momencie wszystko opiera sie na SELECT i to wystarczy, ale dalej w
  1. <?php
  2. if ($katalog){
  3.  $zapytanie = "SELECT * FROM album_pictures where katalog='$katalog'";
  4. }else{
  5.  $zapytanie = "SELECT * FROM album_pictures";
  6.  
  7. }
  8. ?>

pozostaje zmienna $katalog i smieci przy pierwszym uruchomieniu
Skie
Tak się zastanawiam czy zamiast

  1. <?php
  2. $zapytanie = "SELECT * FROM album_pictures where katalog='$katalog'";
  3. ?>


Nie powinno być

  1. <?php
  2. $zapytanie = "SELECT * FROM album_pictures where katalog='".$katalog."'";
  3. ?>


A jeżeli tak to wtedy wystarczyłoby dodać na początku kodu takie coś:


  1. <?php
  2. if (isSet ($_GET['katalog'])) {
  3. $katalog = $_GET['katalog'];
  4. }
  5. ?>
deejay3
Cytat(Skie @ 31.07.2008, 16:19:57 ) *
Tak się zastanawiam czy zamiast

  1. <?php
  2. $zapytanie = "SELECT * FROM album_pictures where katalog='$katalog'";
  3. ?>


Nie powinno być

  1. <?php
  2. $zapytanie = "SELECT * FROM album_pictures where katalog='".$katalog."'";
  3. ?>


tutaj to za bardzo nie ma znaczenia, bo wyswietlac mi woswietla dobrze, chdozi tylko o ta zmienna w if($katalog) tu mi wywala blad, jezeli chodzi o isset to juz wczesniej tez probowalem i bez rezultatu ;/ caly szkopol opiera siena tym, ze zmienna okraslona jest dopiero w tym pliku przez SELECT, czyli jak juz wybiore jakas opcje i strona sie przeladuje to wartosc $katalog="wybrana opcja" a przy pierwszym uruchomieniu nie ma zadnej wartosci, probowalem juz w tym IF uzyc NULL ale tez to nic nie dawalo

znalazlem rozwiazanie biggrin.gif

na poczatku pliku:
  1. <?php
  2. $katalog="";
  3.  
  4. if (isSet ($_GET['katalog'])) {
  5. $katalog = $_GET['katalog'];
  6. }
  7. ?>


przy pierwszym uruchomieniu zmienna przyjmuje wpisana wartosc a pozniej isset-owana biggrin.gif

i hula winksmiley.jpg

yahoo.gif
Skie
Mówiłem, żeby z $_GET'ami i IsSetami zrobić ;p
deejay3
no jak najbardziej mnie naprowadziles i metoda prob i bledow doszedlem do tego ze brakowalo tylko wstepnego okreslenia zmiennej... bo na logike biorac myslalem, ze jak dam ja przed isset-em to i tak przy odswiezeniu bedzie bralo ta wpisana, a tu isset-ik mily zrobil mi niespodzianke biggrin.gif i hula...
wielkie dzieki, przy okazji stawiam pivko winksmiley.jpg

czas na kolejne elementy... juz sie boje biggrin.gif
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.