Имеется две таблицы, одна с пользователями и другая с их данными (заметками). Использую retrofit, но не могу получить данные со второй таблицы (заметки). Как мне необходимо сформировать запрос. Вот, что есть сейчас.
@GET("folder/note.php")
Call<List<Note>> getNotes(
@Path("email") String email
);
void getDate(String email){
view.showLoading();
ApiInterface apiInterface = ApiClient.getApiClient().create(ApiInterface.class);
Call<List<Note>> call = apiInterface.getNotes(email);
call.enqueue(new Callback<List<Note>>() {
@Override
public void onResponse(@NonNull Call<List<Note>> call,@NonNull Response<List<Note>> response) {
view.hideLoading();
if (response.isSuccessful() && response.body() != null){
view.onGetResult(response.body());
}
}
@Override
public void onFailure(@NonNull Call<List<Note>> call,@NonNull Throwable t) {
view.hideLoading();
view.onErrorLoading(t.getLocalizedMessage());
}
});
}
И PHP скрипты getEmail.php
<?php
require_once ('connect.php');
$email = $_POST['email'];
$getId = mysqli_query($conn, "SELECT id FROM `users` WHERE email='$email'");
?>
note.php
header("Content-type:application/json");
require_once ('connect.php');
require_once ("crypt.php");
require_once ("getEmail.php")
//$sql = "SELECT * FROM `users` WHERE id='$id' ";
$result = mysqli_query($conn, "SELECT * FROM `passwords` WHERE id='$getId'");
$response = array();
while ( $row =mysqli_fetch_assoc($result) ){
$pass = mc_decrypt($row['pass'], ENCRYPTION_KEY);
array_push($response,
array(
'id_pswd' =>$row['id_pswd'],
'title' =>$row['title'],
'email' =>$row['email'],
'pass' =>$pass,
'info' =>$row['info'],
'color' =>$row['color'],
'date' =>$row['date'])
);
}
echo json_encode($response);
?>
Во-первых, ваш метод использует GET-запрос, а в коде PHP вы пытаетесь получить переменную из POST-запроса, то есть вам скорее всего нужно использовать $_GET или же $_REQUEST.
Во-вторых, значение @Path-переменной используется для форматирования строки запроса (пути) "folder/note.php", если в нем есть метка с соответствующем именем, то есть, например "folder/note.php/{email}". Тут нужно использовать либо @Field, либо @Query.
Для начала нужно проверить что в переменной $email находится. Для этого просто выведите ее после определения. Например вот так:
$email = $_POST['email'];
echo $email;
Дальше по простому если. Вы делаете запрос но не помещаете результат в переменную. Например вот так:
$getId = mysqli_query($conn, "SELECT id FROM `users` WHERE email='$email'");
$myrow = mysql_fetch_assoc($getId);
// $myrow['id'] будет хранить ваш ID пользователя
Ну а потом уже делаете все остальное подставляя в запрос ID пользователя вот так:
$result = mysqli_query($conn, "SELECT * FROM `passwords` WHERE id='".$myrow['id']."'");
$response = array();
while ( $row =mysqli_fetch_assoc($result) ){
$pass = mc_decrypt($row['pass'], ENCRYPTION_KEY);
array_push($response,
array(
'id_pswd' =>$row['id_pswd'],
'title' =>$row['title'],
'email' =>$row['email'],
'pass' =>$pass,
'info' =>$row['info'],
'color' =>$row['color'],
'date' =>$row['date'])
);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне необходимо собрать Wamp сервер но с БД на PostgreSQLВозникла проблема на моменте установки WordPress, а конкретно "wordpress not able to select the database"
Есть кусок кода на PHP Yii2Я делаю адаптив под мобильную версию