Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP | SimpleXML] Aktualizacja/Wyswietlanie nodów, Problem z dostępem do konkretnego noda i wywołaniem ID
fafiktheking
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.03.2009

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


Witam,
Dotychczas pracowałem tylko na MySQL'u. Od niedawna ucze sie XML'a. Chciałbym zrobić za pomocą SimpleXML dokładnie to samo co w artykule: http://wortal.php.pl/wortal/artykuly/php/p...usuwanie_danych.

Krotko mowiac - wylistowac elementy do tabeli i umiescic przyciski Usun/Update przy kazdym rekordzie.

W powyzszym tutorialu wszystko odbywa sie za pomoca $id=$_GET['id'] oraz update.php?id='.$row['id'].
Do tej pory żeby wyświetlić zawartość konkretnego NODA używałem foreach. I zastanawiam się czy nie lepiej uzyc while albo for.
Czy zmiana petli pomoże.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Zmiana pętli nie ma znaczenia.
Pętla ma za zadanie powtórzyć blok kodu x razy i nie ma związku z kodem, który się w niej wykonuje (poza warunkiem wykonania).


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
fafiktheking
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.03.2009

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


Oczywiscie ze petla powtarza pewien blok. ale w odwolaniu do kokretnego child'a np:
Uzywając petli for badz while mozna uzyć $i w wyrazeniu: $xml->xpath('eventserieses/eventseries[$i]/events/event') i moze troche pomoc.
Go to the top of the page
+Quote Post
tehaha
post
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


w każdej pętli możesz umieścić taką zmienną $i , i nadać jej inkrementację w trakcie pętli
Go to the top of the page
+Quote Post
fafiktheking
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.03.2009

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


chodzi mi konkretnie jak stworzyc link analogiczny do tego:
update.php?id='.$row['id']....



udało mi się pobrać numer noda za pomocą pętli for
  1. for($i; $i<= $count; $i++) {
  2. echo '<a href="'.$eventseries[$i]->url.'" target="_blank">'.$eventseries[$i]->title.'</a><br />';
  3. echo '<a href="java script: void(0)" onclick="window.open(\'info.php?id='.$i.'\', \'windowname1\', \'width=600, height=450\'); return false;">Update</a><br />';

ale do wyświetlenia uzywam:

  1. $xml = simplexml_load_file('large_3.xml');
  2. $a = $_GET["id"];
  3. echo $a;
  4. echo $xml->eventserieses->eventseries[$a]->text;


echo jest po to zeby sprawdzic czy pobiera prawidłowy numer noda - i działa ale nie wiem dlaczego nic nie wyświetla kiedy $a próbuje użyć w składni. Jeżeli zamiast $a użyję numeru np. 2 wszystko działa.

Rozwiązałęm problem. Wartość $i była pobierana jako string. Trzeba było zrobić konwersję typu

  1. $a = $_GET["id"];
  2. settype($a, "integer");
  3. echo $xml->eventserieses->eventseries[$a]->title;


Ten post edytował fafiktheking 12.04.2010, 15:29:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:06