Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php - mysql wyswietlanie danych od-do
Forum PHP.pl > Forum > PHP
tygrys
Witam
mam pytanie jak zrobić wyświetlanie informacji z tabeli mysql z zakresu od - do tak aby zakres od do wpisał użytkownik tzn wybrał przedział daty od do

baza
kontahent
nazwa
ilosc
cena
data
nr

i z tabeli data użytkownik wybiera zakres dat i ma mu się wyswietlic zamówienia z danego okresu
jak to zrobic??
darko
  1. SELECT * FROM tabela WHERE data>='$data_od' AND data<='$data_do'


gdzie $data_od i $data_do to przysłane z formularza daty w formacie zgodnym z formatem pola data w Twojej bazie (timestamp?)

To jak timestamp, to dla przykładowego formatu daty DD-MM-YYYY trzeba dokonać konwersji do formatu YY-MM-DD HH:MM:SS, np.

  1. function date2Timestamp($date_DD_MM_YYYY_format) {
  2. $tmp = explode("-",$date_DD_MM_YYYY_format);
  3. return $tmp[2]."-".$tmp[1]."-".$tmp[0]." 00:00:00";
  4. }
  5. // i wtedy np.
  6. if(isset($_REQUEST["data_od"]) {
  7. $data_od = date2Timestamp($data_od);
  8. }
  9. if(isset($_REQUEST["data_do"]) {
  10. $data_do = date2Timestamp($data_do);
  11. }
  12.  
  13. $result = mysql_query("SELECT * FROM tabela where data>='$data_od' and data<='$data_do'");
  14. // no i dalej fetch array i zapis do tablic(y)
  15.  
tygrys
Dzieki kolego pomogłes smile.gif
darko
Jeśli masz varchar to zamień w bazie typ pola na datetime lub timestamp.

Zależy od tego, jak wyciągasz dane, np.

  1. $kontahenci = array();
  2. $nazwy = array();
  3. $ilosci = array();
  4. $ceny = array();
  5. $daty = array();
  6. $numery = array();
  7.  
  8. $query = "SELECT * FROM tabela where data>='$data_od' and data<='$data_do'";
  9.  
  10. $result = mysql_query($query);
  11. if (!$result) {
  12. die('Invalid query: ' . mysql_error()."<br />zapytanie:<br />$query<br />");
  13. }
  14. while($tmp = mysql_fetch_array($result, MYSQL_NUM)) {
  15. $kontahenci[]=$tmp[0];
  16. $nazwy[]=$tmp[1];
  17. $ilosci[]=$tmp[2];
  18. $ceny[]=$tmp[3];
  19. $daty[]=$tmp[4];
  20. $numery[]=$tmp[5];
  21. }
  22.  
  23. echo "sumaryczna ilość ".array_sum($ilosci)." całkowita cena ".array_sum($ceny)."<br />";


O to chodziło?

ps. dane już sobie sformatuj samodzielnie.
Pozdrawiam!

ps2. sprytnie edytujesz swoje posty, tak, że wygląda jakbym z własnej woli podawał Ci wszystko na talerzu winksmiley.jpg

i pokaż treść wyplutego zapytania

Sprawdź dane do połączenia z bazą danych (host, login i hasło ew. port), przekaż link do połączenia do mysql_query jako drugi parametr i powinno śmigać.

$db = new mysqli('localhost', 'piwo', 'piwo', 'piwo');
tygrys
mam error Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource i

bład przy tej linijce while($tmp = mysql_fetch_array($result, MYSQL_NUM))

sory kolego ale sporo czasu nad tym siedziałem a za dobry w tym nie jestem sad.gif


Warning: mysql_query() [function.mysql-query]: Access denied for user 'meade'@'localhost' (using password: NO) in /home/meade/domains/rezultaty.php on line 42

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/meade/domains/rezultaty.php on line 42
Invalid query: Access denied for user 'meade'@'localhost' (using password: NO)
zapytanie:

całosc wyglada tak
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  4. <title>Rezultaty wyszukiwania</title>
  5. </head>
  6. <body>
  7. <?php
  8. // utworzenie krótkich nazw zmiennych
  9. $metoda_szukania=$_POST['metoda_szukania'];
  10. $wyrazenie=$_POST['wyrazenie'];
  11. $wyrazenie1=$_POST['wyrazenie1'];
  12.  
  13. $wyrazenie = trim($wyrazenie);
  14.  
  15. if (!$metoda_szukania || !$wyrazenie)
  16. {
  17. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  18. }
  19.  
  20. {
  21. $metoda_szukania = addslashes($metoda_szukania);
  22. $wyrazenie = addslashes($wyrazenie);
  23. $wyrazenie1 = addslashes($wyrazenie1);
  24. }
  25.  
  26. $db = new mysqli('localhost', 'piwo', 'piwo', piwo');
  27.  
  28. if (mysqli_connect_errno())
  29. {
  30. echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  31. exit;
  32. }
  33. $kontahent = array();
  34. $nazwy = array();
  35. $ilosc = array();
  36. $cena = array();
  37. $data = array();
  38. $numery = array();
  39. $zapytanie = " SELECT * FROM klient WHERE data>='$wyrazenie' AND data<='$wyrazenie1'";
  40. $result = mysql_query($query);
  41. if (!$result) {
  42. die('Invalid query: ' . mysql_error()."<br />zapytanie:<br />$query<br />");
  43. }
  44. while($tmp = mysql_fetch_array($result, MYSQL_NUM)) {
  45. $kontahent[]=$tmp[0];
  46. $nazwy[]=$tmp[1];
  47. $ilosc[]=$tmp[2];
  48. $cena[]=$tmp[3];
  49. $data[]=$tmp[4];
  50. $numery[]=$tmp[5];
  51. }
  52.  
  53. echo "sumaryczna ilość ".array_sum($ilosc)." całkowita cena ".array_sum($cena)."<br />";
  54. $wynik = $db->query($zapytanie);
  55.  
  56. $ile_znalezionych = $wynik->num_rows;
  57.  
  58. echo '<table border="1">';
  59. echo '<tr><td>ID</td><td>Data</td><td>Kontrahent</td><td>Nazwa towaru</td><td>Ilość</td><td>Cena</td><td>nr WZ</td></tr>';
  60.  
  61. for ($i=0; $i <$ile_znalezionych; $i++)
  62. {
  63. $wiersz = $wynik->fetch_assoc();
  64. echo '<tr><td><p><strong>'.($i+1).'. Nr: </td>';
  65. echo '<td>'.$wiersz['data'].'</td>';
  66. echo '<td>'.$wiersz['kontrahent'].'</td>';
  67. echo '<td>'.$wiersz['nazwatowaru'].'</td>';
  68. echo '<td>'.$wiersz['ilosc'].'</td>';
  69. echo '<td>'.$wiersz['cena'].'</td>';
  70. echo '<td>'.$wiersz['nrwz'].'</td></tr>';
  71. echo '</br>';
  72.  
  73. echo '</p>';
  74.  
  75.  
  76. }
  77.  
  78.  
  79.  
  80. $wynik->free();
  81. $db->close();
  82.  
  83. ?>
  84.  
  85. </body>
  86. </html>



hasła i reszta jest oki bo reszta skryptu działa

$db = new mysqli('localhost', 'piwo', 'piwo', 'piwo');
prawidłowo jest
$db = new mysqli('localhost', 'meade_piwo', 'piwo', 'meade_piwo');
tez nie działa
darko
http://php.net/manual/pl/mysqli-result.fetch-array.php

użyj w odpowiedni sposób mysqli_fetch_array zamiast mysql_fetch_array
tygrys
wszystko jest z małych liter
w dostepie do bazy raczej nie powinno byc problemu poniewaz dodaje informacje do bazy bez problemu

zamieniłem i dalej problem
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  4. <title>Rezultaty wyszukiwania</title>
  5. </head>
  6. <body>
  7. <?php
  8. $db = new mysqli("localhost", "meade_piwo", "piwo", "meade_piwo");
  9. $result = mysqli_query($query);
  10. if (!$result) {
  11. die('Invalid query: ' . mysql_error()."<br />zapytanie:<br />$query<br />");
  12. }
  13. // utworzenie krótkich nazw zmiennych
  14. $metoda_szukania=$_POST['metoda_szukania'];
  15. $wyrazenie=$_POST['wyrazenie'];
  16. $wyrazenie1=$_POST['wyrazenie1'];
  17.  
  18. $wyrazenie = trim($wyrazenie);
  19.  
  20. if (!$metoda_szukania || !$wyrazenie)
  21. {
  22. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  23. }
  24.  
  25. {
  26. $metoda_szukania = addslashes($metoda_szukania);
  27. $wyrazenie = addslashes($wyrazenie);
  28. $wyrazenie1 = addslashes($wyrazenie1);
  29. }
  30.  
  31.  
  32. if (mysqli_connect_errno())
  33. {
  34. echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  35. }
  36. $kontahent = array();
  37. $nazwy = array();
  38. $ilosc = array();
  39. $cena = array();
  40. $data = array();
  41. $numery = array();
  42. $zapytanie = " SELECT * FROM klient WHERE data>='$wyrazenie' AND data<='$wyrazenie1'";
  43.  
  44. while($tmp = mysqli_fetch_array($result, MYSQL_NUM)) {
  45. $kontahent[]=$tmp[0];
  46. $nazwy[]=$tmp[1];
  47. $ilosc[]=$tmp[2];
  48. $cena[]=$tmp[3];
  49. $data[]=$tmp[4];
  50. $numery[]=$tmp[5];
  51. }
  52.  
  53. echo "sumaryczna ilość ".array_sum($ilosc)." całkowita cena ".array_sum($cena)."<br />";
  54. $wynik = $db->query($zapytanie);
  55.  
  56. $ile_znalezionych = $wynik->num_rows;
  57.  
  58. echo '<table border="1">';
  59. echo '<tr><td>ID</td><td>Data</td><td>Kontrahent</td><td>Nazwa towaru</td><td>Ilość</td><td>Cena</td><td>nr WZ</td></tr>';
  60.  
  61. for ($i=0; $i <$ile_znalezionych; $i++)
  62. {
  63. $wiersz = $wynik->fetch_assoc();
  64. echo '<tr><td><p><strong>'.($i+1).'. Nr: </td>';
  65. echo '<td>'.$wiersz['data'].'</td>';
  66. echo '<td>'.$wiersz['kontrahent'].'</td>';
  67. echo '<td>'.$wiersz['nazwatowaru'].'</td>';
  68. echo '<td>'.$wiersz['ilosc'].'</td>';
  69. echo '<td>'.$wiersz['cena'].'</td>';
  70. echo '<td>'.$wiersz['nrwz'].'</td></tr>';
  71. echo '</br>';
  72.  
  73. echo '</p>';
  74.  
  75.  
  76. }
  77.  
  78.  
  79.  
  80. $wynik->free();
  81. $db->close();
  82.  
  83. ?>
  84.  
  85. </body>
  86. </html>


wyswietla sie

Warning: mysqli_query() expects at least 2 parameters, 1 given in /home/meade/domains/rezultaty.php on line 9
Invalid query:
zapytanie:


dzieki ze jestes taki cierpliwy smile.gif
darko
  1. $db = new mysqli("localhost", "meade_piwo", "piwo", "meade_piwo");
  2. $query = "SELECT * FROM klient WHERE data>='$wyrazenie' AND data<='$wyrazenie1'";
  3. $result = $db->query($query);
  4. if (mysqli_connect_errno()) {
  5. printf("Connect failed: %s", mysqli_connect_error());
  6. exit();
  7. }
  8.  
  9. $row = $result->fetch_array(MYSQLI_NUM);
  10. //i teraz masz $row[0], $row[1], $row[2] itd.
  11.  
tygrys
dalej error
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.