Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Problem z odpowiednim poukładaniem danych z bazy
orange_91
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 14.02.2010
Skąd: Gdańsk

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


Witam
Mam pewien problem z napisaniem skryptu, sprawa pewnie jest prosta ale jakoś coś robię źle, być może mój pogląd na ten skrypt jest zły.
Do celu. Mianowicie chcę napisać skrypt który z bazy my-sql z tabeli "X" wyciągnie odpowiednie dane i je ułoży. Chcę by dane były ułożone odpowiednio za pomocą daty. W grupkach a dokładniej w nagłówku jest data a poniżej w tabeli są dane z różnych wierszy tabeli "X" ( my-sql'a), a gdy wszystkie rekordy opowiadające danej dacie są wyświetlone to pojawia się kolejna data z odpowiednimi dla niej danymi i tak dalej. Data jest zapisana w postaci liczbowej int(8) czyli np: "20100214", wiem że należy porównywać daty z sobą. A jak dalej już nie jest łatwo. bo chyba trzeba pobrać ilość wierszy jakie spełniają warunek danej daty a tego nie umie.
data jest w $data, wyświetlona ma być $data i $nazwa w taki sposób:

$data (np. 20100214)
$nazwa
$nazwa
$nazwa

$data (np. 20100213)
$nazwa
$nazwa
$nazwa

Mam nadzieje że chociaż mnie zrozumiecie o co chodzi. I fajnie by było jak byście pomogli bo ja już wymiękam dry.gif
Go to the top of the page
+Quote Post
webspy
post
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


ja dopiero tez sie uczę ale ja bym to tak rozwiazal:

  1. $sql = "SELECT * FROM `nazwa_tabeli` ORDER BY `nazwa_tabeli`.`data` DESC";
  2. $wykonaj = mysql_query ($sql);
  3. while($wiersz=mysql_fetch_array($wykonaj)) {
  4. echo $wiersz['data'];
  5. //potem w tym zapytaniu dtugie zapytanie
  6. $zapytanie = "SELECT * FROM nazwa_tabeli WHERE `data` LIKE '".$wiersz['data']."'";
  7. $wykonaj = mysql_query ($zapytanie);
  8. while($wiersz=mysql_fetch_array ($wykonaj)) {
  9. echo $wiersz['nazwa'];
  10. }
  11.  
  12.  
  13. }


Dopiero się uczę wieć moze cos byc zle lub na piechote ale wydaje mi sie ze takie rozwiazanie powinno dzialac
Go to the top of the page
+Quote Post
orange_91
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 14.02.2010
Skąd: Gdańsk

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


Twoje rozwiązanie jest dość proste i właśnie takiego potrzebowałem ale jest pewien szkopuł ponieważ wyświetla on tylko jedną datę z odpowiadającymi jej nazwami.
A chodzi o to by wszystkie daty wyświetlało z ich danymi.
Go to the top of the page
+Quote Post
webspy
post
Post #4





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Cytat(orange_91 @ 15.02.2010, 00:39:56 ) *
Twoje rozwiązanie jest dość proste i właśnie takiego potrzebowałem ale jest pewien szkopuł ponieważ wyświetla on tylko jedną datę z odpowiadającymi jej nazwami.
A chodzi o to by wszystkie daty wyświetlało z ich danymi.


Czyli wyswietla tylko jakby jeden raz wyniki z jedna data??
np.

data
nazwa
nazwa
nazwa

i tu dalej nie daje nastepnej daty??
Go to the top of the page
+Quote Post
orange_91
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 14.02.2010
Skąd: Gdańsk

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


Właśnie tak.
Go to the top of the page
+Quote Post
webspy
post
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Daj czesc kodu z tym zapytaniem i wyswietlaniem to moze cos sie wymysli.
Go to the top of the page
+Quote Post
orange_91
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 14.02.2010
Skąd: Gdańsk

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


Trochę ostatnio nie byłem przy komputerze wiec dopiero teraz odpisuje.
Kod wygląda tak:
Kod
<?
require "connect.php";
connection();


      $sql = "SELECT * FROM `dmusic_dl2` ORDER BY `dmusic_dl2`.`data` DESC";

      $wykonaj = mysql_query ($sql);

      while($wiersz=mysql_fetch_array($wykonaj)) {
                $data = $wiersz['data'];
         
             echo "<h4> $data </h4>";
            
             $zapytanie = "SELECT * FROM `dmusic_dl2` WHERE `data` LIKE '".$wiersz['data']."'";

             $wykonaj = mysql_query ($zapytanie);

            echo '<br><br><br>';
            echo '<table>';
             while($wiersz=mysql_fetch_array ($wykonaj)) {
                
                $nazwa = $wiersz['nazwa'];
                $dl_link =$wiersz['dl_link'];
                $typ = $wiersz['typ'];
                
             
             echo '<tr>';
            echo "<td> $typ </td>";
            echo "<td> $nazwa </td>";
            echo "<td> $dl_link </td>";
            echo '</tr>';
            
             }
            echo '</table>';

      
  }
  
?>


i wynik jest tego taki:


i dalej dat nie wyświetla. Tabela która tu jest w kodzie nic nie zmienia - niczego nie blokuje. Myślę że tu może trzeba dać jeszcze jedną pętlę ale nie wiem gdzie. I jak patrze w ten kod to nie wiem czemu działa tak a nie inaczej. przecież jest while i w niej drugie while, i powinny się wykonywać aż wyświetlą się wszystkie daty z danymi.

ok. Problem rozwiązany snitch.gif
Znajomy pomógł, ale należało zrobić w bazie nową kolumnę id gdzie nadawany jest unikalny id bo inaczej się nie dało.

webspy twoja pomoc się przydała bo twój kod posłużył za kod na którym oparte jest rozwiązanie. Należało jeszcze wprowadzić if które sprawdzało datę i dalej zawierało instrukcje. Oraz trochę tam trzeba było pozmieniać.
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 Aktualny czas: 20.08.2025 - 08:45