Katherynliza Ответов: 1

Как исправить проблему "синтаксиса"?


У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с "информацией", где " id " = "SELECT" id "FROM" account "WHERE" username " = "stswil" в строке 1
<?php
include "connection.php";
$username =$_POST['username'];
$password =$_POST['password'];
$query = " SELECT `username`, `password` FROM `account` WHERE `username` = '$username' AND `password` = '$password' ";
$id = "SELECT `id` FROM `account` WHERE `username` ='$username' ";
$IDquery = " SELECT 'id' FROM 'information' WHERE 'id' = '$id' ";
$IDresults = mysqli_query($conn, $IDquery) or die(mysqli_error($conn));
$result="";
$results = mysqli_query($conn, $query) or die(mysqli_error($conn));

if(mysqli_num_rows($results)!=1){
	$result="Non-Vaild user";
}
else if(mysqli_num_rows($IDresults)!=1){
	header( 'Location: https://xesusanproject.000webhostapp.com/information.html' ) ;
}
else{
	header( 'Location: https://xesusanproject.000webhostapp.com/information.php' ) ;
}
?>
<!DOCTYPE html>
	<head>
		<link rel="apple-touch-icon" sizes="180x180" href="images/favicons/apple-touch-icon.png">
		<link rel="icon" type="image/png" href="images/favicons/favicon-32x32.png" sizes="32x32">
		<link rel="icon" type="image/png" href="images/favicons/favicon-16x16.png" sizes="16x16">
		<link rel="manifest" href="manifest.json">
		<link rel="mask-icon" href="images/favicons/safari-pinned-tab.svg" color="#741372">
		<meta name="apple-mobile-web-app-title" content="Medical Database">
		<meta name="application-name" content="Medical Database">
		<meta name="theme-color" content="#741372">
		<link rel="stylesheet" href="style/main.css" type="text/css">
		<title>Sucess-Login</title>
	</head>
	<body>
		<menu>
			<ul>
				<li><a href="logout.php">Log Out</a></li>
			</ul>
		</menu>
		<span style="margin:0px 0px 0px 10px"><?php echo $result ?></span>
	</body>
</html>

Обновление

Новая ошибка : у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с "stswilliams15" в строке 1

от обновления
$IDquery = " SELECT `id` FROM `information` WHERE `id` = '$id' ";

Хотел получить идентификатор от учетной записи (человек только что вошел в систему с этой информацией). Затем найдите соответствующий идентификатор в информации, чтобы увидеть, есть ли данные уже в информационной таблице. Если в информационной таблице нет соответствующего идентификатора, то я хочу перейти к "https://xesusanproject.000webhostapp.com/information.html - чтобы добавить данные. Если есть соответствующий идентификатор, то я хочу, чтобы данные были показаны

Что я уже пробовал:

проверка вайраблов, расспросы о людях в реальной жизни

j snooze

Вам не нужны круглые скобки вокруг выбора " id "из `account", где "username" = "$username"? Большинство SQL, которые я знаю, нуждаются в скобках при выполнении такого подзапроса.

Mohibur Rashid

Ваше утверждение IDquery неверно, вы перепутали между серьезным акцентом (`) и одинарной кавычкой('),

Katherynliza

Что ты имеешь в виду?

Katherynliza

Спасибо, но сейчас есть такая ошибка. У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с "stswilliams15" в строке 1

Mohibur Rashid

Повторите свой sql, запустите его из консоли и попытайтесь понять результат.

Katherynliza

<? php echo $query ?>
<? php echo $id? >
& lt;?php echo $IDquery ?>
<? php echo $IDresults ?>
<? php echo $result ?>
Добавить это ничего не значит

Mohibur Rashid

Это не должно решить вашу проблему. Это поможет вам выполнить отладку. Какой запрос вы получаете?

Katherynliza

Ничего, никаких запросов

1 Ответов

Рейтинг:
5

Patrice T

Цитата:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с "информацией", где " id " = "SELECT" id "FROM" account "WHERE" username " = "stswil" в строке 1

Проблема исходит из
$id = "SELECT `id` FROM `account` WHERE `username` ='$username' ";
$IDquery = " SELECT 'id' FROM 'information' WHERE 'id' = '$id' ";

Во второй строке $id заменяется ее содержать, второй строкой становиться.
$IDquery = " SELECT 'id' FROM 'information' WHERE 'id' = 'SELECT `id` FROM `account` WHERE `username` ='$username' ' ";

Нужно знать, что было вашим намерением там, чтобы понять, что не так.


Katherynliza

Хотел получить идентификатор от учетной записи (человек только что вошел в систему с этой информацией). Затем найдите соответствующий идентификатор в информации, чтобы увидеть, есть ли данные уже в информационной таблице. Если в информационной таблице нет соответствующего идентификатора, то я хочу перейти к "https://xesusanproject.000webhostapp.com/information.html - чтобы добавить данные. Если есть соответствующий идентификатор, то я хочу, чтобы данные были показаны.

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

Katherynliza

Ладно, спасибо.