Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
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

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: 9.10.2025 - 12:04