@WalkersRei

Warning ошибка в запросе?

Здравствуйте, выводить ошибку
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /var/www/u0788916/data/www/gdonate.ru/terminal.php on line 34
124


Проблема в
if (!empty($status)) {
а именно в проверке
<?php

$QueryType = $_GET['QueryType'];
$TransactionId = $_GET['TransactionId'];
$Account = $_GET['Account'];
$TransactionDate = $_GET['TransactionDate'];
$Amount = $_GET['Amount'];
$RevertId = $_GET['RevertId'];
$RevertDate = $_GET['RevertDate'];
$Comment = $_GET['Comment'];
$TransactionExt = $_GET['TransactionExt'];

//?QueryType=check&TransactionId=1
//?QueryType=pay&TransactionId=1&TransactionExt=1&Amount=100


$localhost 	= "localhost"; 		//  Указываете хост от базы данных
$user 		= "u0788916_abills";			//	Указываете логин от пользователя для подключение к базе данных
$passwd 	= "PuPlSn5Fw2AX";	//	Указываете пароль от пользователя для подключение к базе данных
$database 	= "u0788916_abills";			//  Указываете наименования базы данных


$db = new mysqli($localhost, $user, $passwd, $database);
$db->set_charset("utf8");

if($db->connect_errno) {
    exit('<center>Идут технические работы!</center>');
}


switch ($QueryType) {
	case 'check':
			$status_query = $db->query('SELECT * FROM `users` WHERE `uid` = '.$Account);
			while ($status_user = mysqli_fetch_assoc($status_query)){
				$status = $status_user['bill_id'];
			}
			if (!empty($status)) {
				$active_query = $db->query('SELECT * FROM `users` WHERE `uid` = '.$Account);
				while ($active_user = mysqli_fetch_assoc($active_query)){
					$active = $active_user['disable'];
				}
				if ($active = 0) {
					$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
					$xml->openMemory(); //использование памяти для вывода строки
					$xml->startDocument(); //установка версии XML в первом теге документа
					$xml->startElement("Response"); //создание корневого узла
					$xml->writeElement("TransactionId", $TransactionId); //ID платежа на стороне терминала
					$xml->writeElement("ResultCode", "0"); //Статус для оповещения терминала
					//$xml->writeElement("Comment", $Comment); //Комментарий при желание
					$xml->endElement(); //закрытие корневого элемента
					echo $xml->outputMemory(); //завершение записи в XML 
				}else{
				$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
				$xml->openMemory(); //использование памяти для вывода строки
				$xml->startDocument(); //установка версии XML в первом теге документа
				$xml->startElement("Response"); //создание корневого узла
				$xml->writeElement("TransactionId", $TransactionId); //ID платежа на стороне терминала
				$xml->writeElement("ResultCode", "21"); //Статус для оповещения терминала
				//$xml->writeElement("Comment", $Comment); //запись элемента
				$xml->endElement(); //закрытие корневого элемента
				echo $xml->outputMemory(); //завершение записи в XML 
				}					
			}else{
			$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
			$xml->openMemory(); //использование памяти для вывода строки
			$xml->startDocument(); //установка версии XML в первом теге документа
			$xml->startElement("Response"); //создание корневого узла
			$xml->writeElement("TransactionId", $TransactionId); //ID платежа на стороне терминала
			$xml->writeElement("ResultCode", "24"); //Статус для оповещения терминала
			//$xml->writeElement("Comment", $Comment); //запись элемента
			$xml->endElement(); //закрытие корневого элемента
			echo $xml->outputMemory(); //завершение записи в XML 					
			}			

		break;
	
	case 'pay':
			$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
			$xml->openMemory(); //использование памяти для вывода строки
			$xml->startDocument(); //установка версии XML в первом теге документа
			$xml->startElement("Response"); //создание корневого узла
			$xml->writeElement("TransactionId", $TransactionId);//ID платежа на стороне терминала
			$xml->writeElement("TransactionExt", $TransactionExt); //ID платежа на стороне провайдера
			$xml->writeElement("Amount", $Amount); //Сумма для зачиления
			$xml->writeElement("ResultCode", "0"); //Статус для оповещения терминала
			$xml->endElement(); //закрытие корневого элемента
			echo $xml->outputMemory(); //завершение записи в XML 			
		file_get_contents('https://'.$url.'/admin/index.cgi?qindex=2&UID='.$Account.'&xml=1&DESCRIBE=Терминал+№'.$TransactionId.'&header=1&SUM='.$Amount.'&add=1&user='.$user.'&passwd='.$passwd.'');
		break;

	case 'cancel':
			$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
			$xml->openMemory(); //использование памяти для вывода строки
			$xml->startDocument(); //установка версии XML в первом теге документа
			$xml->startElement("Response"); //создание корневого узла
			$xml->writeElement("TransactionId", $TransactionId);
			$xml->writeElement("RevertId", $RevertId);
			$xml->writeElement("TransactionExt", $TransactionExt); //запись элемента
			$xml->writeElement("Amount", $Amount); //запись элемента
			$xml->writeElement("ResultCode", "0"); //запись элемента
			$xml->endElement(); //закрытие корневого элемента
			echo $xml->outputMemory(); //завершение записи в XML 	

		break;

	default:

		break;
}
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 2
flapflapjack
@flapflapjack
на треть я прав
Проблема в
if (!empty($status)) {


Нет. Проблема в
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /var/www/u0788916/data/www/gdonate.ru/terminal.php on line 34
124


Попробуйте перевести данную фразу в переводчике, если не понимаете английский язык, на котором прямым текстом вам сообщается причина ошибки.

Для диагностики вы можете дампить $active_query каждый раз, когда он применяется. Когда квидите boolean вместо объекта mysqli - там и ошибка
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Перед $db = new mysqli($localhost, $user, $passwd, $database); дописать
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

после этого база сама скажет в чем проблема
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы