elseif ($_GET[mod] == ok && (empty($log)))
{
$_POST[name] = addslashes("$_POST[name]");
$_POST[name] = htmlspecialchars($_POST[name]);
$_POST[about] = addslashes("$_POST[about]");
$_POST[about] = htmlspecialchars($_POST[about]);
mysql_query("INSERT INTO anketa
SET user = '$log', name = '$_POST[name]', age = '$_POST[age]', about = '$_POST[about]'");
echo 'Данные успешно сохранены';
}
else
{
mysql_query("UPDATE anketa
SET user = '$log', name = '$_POST[name]', age = '$_POST[age]', about = '$_POST[about]'
WHERE user = '$log'");
echo 'Данные успешно обновлены';
}
Есть пользователь с именем $log и если при редактировании анкеты у него ее нет (в таблице anketa нет его имени переданного c помощью $log ), то нужно создать новую, если же есть, то обновить. Это условие не работает, вернее работает на половину: Если уже есть анкета, то обновляет иначе ничего не делает! Подскажите пожалуйста что исправить для добавления новой анкеты?
Спустя 15 минут, 33 секунды (16.04.2012 - 13:14) walerus написал(а):
Какое первое условие ? ( if ...) и чему равно $_GET[mod] ?
Спустя 5 минут, 2 секунды (16.04.2012 - 13:19) Xpund написал(а):
(empty($log)) - это значит, что у вас $log пустое, а вы его в базу заносите
Спустя 1 минута, 22 секунды (16.04.2012 - 13:20) Xpund написал(а):
INSERT INTO не так оформляется
INSERT INTO `table` (`stolbec`, `stolbec`) VALUES ('".$id."', '".$id2."')
Спустя 5 минут, 54 секунды (16.04.2012 - 13:26) Ramzil_Nixon написал(а):
Цитата (Xpund @ 16.04.2012 - 10:20) |
INSERT INTO не так оформляется |
Почему не формируется?
Нормально у него все там с записью INSERT
Спустя 48 секунд (16.04.2012 - 13:27) Ramzil_Nixon написал(а):
ТС, где у тебя условие
?
if()
?
Спустя 5 минут, 17 секунд (16.04.2012 - 13:32) johniek_comp написал(а):
Ramzil_Nixon
в INSERT-е есть SET???
в INSERT-е есть SET???
Спустя 1 минута, 41 секунда (16.04.2012 - 13:34) Ramzil_Nixon написал(а):
Цитата (johniek_comp @ 16.04.2012 - 10:32) |
в INSERT-е есть SET??? |
После этого вопроса открыл и посмотрел скрипт записи новых пользователей своего форума :D
Да, есть SET
mysql_query("INSERT INTO `users` SET
`login` = '".htmlspecialchars($Login)."',
`password` = '".htmlspecialchars($Password)."',
`e-mail` = '".htmlspecialchars($Mail)."'
") or die(mysql_error()); // Записываем данные на базу
Спустя 9 минут, 7 секунд (16.04.2012 - 13:43) walerus написал(а):
Можно и так
$login="Ignat";и чeрез SET.
$password="12345";
$avatar = '';
$result2 = "INSERT INTO users(login,password,avatar) VALUES ($login,$password,$avatar)";
mysql_query($result2);
Спустя 5 минут, 43 секунды (16.04.2012 - 13:49) Ramzil_Nixon написал(а):
walerus, и оба варианта верны.
Но мне SET кажется легче
Но мне SET кажется легче

Спустя 34 минуты, 32 секунды (16.04.2012 - 14:23) Diamorph написал(а):
<?php
define('PROTECTOR', 1);
$headmod = 'settings';
$textl = 'Настройки';
include ('files/path.php');
include ($path . 'files/db.php');
include ($path . 'files/auth.php');
include ($path . 'files/func.php');
include ($path . 'files/core.php');
include ($path . 'files/head.php');
include ($path . 'files/zag.php');
if (empty($_GET[mod]))
{
echo '<a href ="settings.php?mod=anketa">Анкета</a>';
}
elseif ($_GET[mod] == anketa)
{
echo '<form action="settings.php?mod=ok" method="post">';
echo "Имя:<br/><input class='input' type=\"text\" size=\"20\" name=\"name\" maxlength=\"20\"/><br/>";
echo "Возраст:<br/><input class='input' type=\"text\" size=\"2\" name=\"age\" maxlength=\"2\"/><br/>";
echo "О себе:<br/><input class='input' type=\"text\" size=\"50\" name=\"about\" maxlength=\"500\"/><br/>";
echo '<input class="button" type="submit" value="Изменить" /></form>';
}
elseif ($_GET[mod] == ok && (empty($log)))
{
$_POST[name] = addslashes("$_POST[name]");
$_POST[name] = htmlspecialchars($_POST[name]);
$_POST[about] = addslashes("$_POST[about]");
$_POST[about] = htmlspecialchars($_POST[about]);
mysql_query("INSERT INTO anketa
SET user = '$log', name = '$_POST[name]', age = '$_POST[age]', about = '$_POST[about]'");
echo 'Данные успешно сохранены';
}
else
{
mysql_query("UPDATE anketa
SET user = '$log', name = '$_POST[name]', age = '$_POST[age]', about = '$_POST[about]'
WHERE user = '$log'");
echo 'Данные успешно обновлены';
}
include ($path . 'files/down.php');
?>
Вот весь код. я не пойму как здесь правильно написать:
elseif ($_GET[mod] == ok && (empty($log))). Что-то в роде того: если переменная $log (которая передает моё имя 'Diamorph' в базу ну и у других пользователей другое) пуста, то создать новую анкету, иначе обновить данные! $log тут в роде ключа.
Спустя 4 минуты, 40 секунд (16.04.2012 - 14:28) Игорь_Vasinsky написал(а):
индексы(ключи) массивов в апострофы помести.
Спустя 6 минут, 48 секунд (16.04.2012 - 14:35) Diamorph написал(а):
так?
$_POST['name']
и что это даст?
$_POST['name']
и что это даст?
Спустя 1 минута, 12 секунд (16.04.2012 - 14:36) walerus написал(а):
Игорь_Vasinsky +1, я чего то не обратил внимание сразу.
Diamorph $_GET['mod'], $_POST['name'] и т.д., попробуй...
Во первых ТАК, правильно писать
Во вторых посмотри, что получится.
Diamorph $_GET['mod'], $_POST['name'] и т.д., попробуй...
Во первых ТАК, правильно писать
Во вторых посмотри, что получится.
Спустя 23 секунды (16.04.2012 - 14:36) Игорь_Vasinsky написал(а):
Цитата |
так? $_POST['name'] и что это даст? |
отсутствие нотисов.
Спустя 2 минуты, 16 секунд (16.04.2012 - 14:39) walerus написал(а):
и как написал Xpund - $log - ПУСТОЙ, ему ничего не передается нигде, а пустого юзера не добавляет в базу.
Спустя 1 минута, 29 секунд (16.04.2012 - 14:40) walerus написал(а):
в начале скрипта допиши
<?php
error_reporting( E_ALL ); // Показывать все ошибки
define('PROTECTOR', 1);
Спустя 20 минут, 24 секунды (16.04.2012 - 15:00) Diamorph написал(а):
Цитата (walerus @ 16.04.2012 - 11:40) |
в начале скрипта допиши <?php error_reporting( E_ALL ); // Показывать все ошибки |
в начале нельзя. ну это не важно! предупреждения убрал, но ничего не изменилось!
elseif ($_GET['mod'] == 'ok' && (empty($log)))
помогите как правильно тут написать? мне нужно в духе этого: Если мы нажали кнопку "Изменить" и в таблице anketa нет вашего имени, то - добавить новую анкету
Спустя 1 час, 47 минут, 31 секунда (16.04.2012 - 16:48) Diamorph написал(а):
Разобрался!
Всем спасибо кто откликнулся!
Всем спасибо кто откликнулся!
<?php
define('PROTECTOR', 1);
$headmod = 'settings';
$textl = 'Настройки';
include ('files/path.php');
include ($path . 'files/db.php');
include ($path . 'files/auth.php');
include ($path . 'files/func.php');
include ($path . 'files/core.php');
include ($path . 'files/head.php');
include ($path . 'files/zag.php');
error_reporting( E_ALL );
$req = mysql_fetch_array(mysql_query("SELECT user
FROM anketa
WHERE user = '$log'"));
if (empty($_GET['mod']))
{
echo '<a href ="settings.php?mod=anketa">Анкета</a>';
}
elseif ($_GET['mod'] == 'anketa')
{
echo '<form action="settings.php?mod=ok" method="post">';
echo "Имя:<br/><input class='input' type=\"text\" size=\"20\" name=\"name\" maxlength=\"20\"/><br/>";
echo "Возраст:<br/><input class='input' type=\"text\" size=\"2\" name=\"age\" maxlength=\"2\"/><br/>";
echo "О себе:<br/><input class='input' type=\"text\" size=\"50\" name=\"about\" maxlength=\"500\"/><br/>";
echo '<input class="button" type="submit" value="Изменить" /></form>';
}
elseif ($_GET['mod'] == 'ok' && (empty($req['user'])))
{
$_POST['name'] = addslashes($_POST['name']);
$_POST['name'] = htmlspecialchars($_POST['name']);
$_POST['about'] = addslashes($_POST['about']);
$_POST['about'] = htmlspecialchars($_POST['about']);
mysql_query("INSERT INTO anketa
SET user = '$log', name = '$_POST[name]', age = '$_POST[age]', about = '$_POST[about]'");
echo 'Данные успешно сохранены';
}
else
{
mysql_query("UPDATE anketa
SET user = '$log', name = '$_POST[name]', age = '$_POST[age]', about = '$_POST[about]'
WHERE user = '$log'");
echo 'Данные успешно обновлены';
}
include ($path . 'files/down.php');
?>