Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL]mysql, tablica i nieprawidłowe wyświetlanie
Forum PHP.pl > Forum > Przedszkole
pag-r
nie wiem czy to pytanie do działu przedszkole, czy już kawałek wyżej, ale zapytam tutaj
generalnie mam polecenie sql z joinami do dwoch tabel i wynik daje prawidlowy tylko chodzi mi o efekt koncowy. Efektem miał być kalendarz tygodniowy z wpisami w nagłowku data, w wierszach pod datą informacje, co do zrobienia dla danego użytkownika. I to działa zgodnie z zapytaniem z tym że chciałbym zeby nie było takiej sytuacji ze użytkownik jest 2razy na liście w sensie:
user1 | null | null | poprawcowac | null | null | null | null
user2 | null | null | null| null | null | impreza | null
user1 | zaplacic zus | null | null | null | null | null | null
null - to po prostu puste pola w tabeli
a chodzi mi o taki efekt
user1 | zaplacic | null | poprawcowac | null | null | null | null
user2 | null | null | null| null | null | impreza | null
Wiem ze to wina zapytania ale czy nie da sie tego jakos przekazac do tablicy i na niej pracowac?
Pilsener
A co się stanie, gdy będzie:

user1||popracować||null||cośtam
user1||zapłacić||cośtam||null

?

Mi to wygląda na złą strukturę danych, po co te nulle? Dlaczego po prostu nie zrobisz:

user||id_czynnosci
pag-r
tam nie ma nulli smile.gif
ja tylko tak napisalem winksmiley.jpg
  1. <table border="1"><th>Uzytkownik</th>
  2. <th>poniedzialek,<br /> 29 czerwiec 2009</th>
  3. <th>wtorek,<br /> 30 czerwiec 2009</th>
  4. <th>sroda,<br /> 1 lipiec 2009</th>
  5. <th>czwartek,<br /> 2 lipiec 2009</th>
  6. <th>piatek,<br /> 3 lipiec 2009</th>
  7. <th>sobota,<br /> 4 lipiec 2009</th>
  8. <th>niedziela,<br /> 5 lipiec 2009</th>
  9. <tr><td>pag-r</td><td></td><td></td><td></td><td>16:00 - 17:00<br />Czas wreszcie cos zrobic</td><td></td><td></td><td></td></tr>
  10. <tr><td>grzegorz</td><td></td><td></td><td></td><td></td><td>12:00 - 17:00<br />Ty pracujesz i tyle!</td><td></td><td></td></tr>
  11. <tr><td>pag-r</td><td></td><td></td><td></td><td></td><td></td><td></td><td>12:00 - 17:00<br />nowo dodany wpis</td></tr>

jest tak jak powyzej a chcialbym by wygladalo to w podany ponizej sposbo
  1. <table border="1"><th>Uzytkownik</th>
  2. <th>poniedzialek,<br /> 29 czerwiec 2009</th>
  3. <th>wtorek,<br /> 30 czerwiec 2009</th>
  4. <th>sroda,<br /> 1 lipiec 2009</th>
  5. <th>czwartek,<br /> 2 lipiec 2009</th>
  6. <th>piatek,<br /> 3 lipiec 2009</th>
  7. <th>sobota,<br /> 4 lipiec 2009</th>
  8. <th>niedziela,<br /> 5 lipiec 2009</th>
  9. <tr><td>pag-r</td><td></td><td></td><td></td><td>16:00 - 17:00<br />Czas wreszcie cos zrobic</td><td></td><td></td><td>12:00 - 17:00<br />nowo dodany wpis</td></tr>
  10. <tr><td>grzegorz</td><td></td><td></td><td></td><td></td><td>12:00 - 17:00<br />Ty pracujesz i tyle!</td><td></td><td></td></tr>

Nie moze tak zostac, musi byc tylko raz uzytkownik wyswietlony
  1. <?php
  2. $queryDates = "select _dateD from _date order by _dateD limit $limit1, $limit2";
  3. $resultDates = mysql_query($queryDates);
  4. //tabelka
  5. echo "<table border=\"1\"><th>Użytkownik</th>";
  6. while($rowDates = mysql_fetch_array($resultDates))
  7.    {
  8.    echo "<th>";
  9.    setlocale(LC_TIME, "pl_PL");
  10.    $data = explode("-", $rowDates['_dateD']);
  11.    $timestamp = strftime($data[0] . "-" . $data[1] . "-" . $data[2]);
  12.    echo strftime("%A,<br /> %e %B %Y", strtotime($timestamp));
  13.    echo "</th>";
  14.    }
  15.    $queryDates = "select * from _date order by _dateD limit $limit1, $limit2";
  16.    $resultDates = mysql_query($queryDates);
  17. //tabelka
  18. while($rowDates = mysql_fetch_array($resultDates))
  19.    {
  20.    $query = "select _work.* , _users.*, _date.* from _work join _users on _work._idU_fk_W = _users._idU join _date on _work._idD_fk_W = _date._idD where _date._dateD ='" . $rowDates['_dateD'] ."'";
  21.    $result = mysql_query($query);
  22.        while($row = mysql_fetch_array($result))
  23.        {
  24.        $data = explode("-", $rowDates['_dateD']);
  25.        $timestamp = strftime($data[0] . "-" . $data[1] . "-" . $data[2]);
  26.        $weekDay = strftime("%w", strtotime($timestamp));
  27.        echo "<tr>";
  28.        for($i = 1; $i <= 7; $i++)
  29.            {
  30.            if($i == 1) echo "<td>" . $row['_nameU'] . "</td>";
  31.            else echo "<td></td>";
  32.            switch($weekDay)
  33.                {
  34.                case 0: if($i == 2) echo "<td>" . $row['_time'] . "<br />" . $row['_content'] . "</td>"; break;
  35.                case 1: if($i == 3) echo "<td>" . $row['_time'] . "<br />" . $row['_content'] . "</td>"; break;
  36.                case 2: if($i == 4) echo "<td>" . $row['_time'] . "<br />" . $row['_content'] . "</td>"; break;
  37.                case 3: if($i == 5) echo "<td>" . $row['_time'] . "<br />" . $row['_content'] . "</td>"; break;
  38.                case 4: if($i == 6) echo "<td>" . $row['_time'] . "<br />" . $row['_content'] . "</td>"; break;
  39.                case 5: if($i == 7) echo "<td>" . $row['_time'] . "<br />" . $row['_content'] . "</td>"; break;
  40.                case 6: if($i == 8) echo "<td>" . $row['_time'] . "<br />" . $row['_content'] . "</td>"; break;
  41.                }
  42. //             if($rowDates['_idD'] == $row['_idD_fk_W']) echo "<td>" . $row['_content'] . "</td>";
  43.            }
  44.        echo "</tr>";
  45.        }
  46.    }
  47. ?>
Ociu
pag-r, proszę używać bbCode.
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.