Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] wyświetlanie danych o określonej dacie
Forum PHP.pl > Forum > Przedszkole
Hazik
Witam,


Mam zaimplementowany skrypt pobierający datę z formularza. Datę w formacie YYYY-MM-DD wrzucam do zmiennej $data. Chciałbym, żeby z bazy wyświetlały mi się tylko wiersze, w których pole data jest równe mojej zmiennej.

  1.  
  2. $wynik = mysql_query("SELECT * FROM `tabela`ORDER BY `tabela`.`godzina` DESC WHERE `tabela`.`data` == $data'")
  3. or die('Coś poszło nie tak');
  4.  
  5.  


Program nie wyrzuca żadnego błędu, a ja nie mam pojęcia co robię źle. Proszę pomóżcie
nospor
Twoj kod to jeden wielki blad wiec nie mozliwe ze nie jest rzucany komunikat z tego kodu
or die('Coś poszło nie tak');
Sprawdz dokladniej smile.gif
markuz
Przeczytaj: Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy
Pokaż błędy i całość kodu a nie tylko fragment.
Hazik
Błędów brak.


Notice: Undefined index: nasza_nazwa in C:


  1. <form method="post">
  2. <script>DateInput('nasza_nazwa', true, 'YYYY/MON/DD')</script>
  3. <input type="submit" />
  4. </form>
  5.  


  1. <?php
  2.  
  3.  
  4. $data = $_POST['nasza_nazwa'];
  5.  
  6.  
  7.  
  8. echo $data;
  9.  
  10. $connection = @mysql_connect('localhost', 'login', 'haslo')
  11. or die('Brak połączenia z serwerem MySQL');
  12. $db = @mysql_select_db('baza', $connection)
  13. or die('Nie mogę połączyć się z bazą danych');
  14.  
  15.  
  16. $wynik = mysql_query("SELECT * FROM 'tabela' ORDER BY `tabela`.`godzina` DESC WHERE `tabela`.`data` = $data")
  17. or die('Coś poszło nie tak');
  18.  
  19.  
  20. if(mysql_num_rows($wynik) > 0) {
  21.  
  22.  
  23. echo "<table cellpadding=\"5\" border=1>";
  24. echo "<tr>";
  25. echo "<td>Lp:</td>";
  26. echo "<td>Klient:</td>";
  27. echo "<td>Data:</td>";
  28. echo "<td>Godzina:</td>";
  29.  
  30.  
  31.  
  32. echo "</tr>";
  33. echo "<tr>";echo "</tr>";echo "<tr>";echo "</tr>";echo "<tr>";echo "</tr>";echo "<tr>";echo "</tr>";
  34. while($r = mysql_fetch_array($wynik)) {
  35. echo "<tr>";
  36. echo "<td>".$r['id']."</td>";
  37. echo "<td>".$r['klient']."</td>";
  38. echo "<td>".$r['data']."</td>";
  39. echo "<td>".$r['godzina']."</td>";
  40.  
  41.  
  42.  
  43. echo "</tr>";echo "<tr>";echo"</tr>";
  44.  
  45. echo "<tr>";echo "</tr>";
  46. }
  47. echo "</table>";
  48. }
  49.  
  50.  
  51. ?>
  52.  
nospor
Jesli nie widzisz
"Coś poszło nie tak"

znaczy ze on w ogole tego kodu nie wykonuje, gdyz ten kod powinien zwrocic taki wlasnie blad. Pewnie wyklada sie gdzies wczesniej

Daj dla pewnosci

  1.  
  2. echo 'Widzisz mnie?';
  3. $wynik = mysql_query("SELECT * FROM 'tabela' ORDER BY `tabela`.`godzina` DESC WHERE `tabela`.`data` = $data")
  4. or die('Coś poszło nie tak');
  5.  
  6. echo 'A mnie?';
markuz
Usuń wszystkie @ z kodu, jeszcze raz przeczytaj Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy i zastosuj tą wiedzę. Głównie chodzi o fragment:
Kod
    error_reporting(E_ALL);
    ini_set('display_errors','1');
Hazik
Zwraca: "Coś poszło nie tak". w każdej innej konfiguracji działa. Chodzi mi o same porównanie daty. To o czym piszesz mam na samym początku kodu, długo przed tym wyświetlaniem.

  1. <?php session_start();
  2. require_once('db.php');
  3. error_reporting(E_ALL);
  4. ini_set('display_errors','1');
  5. ?>
nospor
Cytat
w każdej innej konfiguracji działa
Nie, w kazdej innej konfiguracji tez ci nie dziala.

dobrze,a teraz zamiast

or die('Coś poszło nie tak');

wstaw
or die(mysql_error());

a zobaczysz blad jaki zwraca ci baza danych
Hazik
  1. $wynik = mysql_query("SELECT * FROM tabela ORDER BY `tabela`.`godzina` DESC WHERE `tabela`.`data` = $data")


You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE `tabela`.`data` =' at line 1
nospor
Dobrze, teraz zajrzyj do manuala mysql i zobacz jaka jest kolejnosc ORDER BY oraz WHERE w zapytaniach typu SELECT
Hazik
Mistrzu uwielbiam Cięsmile.gif

  1. $wynik = mysql_query("SELECT * FROM tabela WHERE `tabela`.`data` = '".$data."' ORDER BY `tabela`.`godzina` ASC")
  2.  
  3.  

viking
Teraz jeszcze poczytaj czym jest sql injection oraz dlaczego nie powinieneś używać rozszerzenia mysql.
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.