Обновление поля столбца Mysql на основе адреса электронной почты - PullRequest
2 голосов
/ 28 июля 2011

В моей БД есть столбцы: ID, имя, электронная почта, пароль, уровень

У меня есть форма, в которой я пытаюсь обновить столбец «level» на основе «адреса электронной почты», введенного существующим пользователем.

Сейчас у меня есть базовая форма, которая просто вставляет информацию, но мне нужно, чтобы она обновляла существующих пользователей на основе значения электронной почты.

Это то, что у меня есть

<form action="update.php" method="post">

<input type="hidden" name="action" value="update" />

<fieldset>
<label  for="email" />Email Address:</label>
<input  value="" type="text" name="email" id="email" />
<label  for="level" />Level:</label>
<input  value="vip" type="text" name="level" id="level" />
<input class="button" type="image" src="/img/right/get-started-button.png" />
</fieldset>
</form>

---- update.php ------

<?php
$email = $_POST['email'];
$level = $_POST['level'];

mysql_connect ("localhost", "username", "pass") or die ('Error: ' . mysql_error());
mysql_select_db ("db_name");

$query="INSERT INTO users (email, level)VALUES ('".$email."','".$level."')";

mysql_query($query) or die ('Error updating database');

echo "Database Updated With: " .$email. " ".$level ;

?>

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Не зная, какую версию MySQL вы используете, вы можете использовать синтаксис INSERT ON DUPLICATE KEY UPDATE, если вы используете 5+: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

Если вы используете более старую версию, тогда достаточно просто выбрать id предел 1, чтобы определить, существует ли запись.

Кстати: вы должны использовать mysql_real_escape_string (или аналогичную) перед выполнением оператора sql. Также хорошей идеей будет всегда использовать обратную галочку вокруг имен полей на случай, если вы нажмете зарезервированное слово или недопустимый символ в именах полей.

1 голос
/ 28 июля 2011

Я не уверен, правильно ли я понимаю ваш вопрос, но если вы ищете обновление sql:

    UPDATE users Set level='some_value' WHERE email="some_email_address"

Так что вы можете сделать:

    $query="UPDATE users SET level='" .$level."' WHERE email='" .$email."'";

То естьесли я правильно понял ваш вопрос.Как и вы пытаетесь обновить существующую таблицу, на основе адреса электронной почты, введенного в форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...