Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][MySQL][PHP] Automatyczne dodawanie elementów
Frugo75
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.06.2013

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


Panowie,

Kończę projekt i utknąłem w punkcie, automatycznego elementów XML. Statyczne jak:
<league>
  1. <league="NFL"/>
  2. <date>2013-06-26</date>
  3. <start>02:45</start>
  4. <team1>Philadelphia Eagles</team1>
  5. <team2>Baltimor Ravens</team2>
  6. <score>22:33</score>


ładnie się generują z danych wyciaganych z bazy (rówież dzieki Wam;)

Ale teraz dodaje do bazy relację teksową do tabeli "comments", gdzie kazdy komentarz ma swoje id.

Czy ktos wie jak zrobić, aby w xml generowały się automatycznie <comments></comments> z chwilą wstawienia do bazy nowego komentarza?

  1. <comment id=xxxx></comment>
  2. <comment id=yyyy></comment>
  3. <comment id=zzzzz></comment>


XML generuję w DOM.

  1. $result8 = mysql_query("SELECT DISTINCT comment, time, id FROM comments WHERE id_meczu = 583 && comment > '0' group by time ASC") or die(mysql_error());
  2.  
  3. while ($rowa8 = mysql_fetch_assoc($result8)){
  4.  
  5. $comment .= $rowa8[comment];
  6. $idcomment = $rowa8[id];
  7. }
  8.  
  9. $comment = $xml->createElement("comment", "$comment");
  10. $comment = $matches->appendChild($comment);
  11. $comment->setAttribute("id", "$idcomment");


Chodzi mi o to, żeby to tworzylo kolejne elementy drzewa <comment> z chwilą wstawienia do bazy nowego komentarza

OK. Już sobie poradziłem. Ale teraz generuje się o jeden rekord mniej niż w bazie. Zawsze o jeden mniej. Tak jakby ten nowy, spychał do XML poprzedniego. Czy ktoś wie dlaczego?
  1. $result8 = mysql_query("SELECT DISTINCT comment, time FROM comments WHERE id_meczu = 583 && comment IS NOT NULL order by id ASC") or die(mysql_error());
  2.  
  3. $row11 = mysql_fetch_assoc($result8);
  4. while ($row11 = mysql_fetch_assoc($result8)) {
  5. $comment = $xml->createElement("comment");
  6. $comment = $matches->appendChild($comment);
  7. $comment->setAttribute("id", "$row11[id]");
  8.  
  9. $text = $xml->createElement("text","$row11[comment]");
  10. $text = $comment->appendChild($text);
  11. $text->setAttribute("time", "$row11[time]");




Ten post edytował Frugo75 27.06.2013, 09:35:07
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez przed petlą pobierasz jeden rekord i nic z nim nie robisz to sie nie dziw, ze ci go brakuje....
Go to the top of the page
+Quote Post
Frugo75
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.06.2013

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


@nospor
Jesteś geniuszem. Dziękuję. Gdyby była tu opcja "przekaz za pomoc na piwo" to bym Ci posłał(IMG:style_emoticons/default/wink.gif)
Wiedziałem, ze na Ciebie mogę liczyć.(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie trzeba być geniuszem by dwu linijkowym kodzie zobaczycz, ze bez sensu dwa razy pobiera sie dane z bazy. A jak do tego dodac, ze brakuje nam rekordu to odpowiedz jest podana jak na dloni. Nastepnym razem skup sie bardziej na kodzie, mniej na forum.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 05:21