2015-03-16 5 views
-1

У меня проблема, и я не могу ее исправить самостоятельно ни с помощью друга.Почему этот сценарий базы данных не возвращает никаких результатов?

В основном, что я пытаюсь сделать, вызовите PHP-скрипт с двумя аргументами: username и subscriptionid.

PHP-скрипт должен считывать идентификатор пользователя по имени пользователя из таблицы «пользователь». Затем в другой таблице, называемой subscriptionlog, проверьте, есть ли идентификатор пользователя и если да, посмотрите, есть ли у него запись с subscriptionid. Если это так, распечатайте переменную «status» этой таблицы.

Вот мой код:

<?php 

// checkkey.php?user=ZeD&subid=2 -> Called as GET 

$servername  = "localhost"; 
$username  = "username"; 
$password  = "password"; 
$dbname   = "database"; 

$uname  = $_GET["user"]; 
$subid  = $_GET["subid"]; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT status FROM subscriptionlog WHERE subscriptionid = '$subid' AND userid = (SELECT userid FROM user WHERE username = '$uname')"; 
$result = mysqli_query($sql); 

if($result === false) 
    echo("error with bitch sql"); 

while($row = mysqli_fetch_assoc($result)) 
{ 
    echo $row["status"]; 
} 


$conn->close(); 
?> 

Это просто оставляет страницу пустой, нет никакого эха происходит вообще.

+0

Вы пробовали этот запрос на mysql-клиенте? видите ли вы какой-либо результат? –

+2

Измените if ($ result === 0) на if ($ result === false), поскольку mysqli вернет только False/True/mysqli_result, а не фактическое 0. Это будет гарантировать, что запрос не сработает , после чего вы можете напрямую протестировать против mysql, поскольку это, скорее всего, виновник. – MasterOdin

+0

у вас есть синтаксическая ошибка sql – Jacob

ответ

1

Попробуйте добавить в верхней части страницы:

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

так что вы можете увидеть, если у вас есть какие-либо ошибки.

+0

Предупреждение : mysqli_query() ожидает как минимум 2 параметра, 1 задано в /home/zedcheat/public_html/authkey.php в строке 25 Предупреждение: mysqli_fetch_assoc() ожидает, что параметр 1 будет mysqli_result, null указан в/home/zedcheat/public_html/authkey.php в строке 30 –

+0

Это два предупреждения, которые появляются после использования вашего кода. –

+0

mysqli_query() ожидает как минимум 2 параметра, 1 задано, поэтому попробуйте следующее: $ result = mysqli_query ($ conn, $ sql); – Liza

1

это, вероятно, ваш вопрос, вам не хватает концовку ) от вашего SQL заявления

$sql = "SELECT status FROM subscriptionlog WHERE subscriptionid = '$subid' AND userid = (SELECT userid FROM user WHERE username = '$uname')"; 

и вашего вызова запроса должен выглядеть следующим образом, с $conn первых парами

mysqli_query($conn, $sql); 
+0

хорошо, поэтому, если вы отправляете здесь, я случайно удалю его. Это в моем скрипте на сервере, хотя –

+0

Посмотрите на комментарий @ jeroen. Ваша следующая строка должна быть 'mysqli_query ($ conn, $ sql);' – Jacob

0

Я думаю, вам может потребоваться проверить значение NULL, а не 0

if ($result === NULL) { echo "My result is null" }; 
Смежные вопросы