Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapisaniem danych z bazy do pliku
Forum PHP.pl > Forum > PHP
explode
Witam mały problem chciałbym zapisac w pliku wszystkie dane jakie posiadam w mojej bazie,niestety gdy wywołuje ję pętla w zmiennej ,pętla zamiast sie wykonac zapisuje sie dpliku w niezmienionej postaci.Jak to rozwiązać oto kod
  1. <?php
  2.  
  3. mysql_connect('IP','p','bd') or die();
  4.  
  5. mysql_select_db("udn1") or die("nie mozna sie polaczyc z z ta baza");
  6. $wynik=mysql_query("SELECT*FROM baza ;") or die("blad w zapytaniu");
  7.  
  8. $rekord = mysql_fetch_assoc($wynik);
  9.  
  10.  
  11. $data=$rekord['last_modified'];
  12. $tresc=$rekord['content'];
  13. $opis=$rekord['description'];
  14.  
  15. //zmienna xml zapisywana do pliku
  16. $xml='
  17. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>'."nr".
  18. "<all>"."nr" 
  19. ."<aktualnosci>"."nr"
  20. ."<newsy>"."nr"
  21. ."while ($rekord = mysql_fetch_assoc($wynik)){
  22. <news> "."nr"
  23. ."<data>"."nr" 
  24.  ."<b>"."$data"."</b>"."nr"
  25.  ."</data>"."nr"
  26. .'<tresc>'.$tresc.'</tresc>'."nr"
  27. .'</news>'."nr"
  28. ."}" ."nr"
  29. .'</newsy>'."nr"
  30.  .'</aktualnosci>'."nr";
  31.  
  32. ;
  33.  
  34.  
  35.  
  36.  
  37. //zapisywanie do pliku
  38.  
  39. $plik=@fopen("adane.xml","w+");
  40. if(!plik){
  41. echo 'cos nie tak';
  42. }
  43. else{
  44. fwrite($plik,"$xml");
  45. fclose($plik);
  46. echo "dane $xml zostały zapisane do pliku";
  47. }
  48. ?>

Pozatym czy można przekazac za pomocą header do tego pliku coś takiego
  1. <?php
  2. header("Content-type: text/xml; charset=UTF-8");
  3. ?>

Aby przeglądarka poprawenie interpretowała ten plik.
Cysiaczek
  1. <?php
  2. while ($rekord = mysql_fetch_assoc($wynik)){
  3.  
  4. //tutaj reszta, ale pamietaj, że wykona się dla każedo rekordu z osobna
  5.  
  6. }
  7. ?>


Pozdrawiam.
explode
Chyba nie do końca rozumie,mam wstawic phpa w phpie? czy zakończyc w pewnym momencie zapisywanie tak ?> i potem znowu otworzyc znacznik phpa? ja będe w niektorych momentach chciał tylko pobierać dane z bazy
Cysiaczek
Cytat
."while ($rekord = mysql_fetch_assoc($wynik)){
<news> "."\n\r"
."<data>"."\n\r"
."<b>"."$data"."</b>"."\n\r"
."</data>"."\n\r"
.'<tresc>'.$tresc.'</tresc>'."\n\r"
.'</news>'."n\r"
."}" ."\n\r"
.'</newsy>'."n\r"
.'</aktualnosci>'."n\r";

;

Weź to wywal i napisz raz jeszcze, bo jak doczytałem, to mało ataku serca nie dostałem tongue.gifP

  1. <?php
  2. while($rekord = mysql_fetch_assoc($wynik)){
  3. $xml.='<news><data>'.$rekord['data'].'</data></news>'; //o . masz wzór - wypełnij sam
  4. }
  5. ?>


Zdrówka
explode
Słuchaj dalej się nie rozumiemy ja nie chcę wszystkiego ściagąć z bazy danych jak by to zrobił tak jak Ty to bym dostał coś takiego
  1. <?php
  2. <news><data>'.$rekord['data'].'</data></news>
  3. <news><data>'.$rekord['data'].'</data></news>
  4. <news><data>'.$rekord['data'].'</data></news>
  5. <news><data>'.$rekord['data'].'</data></news>
  6. ?>
i.t.d zmienna xml nie moze być w pętli, tylko to zmienna ma być w pętli inne formatowanie tu nie nie da.To co napisałeś to tylko poprawki kosmetyczne
Ja chce dostać np.
  1. <all>
  2.  <dane>ziema</dane>
  3.  <dane>mars</dane>
  4.  <dane>jowisz</kowisz>
  5. </all>

więc nie mogę dać pętli przed all bo bym dostał <all><dane><ziema></dane></all>
Rozumiesz?
Cysiaczek
Przecież ująłem pojedyńczą daną w pętli. Tam jest operator .=
Masz zatem postać PREFIX-CIAŁO-POSTFIX -tylko CIAŁO jest wykonywane w pętli. Reszta nie.
Inaczej: np
  1. <?php
  2. $xml='<all><aktualnosci><newsy>';
  3. $xml.=$dane_z_petli;
  4. $xml.='</all></aktualnosci></newsy>'
  5. ?>


Prościej chyba nie można, ale może się mylę...

Pozdrawiam.
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.