PHP и MYSQLI Проверьте, есть ли идентификатор пользователя, и если нет, то создайте его - PullRequest
0 голосов
/ 05 ноября 2018

Я 3 недели искал в Интернете ответ на этот вопрос и не могу найти ничего, что даже близко или пригодится. У меня есть таблица базы данных, которую мне нужно проверить. Если в этой таблице присутствует Users_ID, я бы хотел, чтобы мой код отображал ссылку update.php в моем теге формы action="", а если Users_ID отсутствует в этой таблице БД, то я хотел бы иметь Insertdb.php страница, которая будет связана в форме вместо update.php страницы. Вот что у меня есть:

Код PHP:

<?php
session_start();
error_reporting(E_ALL);
include_once("dbconnect.php");

$users_id = $_SESSION['user_id'];
$sql = "SELECT * FROM dbtable WHERE uid=$users_id";
if($results = $con->query($sql)) {
  while($display = $results->fetch_array(MYSQLI_ASSOC)) {
    $uid = $display['uid'];
    if($display['uid']==""){
      $pagelink = "insertintodb.php";
    }else{
      $pagelink = "updatedb.php";
    }
  }
  $results->close();
}
?>

И мой HTML-раздел выглядит так:

HTML код:

<form action="<?php echo $pagelink; ?>" method="POST">
  <input type="text" value="" placeholder="Insert Value" name="something" />
  <input type="submit" value="Submit Data" name="submit_data_to_db" />
</form>

Как бы я поступил так? Мой текущий метод, опубликованный выше, - это то, что я использую в настоящее время, однако он отображается только <form action="" method="POST">, когда я проверяю его по отношению к источнику просмотра страниц. Пожалуйста, помогите мне, если сможете. Любая помощь будет принята с благодарностью. Спасибо

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Я вижу, вы используете $con, но я нигде не вижу, чтобы вы это заявили. Можете ли вы подтвердить, что на самом деле существует? Возможно, в этот момент ваш скрипт останавливает выполнение.

Также несколько вещей, которые я бы реализовал там:
1. Когда вы используете переменные, которые поступают из внешних источников (например, из ваших форм) или даже из других переменных, всегда заботьтесь о внедрении SQL;
2. Ваш if & else может быть уменьшен до просто если (когда вы найдете идентификатор). Во всех остальных случаях вы хотите поведение по умолчанию, которое ваше другое. Так что-то вроде этого:

$pageLink = "insertintodb.php";
if (!empty($display['uid'])) {
    $pageLink = "updatedb.php"
}
0 голосов
/ 05 ноября 2018

вы обычно используете метод num_rows:

<?php
session_start();
error_reporting(E_ALL);
include_once("dbconnect.php");

$users_id = $_SESSION['user_id'];
$sql = "SELECT * FROM dbtable WHERE uid=$users_id";
if($results = $con->query($sql)) {
  if($results->num_rows() > 0){
      $pagelink = "insertintodb.php";
    }else{
      $pagelink = "updatedb.php";
    }
  }
  $results->close();
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...