PHP передает идентификатор между скриптами - PullRequest
2 голосов
/ 20 апреля 2019

У меня есть проблема, которую я не могу решить.

Я создаю 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 сценариями?

Я вас охотно слушаю.

Большое спасибо.

...