Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z odpowiednim poukładaniem danych z bazy
Forum PHP.pl > Forum > Przedszkole
orange_91
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
webspy
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
orange_91
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.
webspy
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??
orange_91
Właśnie tak.
webspy
Daj czesc kodu z tym zapytaniem i wyswietlaniem to moze cos sie wymysli.
orange_91
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ć.
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.