Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pomoc przy zapytaniu
Forum PHP.pl > Forum > Przedszkole
-Lashlo86-
Chciałem napisać zapytanie zwracające 1 lub 0 z bazy

podaj.php
  1. <?php
  2.  
  3. $time=8:00:00;
  4.  
  5. $showReservation = "SELECT * FROM reservations WHERE Date='$_POST[Date]' AND Room='$_POST[Room]' AND (( $time > hour AND $time <= hour2);
  6. if (!mysql_query($showReservation,$con))
  7. {
  8. die('Error: ' . mysql_error());
  9. }
  10.  
  11. if($showReservation>0)
  12. {
  13. $zm=1;
  14. }else
  15. $zm=0;
  16.  
  17. echo "Statuss=".$zm;
  18.  
  19. ?>

A tak wysyłam z Flasha

FLASH
  1.  
  2. var showReservation:LoadVars = new LoadVars();
  3. function showaReservation() {
  4.  
  5. showReservation.date = date_txt.text;
  6. showReservation.room = room_txt.text;
  7. showReservation.sendAndLoad("podaj.php",receiveVariablesa,"GET");
  8. }
  9.  
  10. var receiveVariablesa:LoadVars = new LoadVars();
  11. receiveVariablesa.onLoad = function() {
  12.  
  13. status1_txt.text = this.Statuss; //wyświetlam wartość w polu
  14.  


Dostaje tylko undefined


Lashlo86
W kodzie flesha jest pomyłka. Nie zmieniłem przy wklejaniu

showReservation.sendAndLoad("podaj.php",receiveVariablesa,"POST");

Ma ktoś jakiś pomysł?

RiE
A gdzie masz pobranie wynikow z bazy? Wysylasz zapytanie do bazy, ale nic z niej nie zwracasz
Lashlo86
Słaby jestem w PHP, ale to nie jest tak , że jeśli będzie jakiś rekord spełniający te kryteria to $showReservation dostanie jakąś dodatnią wartośćquestionmark.gif
W jaki sposób mam to zrobić?
RiE
  1. $showReservation = "SELECT * FROM reservations WHERE Date='$_POST[Date]' AND Room='$_POST[Room]' AND (( $time > hour AND $time <= hour2);
  2. $showReservation=mysql_query($showReservation);
  3. $showReservation=mysql_num_rows($showReservation);
Valdi_B
Po wykonaniu mysql_query "krasnoludki pobrały wyniki" z bazy, ale Twój skrypt ich jeszcze nie ma.
Po pierwsze: wynik z mysql_query musisz podstawić pod jakąś zmienną.
Po drugie - wykonaj mysql_fetch_array, podając jako argument tę zmienną.
Dopiero wynikiem tej funkcji jest tablica z danymi.
Przykład - na stronie http://pl.php.net/manual/en/function.mysql-fetch-array.php

Jeszcze jedno: Ciebie właściwie interesują nie same rekordy, ale ich liczba.
Czy czasem po SELECT zamiast "*" nie powinno być "count(*)"?
Wtedy odczyt z bazy daje wprost liczbę szukanych rekordów.
Lashlo86
  1. <?php
  2.  
  3. require('config.php');
  4.  
  5. $time=8:00:00;
  6.  
  7. $showReservation = "SELECT count(*) FROM reservations WHERE Date='$_POST[Date]' AND Room='$_POST[Room]' AND (( $time > hour AND $time <= hour2);
  8. $showReservation=mysql_query($showReservation);
  9. //$showReservation=mysql_num_rows($showReservation); // wypróbowałem, nie działa
  10.  
  11. $row = mysql_fetch_array($showReservation, MYSQL_NUM);
  12.  
  13. if($row>0)
  14. {
  15. $zm=1;
  16. }else
  17. $zm=0;
  18.  
  19. echo "Statuss=".$zm;
  20. mysql_close($con);
  21. ?>


Po wykonaniu tego polecenia dalej undefined. Co robię nie tak?
RiE
Jezeli uzyles:
  1. $showReservation=mysql_num_rows($showReservation);

To w warunku musisz dac:
  1. if($showReservation>0)
  2. {
  3. $zm=1;
  4. }else
  5. $zm=0;


Sry, nie zwrocilem uwagi ze w zapytaniu dales count(). W takim razie w warunku if musisz dac $row[0]
Lashlo86
Dziękuję za wskazówki. Poniżej działające zapytanie.

  1. <?php
  2.  
  3. require('config.php');
  4.  
  5. $showReservation = mysql_query("SELECT * FROM reservations WHERE date='$_POST[date]' AND room='$_POST[room]' ");
  6. $showReservation1 = mysql_fetch_array($showReservation);
  7.  
  8. if($showReservation1>0)
  9. {
  10. $zm=1;
  11. }else
  12. $zm=0;
  13.  
  14. echo "Statuss=".$zm;
  15.  
  16.  
  17. ?>

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.