Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak prościej zapisać
Forum PHP.pl > Forum > Przedszkole
Mar3k
Witajcie
To mój 1-szy pościk na Forum. Witam wszystkich serdecznie no i jak na Forum przystało, zadaję pytanie
PRZYKŁAD:
Jest tabela.W tabeli sa pola o nazwach :
p1,p2,p3.....p1000
Czy jest prosta metoda,by móc np utworzyć taki warunek :
  1. <?php
  2.  
  3. if ($row_zapytanie['p1']!=''){echo &#092;"Pole równe \".$row_zapytanie['p1'];}
  4. if ($row_zapytanie['p2']!=''){echo &#092;"Pole równe \".$row_zapytanie['p2'];}
  5. if ($row_zapytanie['p3']!=''){echo &#092;"Pole równe \".$row_zapytanie['p3'];}
  6. //
  7. // milion innych warunków :)
  8. if ($row_zapytanie['p1000']!=''){echo &#092;"Pole równe \".$row_zapytanie['p1000'];}
  9.  
  10. ?>



Dziękuje za info
Pozdrawiam
sf
Hm, np. użyc pętli foreach/while. Tylko, że nie lepiej skonstruować zapytanie do bazy danych by zwrócił pola, które nie są puste? W ten sposób nie musisz wypisywać tego warunku.

Lepiej napisz co chcesz osiągnąć.
SET
  1. <?php
  2. for($i=1; $i<=1000; $i++)
  3. {
  4.   $p = 'p'.$i;
  5.  
  6.   if(!empty($row_zapytanie[$p]))
  7.      echo 'Pole równe '.$row_zapytanie[$p];
  8.   else
  9.      echo '';
  10. }
  11. ?>
Mar3k
Dziekuje SET

Twoje rozwiązanie jest bardzo pomocne.
Robiłem podobnie ale jednak nie tak ,skoro nie otrzymałem wyniku ;D

Dziekuje i wszystkich pozdrawiam
scanner
  1. <?php
  2. $sOutput = '';
  3. foreach( $row_zapytanie as $sKey => $mValue )
  4. {
  5. $sOutput .= empty( $mValue ) ? &#092;"nr\" : \"Pole $sKey równe $mValuenr\"; 
  6. }
  7. echo $sOutput;
  8. ?>
SET
Musisz jeszcze wyeliminować spacje:
zamiast
  1. <?php
  2. if(!empty($row_zapytanie[$p]))
  3. ?>

coś takiego:
  1. <?php
  2.  if(!empty(trim($row_zapytanie[$p])))
  3. ?>
scanner
a) dlaczego musi?
b) skąd wiesz, jakie dane ma? może liczby?
SET
jak będzie sama spacja to wyświetli
Pole równe (i nic tu nie będzie bo empty przyjmie że pole ma wartość)

jeżeli chodzi o liczby to można zrobić coś takiego:

  1. <?php
  2. $liczby = range(1,1000);
  3.  
  4. foreach($liczby as $i)
  5. {
  6. $liczba = $liczby[$i-1];
  7. echo 'Pole równe '.$liczba.'<br />';
  8. }
  9. ?>
scanner
I to się zgadza. Spacja jest wartością. Skoro aplikacja pozwala na zapisanie spacji tam, gdzie jej nie powinno byc, to trzeba zrobić fix w apliakcji a nie w wyświetlaniu wyników smile.gif
SET
no tak dlatego sprawdzam takie rzeczy przed zapisaniem winksmiley.jpg
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.