Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Pobieranie danych z 2 tablic
RubiX
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


Witam muszę pobrać dane z 2 tablic (zakupy i platnosci) aby stworzyć tzw księgę przychodów i rozchodów.

Z artów w necie napisałem takie 2 polecenia:

  1. <?php
  2. $wynik = mysql_query("SELECT * FROM zakupy, platnosci WHERE zakupy.z_data>='$od' AND zakupy.z_data<='$do' AND platnosci.p_data>='$od' AND platnosci.p_data<='$do' ORDER BY zakupy.z_data DESC, platnosci.p_data DESC");
  3.  
  4. $wynik = mysql_query("SELECT * FROM zakupy INNER JOIN platnosci WHERE z_data.zakupy>='$od' AND z_data.zakupy<='$do' AND p_data.platnosci>='$od' AND p_data.platnosci<='$do' ORDER BY z_data.zakupy DESC, p_data.platnosci DESC");
  5. ?>


gdzie ani 1 ani 2 nie zwraca mi rekordów
w sortowaniu :
$od = przesłane metodą post np 2009-03-01
$do = przesłane metodą post np 2009-03-31

Czyli pobiera mi rekordy z 2 tablic między tymi datami.
Oczywiście wyżej w kodzie mam $od = $_POST['od']; żeby nie było nieporozumień (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Czy da sięto jakoś poprawnie skonstruować ?

Ten post edytował RubiX 22.03.2009, 19:11:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Noddi
post
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 7
Dołączył: 25.12.2004
Skąd: Kraków

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


  1. <?php
  2. $wynik = mysql_query("SELECT z.z_id, z.z_nazwa, z.z_data, p.p_id, p.p_nazwa, p.p_data FROM zakupy AS z, platnosci AS p WHERE (z.z_data BETWEEN '" . $od . "' AND '" . $do . "') AND (p.p_data BETWEEN '" . $od . "' AND '" . $do . "') ORDER BY z.z_data, p.p_data DESC");
  3.  
  4. echo "<pre>";
  5. while($dane = mysql_fetch_array($wynik))  {
  6.    print_r($dane);
  7. }
  8. echo "</pre>";
  9. ?>


Nie używaj aliasów w nazwach zmiennych kiedy chcesz je wyświetlić z tablicy, alias był wykorzystywany tylko w zapytaniu do bazy.

Pozdrawiam.

edit: Jeżeli te tabele nie są w żadnej relacji(a z tego co piszesz to nie) to lepiej, rozbić to na 2 zapytania do bazy danych:

  1. <?php
  2. $wynik1 = mysql_query("SELECT z.z_id, z.z_nazwa, z.z_data FROM zakupy AS z WHERE z.z_data BETWEEN '" . $od . "' AND '" . $do . "' ORDER BY z.z_data DESC");
  3. ?>


  1. <?php
  2. $wynik2 = mysql_query("SELECT p.p_id, p.p_nazwa, p.p_data FROM platnosci AS p WHERE p.p_data BETWEEN '" . $od . "' AND '" . $do . "' ORDER BY p.p_data DESC");
  3. ?>


Ten post edytował Noddi 22.03.2009, 20:43:07
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 07:19