Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wyswietlaniem danych z bazy danych.
jarekjr
post 27.10.2008, 12:09:00
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.10.2008

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


skrypt pobiera z bazy danych dane z kolumn 'rzad' i 'miejsce' i wyświetla je na stronie w takiej formie:
Rząd: 1
miejsce: 1

Rząd: 1
miejsce: 2

Rząd: 3
miejsce: 3

Rząd: 3
miejsce: 5

Rząd: 10
miejsce: 9

... itd

A ja chciałbym go przerobić tak, żeby wyświetlało w taki sposób:


Rząd: 1
miejsce: 1, 2

Rząd: 3
miejsce: 3, 5


Rząd: 10
miejsce: 9

W tabeli osoby są pola:
lp(int, auto_increment, primary key), nazwisko(char),rzad(int),miejsce(int), data(date),seans(int)
a cały skrypt wyglada tak:
Kod
<?php
  
  $seans = $_POST['seans'];
  $data =$_POST['data'];
  // te dane sa z formularza
  
  if(!$data)
              {
              echo' Nie podałes daty.';
              echo '<br/><a href="rez.php">szukaj od nowa </a>';
              exit;
              }
              if (!get_magic_quotes_gpc())
                      {
                      $seans=addslashes($seans);
                      $data=addslashes($data);
                      }
  
  $link = mysql_connect("localhost", "root", "*****")
      or die ("Nie można się połączyć");
  
  mysql_select_db ("kino") or die ("Nie mozna wybrać bazy danych");
  
  
  $query = " SELECT rzad, miejsce FROM OSOBY WHERE data like'%".$data."%' and seans like'%".$seans."%' order by rzad";
  $result = mysql_query ($query) or die ("Zapytanie zakończone niepowodzeniem");
  
              $ile_znalezionych=mysql_num_rows($result);
  
              if ($ile_znalezionych<1)
   {
   echo'<p>Nie ma rzadnych rezerwacji. Wszystkie miejsca są wolne. </p>';
   }
  else
   {
          echo '<p>Na wybrany dzień: '.$data.' seans:'.$seans.' zarezerwowane są następujące miejsca:  ';
  $ile_znalezionych=mysql_num_rows($result);
              
              for($i=0;$i<$ile_znalezionych;$i++)
              {
              $wiersz=mysql_fetch_assoc($result);
              $i+1;
              echo '<p><strong> Rząd: ';
       echo stripslashes($wiersz['rzad']);
           echo '</strong>
  miejsce: ';
       echo stripslashes($wiersz['miejsce']);
       echo '</p>';
              }
  
   }
  
  
  mysql_close($link);
  
  
   ?>


Przypuszczam ze to trzeba cos pokombinowac z petlami albo z if else ale nie za bardzo wiem jak to zrobic.
Prosze o pomoc bo to jest dla mnie bardzo wazne.
Z góry wielkie dzięki.
Go to the top of the page
+Quote Post
YaQzi
post 27.10.2008, 18:41:35
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 31
Dołączył: 12.10.2008
Skąd: WAT

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


Może tak?

  1. <?php
  2. $query = " SELECT rzad, miejsce
  3.            FROM OSOBY
  4.            WHERE data like'%".$data."%' and seans like'%".$seans."%'
  5.            order by rzad";
  6.  
  7. $result = mysql_query($query) or die ("Zapytanie nieudane!");
  8.  
  9. $rzad = 0;
  10. $tresc = "";
  11.    while($linia = mysql_fetch_row($result)) {
  12.        /*
  13.         linia[0] - rzad
  14.         linia[1] - miejsce
  15.         */
  16.        $miejsce = $linia[1];
  17.  
  18.        if($rzad != $linia[0]){
  19.            $rzad = $linia[0];
  20.            $tresc .= "</br></br><b>Rząd $rzad:</b></br>
  21.                    miejsce: $miejsce";
  22.        }
  23.        else{
  24.            $tresc .= ", $miejsce";
  25.        }
  26.  
  27.    }
  28. echo $tresc;
  29. ?>


Ten post edytował YaQzi 27.10.2008, 18:50:42


--------------------
 Wszystkie wielkości świata nie są tyle warte, co dobra przyjaźń...
Go to the top of the page
+Quote Post
jarekjr
post 27.10.2008, 19:54:40
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.10.2008

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


Wielkie dzięki - to działa. Nie za bardzo wiem jak, ale działa! smile.gif
Jeszcze tylko jakbyś mi to objaśnił mniej więcej co ty tam zrobiłeś to by było SUPER. a dokładniej ten fragment kodu:
Kod
$rzad = 0;
$tresc = "";
    while($linia = mysql_fetch_row($result)) {
        /*
        linia[0] - rzad
        linia[1] - miejsce
        */
        $miejsce = $linia[1];

        if($rzad != $linia[0]){
            $rzad = $linia[0];
            $tresc .= "</br></br><b>Rząd $rzad:</b></br>
                    miejsce: $miejsce";
        }
        else{
            $tresc .= ", $miejsce";
        }

    }

Z tego co ja się znam (a znam się znam) to $linia[] to są tablice jednowymiarowe - ale mogę się strasznie mylić winksmiley.jpg
Wiec proszę Cię oświeć mnie smile.gif
Go to the top of the page
+Quote Post
Lejto
post 27.10.2008, 19:58:40
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


ten fragment kodu formatuje dane z mysql i wyświetla je w pętli while (wszystkie)
ps. dodaj tag to tematu


--------------------
Go to the top of the page
+Quote Post
jarekjr
post 27.10.2008, 20:00:50
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.10.2008

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


tyle to i ja wiem ale chodzi mi o te zeminne $linia[0] i $linia[1]
Go to the top of the page
+Quote Post
YaQzi
post 27.10.2008, 20:10:46
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 31
Dołączył: 12.10.2008
Skąd: WAT

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


while($linia = mysql_fetch_row($result)) {
}


prosta pętla while smile.gif
każdy wiersz z bazy danych w $result jest zamieniany na tablicę $linia w kolejności podanej w zapytaniu SELECT
czyli:
linia[0] -> rzad
linia[1] -> miejsce

if($rzad != $linia[0])
sprawdza czy rząd w kolejnym wierszu zmienił się.
Jeśli tak, dopisuje do $treści nowy wiersz Rząd: i od razu Miejsce.

else
Jeśli nie, dopisuje do $treści jedynie ", $miejsce"

Cieszę się, że mogłem pomóc. smile.gif

Ten post edytował YaQzi 27.10.2008, 20:16:44


--------------------
 Wszystkie wielkości świata nie są tyle warte, co dobra przyjaźń...
Go to the top of the page
+Quote Post
jarekjr
post 27.10.2008, 20:25:22
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.10.2008

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


aaa załapałem już.
Oj ja tez się bardzo ciesze ze mogłeś pomóc.
Jeszcze raz DZIEKI:)
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 Wersja Lo-Fi Aktualny czas: 19.06.2025 - 01:03