2011-01-31 5 views
1

У меня есть сценарий обновления, который обновляет имя пользователя, пароль, телефон, выведенный из эксплуатации идентификатор и т. Д. Так что скажем, пользователь решает изменить свой телефон, но не имя пользователя. Но когда они идут, чтобы редактировать свою информацию, все вышеупомянутые поля присутствуют в форме. Таким образом, они также передаются вместе с тем, что пользователь хочет изменить. Поэтому я использую код ниже, чтобы обнаружить это. Поэтому, если имя пользователя в поле совпадает с именем пользователя, выведенным из сеанса, это означает, что его нормально продолжать, если затем не распечатать, что имя пользователя уже выполнено. Но проблема в том, что я должен запускать этот запрос дважды, один раз для имени пользователя и один раз для уникального идентификатора пользователя. Кроме того, это осложняется, когда сценарий обновления находится в нижней части страницы. Коды ниже будут определять это, но они остановятся на эхо. Итак, как я могу это сделать, чтобы код проверял эти условия, а затем, после успешного завершения, он указывает на запрос на обновление.Выполнение скрипта обновления только при выполнении всех проверок

Проверка 1:

if ($username == $_POST['username') { 
    echo "Good to go"; 
} else { 
    echo "already in use"; 
} 

Проверка 2:

if ($usergenid == $_POST['usergenid') { 
    echo "Good to go"; 
} else { 
    echo "already in use"; 
} 
+2

вы можете перефразировать, что читать его дважды, и понятия не имеют, что ваш actully просят. –

+0

Извините Дагон. Отредактировано сейчас. – AAA

+0

я могу сделать что-то вроде этого: если ($ postedusername == $ dbusername) { еще { ($ postedid == $ DBID) } еще { } еще { эхо "уже используется"; } – AAA

ответ

1

может быть, я уверен, непонимание вопроса, но может вам гнездо ваши условия?

Оригинал

$result = null; 

if($username == $_POST['username']) 
{ 
    if($usergenid == $_POST['usergenid']) 
    { 

     /* perform update to user */ 
     $sql = 'UPDATE users SET username = ' . $_POST['username'] . ' WHERE id = ' . $_POST['usergenid']; 
     if(mysql_query($sql)) 
     { 
     $result = 'User updated'; 
     } 
     else 
     { 
     $result = 'Update failed'; 
     } 

    } 
    else 
    { 
     $result = 'User id already in use'; 
    } 
} 
else 
{ 
    $result = 'Username already in use'; 
} 

return $result; 

Обновление имени пользователя, если user_id соответствует

$result = null; 

if($usergenid == $_POST['usergenid']) 
{ 
    if($username != $_POST['username']) 
    { 

     /* perform update to user */ 
     $sql = 'UPDATE users SET username = ' . $_POST['username'] . ' WHERE id = ' . $_POST['usergenid']; 
     if(mysql_query($sql)) 
     { 
     $result = 'username updated'; 
     } 
     else 
     { 
     $result = 'update failed'; 
     } 

    } 
    else 
    { 
     $result = 'username is the same, no update performed'; 
    } 
} 
else 
{ 
    $result = 'user id does not match'; 
} 

return $result; 
+0

Отлично. Это отчасти то, что я ищу. Теперь. Если оба термина удовлетворяются, как я могу выполнить команду обновления mysql? Потому что, если ответ хорош, я хочу, чтобы он напрямую обновлял скрипт. Если ответ уже используется, я хочу его исправить, а затем снова отправить submit, а затем, если это будет правильно, он должен пройти. – AAA

+0

Есть ли способ, которым я могу это сделать? Если ответ хорош, могу ли я выполнить sql-запрос вместо эха? И я догадываюсь, что запрос будет повторяться, пока они не добьются ...? – AAA

+0

Я обновил пример кода, так как вы «сверлили» до того места, где выполняются эти два условия, вы можете просто разместить свои обновления в этом состоянии ... это не лучший пример, так как я не совсем уверен в том, что сценарий, но я надеюсь, что это, по крайней мере, поможет с точки зрения сужения условий и внесения обновлений и возврата некоторого результата от того, как далеко продвинулся ваш код. вы, конечно же, хотите очистить данные обновления, а не использовать $ _POST напрямую – twmulloy

 Смежные вопросы

  • Нет связанных вопросов^_^