Как использовать Javascript для запроса в зависимости от наличия комнаты? - PullRequest
0 голосов
/ 14 октября 2010

Я новичок в программировании, и мне нужна помощь в моем коде.Я хочу, чтобы моя страница подсказывала, останутся ли свободные номера.Я использую функцию onload на странице администратора.

пока здесь мой код

function prompt()
{
< ?php 
include("dbconfig.php");

$sql = "SELECT COUNT(*) FROM rooms WHERE status = 'available'";
$result = @mysql_query($sql) or die("Could not execute query");

?> 
if(< ?php $result <= 14 ?>){
 alert("Rooms left: < ?php echo $result ?>");
 }

else{
 alert("Welcome Admin.");
 } 
}

window.onload=prompt;

edit:

Код работает нормально, но он отображается "Resource id # 4 ", а не значение счетчика.

Ответы [ 5 ]

1 голос
/ 14 октября 2010

Я чувствую, что вы не можете смешивать php с js-кодами.php в основном на стороне сервера, в то время как js - на стороне клиента из предоставленного вами фрагмента, возможно, вам следует использовать чисто php следующим образом:

< ?php 
    include("dbconfig.php");
    $sql = "SELECT COUNT(*) FROM rooms WHERE status = 'available'"; 
    $result = @mysql_query($sql) or die("Could not execute query");
    if ($result <= 14) {
        echo("Rooms left: $result");
    }
    else {
        echo("Welcome Admin.")
    }
 ?>

Это должно быть выполнено при первом запросе

0 голосов
/ 14 октября 2010

Я думаю, вы не понимаете, где PHP обрабатывает и где Javascript обрабатывает.

PHP обрабатывается на серверной стороне , тогда как Javascript обрабатывается на клиентской стороне .Подумайте об этом так ...

  1. Вы открываете страницу.
  2. Ваш PHP обрабатывается, а окончательный вывод отправляется в браузер.
  3. ВашJavascript обрабатывается браузером.

Если у вас есть его сейчас, вы получите несколько забавных результатов ... особенно из-за отсутствия операторов echo .Вот что вы, вероятно, увидите в исходном коде страницы вашего браузера:

function prompt()
{
if(){
 alert("Rooms left: < ?php echo $result ?>");
 }
else{
 alert("Welcome Admin.");
 } 
}

window.onload=prompt;

Обратите внимание на пустой if оператор (также пробел в начальных тегах:

if(<?php echo ($result <= 14); ?>){
 alert("Rooms left: <?php echo $result ?>");
 }

Это должно заставить ваш Javascript оценивать логическое значение true / false. Не забывайте, что Javascript необходимо также обернуть в тег !

Чтобы ответить на ваш вопрос MySQL ... Попробуй так:

//We can alias the COUNT(*) as MyCount for easy reference
$sql = "SELECT COUNT(*) as MyCount FROM rooms WHERE status = 'available'";
$result = @mysql_query($sql) or die("Could not execute query");
$row = mysql_fetch_array($result); //$row is now an array and will now have your count in it
echo $row['MyCount']; //This will print the count from the database. You could use it in other ways as well.
0 голосов
/ 14 октября 2010

В тегах php не должно быть пробела:

< ?php 
 ^

Должно быть:

<?php 

Вам также не хватает функции извлечения , вот как вы можете получить количество строк в переменной:

<?php $count = mysql_num_rows($result);?>

Позже вы можете использовать переменную $count в условии if.

0 голосов
/ 14 октября 2010

используйте mysql_fetch_row и после этого в условии сравните с $ row [0]

$sql = "SELECT COUNT(*) FROM `rooms` WHERE `status` = 'available'";
$res = @mysql_query($sql) or die('Could not execute query');

$row = mysql_fetch_row($res);

if(< ?php $row[0] <= 14 ?>){
0 голосов
/ 14 октября 2010

mysql_query возвращает ресурс, а не результат.Попробуйте использовать:

$sql = "SELECT COUNT(*) FROM `rooms` WHERE `status` = 'available'";
$res = @mysql_query($sql) or die('Could not execute query');
$count = mysql_result($res, 0, 0);
...