У меня есть проблема, которую я не могу решить.
Я создаю Android App
, где есть раздел с данными пользователя.
Данные сохраняются на MySql
базы данных через Register.php
и для их получения используйте файл Show.php
.
Когда я открываю активность пользователя в приложении, появляется скрытое поле, содержащее id
пользователя, приложение отправляетИдентификатор скрипта Php
и показывает все данные этого пользователя.
Проблема в том, что данные отображаются с небольшой задержкой, потому что они должны прочитать id
из приложения и показатьотфильтрованные данные.
Мне хотелось бы, чтобы в файле Php
уже был пользователь id
, поэтому отображение данных в приложении будет мгновенным, поскольку у меня уже естьзначение переменной, содержащей id
для использования затем в Query
.
. Для этого я подумал об использовании сеансов .
Но это не такработа.
В файле Register.php
я вставил переменную сеанса для хранения значенияпеременная id_restaurants
, которая мне нужна в скрипте show.php
, чтобы показать данные этого пользователя через Query
.
Но в файле Register.php
кажется, что значение переменной $ _SESSION ['varId']
не сохранено.
Что я делаю не так?
Вот регистрационный файл: Register.php
<?php
session_start();
if($_SERVER['REQUEST_METHOD']=='POST'){
include_once("config2.php");
$idUser = $_POST['idUser'];
$name = $_POST['name'];
$surname = $_POST['surname'];
$restaurant = $_POST['restaurant'];
$id_restaurant = $_POST['id_restaurant'];
$_SESSION['varId'] = '$id_restaurant';
if($name == '' || $surname == '' || $restaurant =='' ){
echo json_encode(array( "statusr" => "false","message" => "Insert all data") );
}else {
$query= "SELECT * FROM Restaurants WHERE restaurant='$restaurant'";
$result= mysqli_query($con, $query);
if(mysqli_num_rows($result) > 0){
echo json_encode(array( "statusr" => "false","message" => "Name restaurant already exist") );
}else{
$query = "INSERT INTO Restaurants (idUser,name,surname,restaurant,id_restaurant) VALUES ('$idUser','$name','$surname','$restaurant','$id_restaurant')";
if(mysqli_query($con,$query)){
$query= "SELECT * FROM Restaurants WHERE name='$name' AND surname='$surname' AND restaurant='$restaurant' ";
$result= mysqli_query($con, $query);
$emparray = array();
if(mysqli_num_rows($result) > 0){
while ($row = mysqli_fetch_assoc($result)) {
$emparray[] = $row;
}
}
echo json_encode(array( "statusr" => "truer","message" => "Registered succesfully!" , "datar" => $emparray) );
}else{
echo json_encode(array( "statusr" => "false","message" => "Error") );
}
}
mysqli_close($con);
}
} else{
echo json_encode(array( "statusr" => "false","message" => "Errore3") );
}
?>
Вот файл шоу: Show.php
<?php
session_start();
include 'config.php';
$conn = new mysqli($HostName, $HostUser, $HostPass, $DatabaseName);
$idRestaurant = $_SESSION['varId'];
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM Food WHERE id_restaurant ='$idRestaurant'" ;
$result = $conn->query($sql);
if ($result->num_rows >0) {
while($row[] = $result->fetch_assoc()) {
$tem = $row;
$json = json_encode($tem);
}
} else {
echo "No Results Found.";
}
echo $json;
$conn->close();
?>
А потом вы думаете, что есть лучший способ передать идентификатор между Php
сценариями?
Я вас охотно слушаю.
Большое спасибо.