PHP, пишущий на MYSQL, является переменной равной 0

0

Я пытаюсь записать в свою базу данных, если переменная равна 0. Проблема в том, что она все еще записывается в базу данных, даже когда переменные равны 1. Что не так??

echo $new_user;

if ($new_user == 0) {

  //SENT NEW USER WELCOME MESSAGE

  $adminid = '9';
  $welcomemessagetitle = 'Welcome to The site';
  $welcomemessagecontent = 'Hello and welcome';

  $addmessages = "INSERT into `user_messages`(`to_user`,`from_user`,`title`,`content`)
    VALUES ('$userid','$adminid','$welcomemessagetitle','$welcomemessagecontent');";

  $query = mysql_query($addmessages) or die(mysql_error());

  //SET USER AS NOT NEW USER

  $newuservalue = '1';

  $notnewuser = "UPDATE users SET new_user = $newuservalue WHERE id = $userid" ;

  $query2 = mysql_query($notnewuser) or die(mysql_error());

} elseif ($new_user == 1) {};

ОБНОВЛЕНИЕ ПОЛНОГО КОДА::

<?php 
session_start();
include "../includes/db_connect.php";
///profile/index.php
if($_SESSION['id'])
{
  $username = $_SESSION['username'];
  $userid = $_SESSION['id'];
  //WRITE FIRST TIME LOGIN INFORMATION TO DATABASE
  $sql="SELECT new_user from `users` WHERE `id`= $userid ";
  $res=mysql_query($sql) or die(mysql_error());
  while($row=mysql_fetch_assoc($res)) $new_user = $row['new_user'] ;
  echo $new_user;
  if ($new_user == 0) {
    //SENT NEW USER WELCOME MESSAGE
    $adminid = '9';
    $welcomemessagetitle = 'Welcome to Escorvee';
    $welcomemessagecontent = 'Hello and welcome';
    $addmessages = "INSERT into `user_messages`(`to_user`,`from_user`,`title`,`content`)
      VALUES ('$userid','$adminid','$welcomemessagetitle','$welcomemessagecontent');";

     $query = mysql_query($addmessages) or die(mysql_error());
    //SET USER AS NOT NEW USER
    $newuservalue = '1';
    $notnewuser = "UPDATE users SET new_user = $newuservalue WHERE id = $userid" ;
    $query2 = mysql_query($notnewuser) or die(mysql_error());
  } elseif ($new_user == 1) {};
}
?>
  • 2
    Я думаю, что проблема находится в другом месте. Это точный код у вас есть? Это пишет, когда эхо печатает 1? сделать эхо "ВСТАВКА"; в фигурные скобки и часы это покажет, если первый эхо печатает 1. Покажите нам, как вы выбираете $ new_user из базы данных.
  • 1
    Позвольте дать вам один совет. Отступ кода - это не просто прихоть. Это одно из величайших изобретений когда-либо. Это позволило нам понять логику нашего кода. Все вложенные блоки должны быть с отступом. Таким образом, вы можете увидеть логику программы и найти недостатки, если таковые имеются
Теги:
variables

1 ответ

1
Лучший ответ

Это переменная $new_user - это значение 1, тогда ваш код не будет выполнен, поэтому я бы предположил, что применяется одно из следующего:

  • $new_user не 1.
  • База данных изменяется с другого места.
  • Ваш script вызывается дважды.

Чтобы решить, в какой форме вам придется предоставить дополнительную информацию в своем вопросе.

  • 0
    хм .. спасибо за это Когда я отображаю $ new_user, он показывает 1. Он также показывает 1 в базе данных.
  • 1
    @ user342391: За исключением того, что вы никогда не вводите $new_user в базу данных. Вы создаете новую переменную $newuservalue которую вы установили в 1, и вставляете ее, поэтому, насколько я могу судить, вы никогда не используете $new_user после операторов if ... О, и var_dump($new_user) вместо echo , это больше полезно, так как вы также получаете тип ...
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню