Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] pętla...
Forum PHP.pl > Forum > Przedszkole
gl00du
Witam,

otóż pisząc sobie mały skrypt spotkałem się z pewnym problemem

Kod. 01.php
  1. <?php
  2. function pobierz_kc() {
  3. mysql_conn();
  4. $f = mysql_query("SELECT kc_id, kc_tytul FROM kc");
  5. $f2 = mysql_query("SELECT kc_id, kc_tytul FROM kc");
  6. while($fo = mysql_fetch_row($f2)) {
  7. $array[$fo[0]] = $fo[1]; }
  8. echo '<FORM><SELECT NAME="urljump" OnChange="selecturl(this)">';
  9. if(!empty($_GET['cat'])) { echo '<OPTION>'. $array[$_GET['cat']] .'</OPTION>'; }
  10. while($fp = mysql_fetch_row($f)) {
  11. echo '<OPTION VALUE="index.php?cat='.$fp[0].'">'. $fp[1] .'</OPTION>';
  12. }
  13. echo '</SELECT></FORM>';
  14. mysql_disc();
  15. }
  16. ?>


no i owszem... niby to działa... ale czy nie dałoby się tego skrócić ?

02.php
  1. <?php
  2. function pobierz_kc() {
  3. mysql_conn();
  4. $f = mysql_query("SELECT kc_id, kc_tytul FROM kc");
  5. echo '<FORM><SELECT NAME="urljump" OnChange="selecturl(this)">';
  6. if(!empty($_GET['cat'])) { echo '<OPTION>'. $array[$_GET['cat']] .'</OPTION>'; }
  7. while($fp = mysql_fetch_row($f)) {
  8. $array[$fp[0]] = $fp[1];
  9. echo '<OPTION VALUE="index.php?cat='.$fp[0].'">'. $fp[1] .'</OPTION>';
  10. }
  11. echo '</SELECT></FORM>';
  12. mysql_disc();
  13. }
  14. ?>


zrobiłem coś takiego, ale nie bardzo działa... problem z tą linijką ...

  1. <?php
  2. if(!empty($_GET['cat'])) { echo '<OPTION>'. $array[$_GET['cat']] .'</OPTION>'; }
  3. ?>


ponieważ powinna być po
  1. <?php
  2. $array[$fp[0]] = $fp[1];
  3. ?>
ale przed pętlą...

wie ktoś jak to zrobić ? czy wyjście z dwoma pętlami jest dobre?

pozdrawiam
Prym
troszke zamotane smile.gif napewno 2 zapytania do bazy są co najmniej marnotrawstwem natomiast jednego nie rozumiem co ma robic ta linijka :

  1. <?php
  2. if(!empty($_GET['cat'])) { echo '<OPTION>'. $array[$_GET['cat']] .'</OPTION>'; }
  3. ?>


jeżeli to ma być wyświetlenie aktualnego wpisu to powinieneś użyć selected powiedzmy ze mozna by to zmodyfkowac następująco (modyfikuję twoj 2 kod zeby była jasnosc smile.gif )

  1. <?php
  2. function pobierz_kc() {
  3. mysql_conn();
  4. $f = mysql_query("SELECT kc_id, kc_tytul FROM kc");
  5. echo '<FORM><SELECT NAME="urljump" OnChange="selecturl(this)">';
  6. while($fp = mysql_fetch_row($f)) {
  7. if($fp[0]==$_GET['cat']) { $wybrane=' selected="selected"'; } else {$wybrane='';}
  8. echo '<OPTION VALUE="index.php?cat='.$fp[0].'"'.$wybrane.'>'. $fp[1] .'</OPTION>';
  9. }
  10. echo '</SELECT></FORM>';
  11. mysql_disc();
  12. }
  13. ?>

i według powyższego jezeli dana z GET rowna się id wtedy robimy wybrana opcje w przeciwnym wypadku puszczamy jako pusta liste

jakby nie zadziałało to daj znac bo nie testowałem tylko z reki wpisalem poprawki
gl00du
tak, to miało wyświetlać aktualny wpis biggrin.gif

thx Prym za szybką i sprawną pomoc ;-)


ps. temat chyba do zamknięcia (;
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.