Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] pętla...
-gl00du-
post
Post #1





Goście







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
Go to the top of the page
+Quote Post
Prym
post
Post #2





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

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


troszke zamotane (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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

Ten post edytował Prym 12.10.2007, 14:49:48
Go to the top of the page
+Quote Post
-gl00du-
post
Post #3





Goście







tak, to miało wyświetlać aktualny wpis (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

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


ps. temat chyba do zamknięcia (;
Go to the top of the page
+Quote Post

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: 23.08.2025 - 17:54