Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][PHP] foreach pokazuje tylko pierwszą zmienną
adek-
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


Witam robię sobie skrypt który z xml'a będzie wygrzebywał mi informacje do którego użyłem funkcji foreach, tak żeby mi wyciągał je w rządku jeden pod drugim. Niestety zapętla się tylko pierwszy parametr $rxn;. Mało sę znam na php i próbowałem sobie to trochę uprościć robiąc to w ten sposób, ale nie bardzo mi to wychodzi. Może zaiast foreach uży czegoś innego?

próbowałem nawet zrobić więcej foreachów (poniżej pokazuję tylko 3) i wkłądać w nie te zmienne po kolei, ale też nic nie działa

  1. <?
  2. echo ' <table><tr>';
  3. $rejsy = simplexml_load_file('dane/export.xml/baza.xml');
  4. $baza = simplexml_load_file('dane/export.xml/baza.xml');
  5. $rnazwa = $baza->rejsy->rejs->nazwa;
  6. $rtrasa = $baza->rejsy->rejs->trasa_rejsu;
  7. $rdataod = $baza->rejsy->rejs->data->od;
  8. $rstatek = $baza->rejsy->rejs->statek->nazwa;
  9. $rlinia = $baza->rejsy->rejs->statek->linia;
  10. $rpilot = $baza->rejsy->rejs->pilot;
  11. $pdzien = $baza->program->rejs->data->opis;
  12. $ccenaod = $baza->cennik->rejs->pozycja->cena->od;
  13. $cpromo = $baza->cennik->rejs->pozycja->promocja->opis;
  14.  
  15. foreach ($rejsy->rejsy->rejs as $rx) {
  16. foreach ($rx->nazwa as $rxn) {
  17. foreach ($rtrasa as $trasa) {
  18.  
  19. //###################
  20. echo '<td class="sl">&nbsp;</td><td class="rnazwa"><table><tr><td style="background-color: rgb(255, 255, 255); text-align: left; padding-left: 5px; width: 350px; font-size: 11px; vertical-align: bottom;">';
  21. echo '<a href="3147,wiosenne-fascynacje,rejs.html">';
  22. echo $rxn;
  23. echo '</a> </td></tr><tr><td style="background-color: rgb(255, 255, 255); text-align: left; padding-left: 5px; width: 350px; font-size: 10px; vertical-align: top;">';
  24. echo $rtrasa;
  25. echo '</td></tr></table>';
  26.  
  27. echo '<td style=\"background-color: rgb(255, 255, 255); text-align: left;\" width=\"100\">';
  28. echo '<a href="">';
  29. echo $rdataod;
  30. echo '<br><span class=\"greytext\">5 nocl.</span></a></td>';
  31.  
  32. echo '<td style="background-color: rgb(255, 255, 255); text-align: center;" width="20"><a href="3147,wiosenne-fascynacje,rejs.html"><img src="images/rejsy/promocja.png" title="PROMOCJA" border="0"></a></td>';
  33. echo '<td style="background-color: rgb(255, 255, 255); text-align: center;" width="40">';
  34. echo '<a href="3147,wiosenne-fascynacje,rejs.html">€&nbsp;389';
  35. echo $rcena;
  36. echo '</a></td><td style="background-color: rgb(255, 255, 255); text-align: right; padding-right: 5px;" width="100">';
  37. echo '<a href="3147,wiosenne-fascynacje,rejs.html">';
  38. echo $rstatek;
  39. echo '</a></td><td style="background-color: rgb(255, 255, 255); text-align: center; padding-right: 5px;" width="50">';
  40. echo '<a class="black" href="3147,wiosenne-fascynacje,rejs.html"><!--<img src="templates/namorzu/logo/costa.gif" alt="costa" border="0">-->';
  41. echo $rx->statek->linia;
  42. echo '</a></td>';
  43. echo ' <td width="20"></td></tr></table>';
  44. } }}
  45. ?>


PS 1: kiedyś w cmsie phpfusion jak przy znaku " nie dodawałem ukośnka \ (czyli \") to mi wyskakiwał błąd, a tutaj wszystko działa?
PS 2: w wypadku powyżej jak definiuje w css clasę class="rnazwa" w zewnętrznym pliku css i tam justuje text do lewej, to nie justuje mi go na stronie, a jak zrobię style="text-align: left;" bezpośrednio przy danym elemencie to wszystko działa? Czy PHP może coś knocić, ale raczej wnioskuje że to moja nieznajomość PHP?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Psychopath
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 2
Dołączył: 22.01.2006

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


1) Jeżeli wpisujesz echo 'coś'; to nie musisz używać ukośników przed ", ukośniki są po to, by php nie mylił kodu wewnątrz funkcji jako jej koniec. Czyli np:
  1. echo "<a href="x.php">x</a>";

Nie zadziała, bo php myśli, że przed x.php następuje koniec funkcji.

2) Spróbuj zrobić 2 deklaracje stylu css, jedną xml'ową, a jedną w metatagach. Jeżeli nie pomoże, oznacza to, że wpisujesz coś źle. Na pewno nie radze ci zostawiać styli w kodzie html. Powoduje to taki syf w kodzie, że potem zmiana czegoś to istna katorga.

3) Odnośnie odczytywanie xmla, to radzę ci użyć funkcji print_r() i zobaczyć, czy na pewno wszystkie dane są odczytane. Tablica jest wielowymiarowa, dlatego może sprawiać problemy jej rozpisanie. Polecam użyć kartki i na szybko sobie wszystko rozrysować, a potem napisać który foreach() do czego się odnosi, ja tak kiedyś robiłem gdy miałem większe wielowymiarowe tablice, zawsze pomagało. Nie mam niestety dostępu do pliku xml, dlatego nic więcej pomóc nie mogę.
Bardziej czytelna wersja:
  1. <?php
  2. echo "<pre>";
  3. print_r($tablica);
  4. echo "</pre>";
  5. ?>


Ten post edytował Psychopath 16.04.2010, 21:45:34
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 12:36