Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obejscie petli
Forum PHP.pl > Forum > PHP
invx
  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
hwao
:|

Nie rozumie nic z tego co napisales wogole...

Zrob

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


i tyle ..
invx
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,
mike
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.
kszychu
  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.
dr_bonzo
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.
invx
czyli zamiast while zastosowac foreach ?
dr_bonzo
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. ?>
invx
tylko rekorsy maja sie wstawiac w polach input w formularzu
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.