Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][mySql] wypisywanie rekordów
Forum PHP.pl > Forum > Przedszkole
mtskilla
Witam

Mam pewien problem.
Chodzi o tabele mysql. Chcialbym pobrac z niej wszystkie rekordy i wylistowac (z danego wiersza) SELECT * FROM dane WHERE nazwa = ('$warunek (przez post)')");

ale problem w tym, ze nazwy komorek są rożne.

wyglada to mniej wiecej tak:

nazwa komórki ...opis1..opis2....opis3...opis4...nazwa
wartosc................bla1....bla2....bla3.....bla4.......nazwa

i chcialbym pobrac dane z poszczegolnych opisów. tyle z tym, ze niektore komórki są puste


chcialbym zeby to wygladalo tak:

nazwa
opis1
opis2
opis3
(jesli nie ma ktoregos to kolejny)


wiec zrobilem cos takiego:

  1. while($w=mysql_fetch_array($odp))
  2. {
  3. if(!empty($w))
  4. {
  5. echo $w[opis1];
  6. echo "<br />";
  7. echo $w[opis2];
  8. echo "<br />";
  9. echo $w[opis3];
  10. echo "<br />";
  11.  
  12. }
  13. }


Tylko, ze jak komorka z danym opisem jest pusta to i tak wywala mi br'a i lista zawsze jest tej samej dlugosci tylko poprostu czasami bez nazw z opisów...
nie wiem czy zagniezdzac tam tyle ifów do kazdego z opisów czy jest jakis inny sposob?


ps. wiem wiem. noob ze mnie sciana.gif
tehaha
a co to za problem użyć if? gdyby elementów było więcej to byś mógł użyć pętli for, ale dla 3 kolumn to same if wystarczy

p.s. zamiast if(!empty) użyj if mysql_num_rows($result) > 0){
mtskilla
No wlasnie mam wiecej tych elementów sztuk 20.


zrobilem taką pentle dla if

  1. if(empty($w[opis1])){}
  2. else
  3. {
  4. echo $w[opis1];
  5. echo "<br />";
  6. }


tylko, ze dla 20 wynikow to bardzo obszerna instrukcja zwlaszcza, ze oprocz samego wyswietlenia nazwy daje tam rowniez formularz itp..
czy pentla for skróci mi tą instrukcje bardzo? jak ją zastosowac?
tehaha
jeżeli nazwy pól są opis1 do opis20 to możesz zrobić to tak:
  1. for($i=1;$i<=20;++$i)
  2. {
  3. if($w['opis'.$i] != '')
  4. {
  5. echo $w['opis'.$i]."<br/>";
  6. }
  7. }

jeżeli są różne nazwy kolumn to też nie problem wtedy można je umieścić w tablicy i w tej samej pętli użyć
mtskilla
Tego mi było trzeba!! guitar.gif
croc
A ja prezentuję rozwiązanie ELEGANCKIE z foreach:
  1. foreach($w as $value) {
  2. if($value !== '') {
  3. echo $value . '<br>';
  4. }
  5. }

Zakładając, że wszystkie niepuste pola z zapytania są wypisywane.
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.