Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> obejscie petli
invx
post
Post #1





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


  1. <?php
  2. $zapytanie="SELECT * FROM users_komunikatory WHERE id='$_GET[id]' AND id_usera='$_SESSION[id]'";
  3.     $wykonaj=mysql_query($zapytanie);
  4.  
  5.     while( $users_k = mysql_fetch_array( $wykonaj ) )
  6.     {
  7. //(...) kod formularza 
  8.     }
  9. ?>


jest to kod z formularza, jesli edytuje rekord, to petla pobiera dane z bazy, ale jesi nie edytuje, to nie ma $_GET[id], wiec nie wyszukuje w bazie, i nic nie wyswietla ... nie mam iwec formularza aby dodac nowy rekord ...
jak mozna wiec taka petle pominac jesi chce dodac nowy rekord

Ten post edytował invx 26.10.2005, 20:22:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




:|

Nie rozumie nic z tego co napisales wogole...

Zrob

  1. <?php
  2. if( $cos ) {
  3. // robisz petle
  4. }
  5. ?>


i tyle ..
Go to the top of the page
+Quote Post
invx
post
Post #3





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


ale w else bym musial drugi raz formularz skopiowac a tgeo chce uniknac.
a chce zeby w razie braku $_GET (i bez zapytania) wykonalo sie to co w peti,
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


No pomyśl przez chwilę.
Skoro nie ma danych z $_GET i zapytanie się nie wykona, to znie zwróci wyników, a to z kolei oznacza że pętla nie obróci sie ani razu. Więc co ma się w nij wykonać :?:
Dajesz if ... else ... . Albo pętla, albo cos poza pętlą.

Tak to widzę po Twoim opisie.
Go to the top of the page
+Quote Post
kszychu
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


  1. <?php
  2.  
  3. $zmienna = '';
  4. // teraz wyszukujesz coś lub nie, podmieniając lub nie wartość $zmienna
  5.  
  6. // i tu dajesz formularz
  7. echo "<input type=text name=zmienna value='{$zmienna}'>
  8. ?>

Jeśli zmienna będzie miała przypisaną z bazy wartość, to wyświetli ci ją, jeśli nie, masz pusty formularz do wprowadzania danych.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Spaghetti rulez.

Nie mieszaj warstwy logiki z w. prezentacji:
jest $_GET[ 'id' ] to pobierasz dane z bazy (wsyzstkie rekordy do jednej talbicy, albo jeden nie wiem ile ci zwraca), jesli nie to dostawczasz pusta tablice

Drukujesz formularz uzywajac powyzszej tablicy
- czesc do dodawania rekordow
- foreach( po tablicy ) i wypisujesz dane z bazy -- jesli ich nie ma to ta petla nic nie zrobi.
Go to the top of the page
+Quote Post
invx
post
Post #7





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


czyli zamiast while zastosowac foreach ?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Pomysl.

  1. <?php
  2.  
  3.  
  4. $dane = array();
  5. if ( istneieje $_GEt[ 'id' ] )
  6. {
  7. //pobierasz dane z bazy (wsyzstkie rekordy do jednej talbicy
  8. while ( $dane[] = mysql_fetch.... )
  9. {}
  10. array_pop( $dane ); // wyrzuca ostatnie FALSE
  11. }
  12. else
  13. {
  14. // $dane to pusta tablica
  15. }
  16.  
  17. // wypisujesz <form> i pola do dodawania rekordu
  18.  
  19. foreach ( $dane as $x )
  20. {
  21. // wypisz ten $x (nie wiem w jaki sposob, bo skad?); rekordy
  22. // jesli danych nie ma to nic sie tu nie wypisze.
  23. }
  24.  
  25. ?>
Go to the top of the page
+Quote Post
invx
post
Post #9





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


tylko rekorsy maja sie wstawiac w polach input w formularzu
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: 24.12.2025 - 06:34