Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zapis do pliku wyniku pętli z kilku tabel
Forum PHP.pl > Forum > Przedszkole
motor
Witam wszystkich , mam taki problem chce zapisać wynik moich pętli do pliku , częściowo mi się to udaje jednak problem polega na tym że do pliku zapisuje mi się tylko jeden wpis z tabeli zdjęć a powinno być ich min 3

Wynik powinien być taki
nazwa miasta i po 3 zdjęcia do każego ,
a ja mam miasta i do kazdeg po 1 zdjęciu oto mój kod

  1. <?php  
  2. while ($a_row =mysql_fetch_array ($result) ) //petla1
  3.                 {
  4.                 
  5.                  print "$a_row[miasto] $a_row[address]";
  6.  
  7.                 $query = "SELECT * FROM agents WHERE id = $a_row[owner]";
  8.                 $output = mysql_query("$query",$link);
  9.             
  10.                 while ($image_roww =mysql_fetch_array ($output) )
  11.                     {
  12.                 $ulicaa = $image_roww[agentulica];
  13.                 }
  14.  
  15. $wszystko1="$ulicaa";
  16. //////////////////////////////////////// Tu mam problem zdjecia z tabeli 
  17.                 $query = "SELECT * FROM tbl_files WHERE prop_num = $a_row[id] ORDER BY filename LIMIT
     3 "
    ;
  18.                 $output = mysql_query("$query",$link);
  19.                 while ($image_row =mysql_fetch_array ($output) )
  20.                     {
  21. $sciezkadozdjecia= "http://www.strona.pl"."wiekszy_"."$image_row[prop_num]$image_row[filename]";
  22.                 }                    
  23.  
  24. $sciezkacala="<IMG src=\"$sciezkadozdjecia\" width=\"290\" >&nbsp;";
  25.  
  26.         $zmm.="$sciezkacala";
  27.         }
  28. ////////////////////////////////////////////////////////////////////////////////    
  29.  
  30. $zm.="$wszystko1 $zmm ";  // zapis wszystkiego do pliku 
  31.  
  32.                    
  33.           }    // koniec petli 1
  34.         
  35.         
  36.             $katalog = "zapis";
  37.             $nazwa = $katalog.'/'."$cur_page.html"; 
  38. if (!file_exists($nazwa)) {
  39.             $plik = fopen($nazwa, "w");
  40.  
  41.             //$dane = $zm; 
  42.             //fputs ($plik, $dane);
  43.             fputs ($plik, $zm);
  44.             fclose ($plik);
  45.             }
  46. ?>
konys
Po pierwsze - po to wymyślono relacyjne bazy danych, żeby można było tworzyć relacje między tabelami i wyciągać połączone dane. Przy odrobinie pracy pewnie udałoby się wszystkie interesujące Cię dane wyciągnąć jednym zapytaniem smile.gif . Wywoływanie zapytań w pętli może odbić się czkawką serwerowi SQL.
Po drugie - pobierasz dane w pętli, lecz ich w niej nie przetwarzasz. Np. po wykonaniu
Cytat
                while ($image_roww =mysql_fetch_array ($output) )
                    {
                $ulicaa = $image_roww[agentulica];
                }

dostaniesz ostatni rekord zapytania. Tak samo postąpiłeś pobierając zdjęcia:
Cytat
                while ($image_row =mysql_fetch_array ($output) )
                    {
$sciezkadozdjecia= "http://www.strona.pl"."wiekszy_"."$image_row[prop_num]$image_row[filename]";
                } 

Czyli dostajesz ostatnie zdjęcie rezultatu. Jeśli chcesz dodać wszystkie zdjęcia, wykonaj dodawanie wewnątrz pętli:
  1. <?php
  2.  
  3. while ($image_row =mysql_fetch_array ($output) ){
  4.  $sciezkadozdjecia= "http://www.strona.pl"."wiekszy_"."$image_row[prop_num]$image_row[filename]";
  5.  
  6.  $sciezkacala="<IMG src=\"$sciezkadozdjecia\" width=\"290\" >&nbsp;";
  7.  
  8.  $zmm.="$sciezkacala";
  9.  }
  10.  
  11. ?>


Chociaż osobiście namawiam do wykonania całości jednym zapytaniem SQL - program będzie szybszy, przejrzystszy i łatwiejszy w modyfikacjach.
motor
No tak dzięki za pomoc, powalczę z tymi relacjami
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.