[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql_query UPDATE и mysql_query DELETE
Dante5
такая вот проблема установиль на сайт раздел новости на сайте все отображается отлично из админки новости добавляютс без проблем а вот чтобы удалить новость из админки или от редактировать тут возникает ряд проблем
При потытке удалить новость нечего не происходит
А при редактировании Новости после нажатия кнопки сохранить получается такой результа Id осается а в остальных ячейках все пропадает ПОМОГИТЕ ИСПРАВИТЬ вот код:

<h3>Просмотр новостей. Свежие новости показываются сверху</h3>
<
br>
<?
function
fuckquot($news)
{
$news=str_replace("'",""",$news);
$news=str_replace('"',""",$news);
RETURN $news;
}

?>
<?

if(isset($_POST["id"]))
{
$id=$_POST["id"];
$price=$_POST["price"];
$news=$_POST["news"];
$teme=$_POST["teme"];

mysql_query("UPDATE news SET price='
$price', teme='$teme', news='$news' where id='$id'");


echo "<font color=\"green\"><b>Готово.</b></font><br><br>";


}

if(isset($_GET["id"]))
{
$id=$_GET["id"];
if ($_GET["option"]=="edit")
{
$tablae = mysql_query("SELECT * FROM news where id='
$id'");
while ($registroe = mysql_fetch_array($tablae))
{
?>
<form method="post" action="index.php?p=8">
Тема новости: <input type="text" name="tema" value="<?=$registroe["teme"] ?>"><br>
Текст новости:<br><textarea rows="20" cols="100" name="newstext"><?=$registroe["news"] ?></textarea><br>
<input type="hidden" value="<?=$id ?>" name="id">
<input type="submit" value="сохранить" class="button">
</form>
<?
}
}

if ($_GET["option"]=="delete")
{
$id=$_GET["id"];
FROM news WHERE id='
$id'");

$id=$_POST["id"];
mysql_query("update tb_users set id='' where id='
$id'");
}
}
?>

<br>
<table class="adn">
<tr class="lineb">
<td width="50">№</td>
<td>Дата написания новости</td>
<td>Текст новости</td>
<td>Тема</td>
<td>Редактировать</td>
<td>Удалить</td>
</tr>
<?

$sql="SELECT * FROM news order by id desc";

$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla))
{
?>
<tr class='
liney ell'>
<td align=center><?=$registro["id"] ?></td>
<td align=center><?=$registro["price"] ?></td>
<td><?=$registro["news"] ?></td>
<td><?=$registro["teme"] ?></td>
<td align=center>
<form method="post" action="index.php?p=8&id=<?=$registro["id"] ?>&option=edit">
<input type="submit" value="Редактировать" class="button">
</form>
</td>
<td align=center>
<form method="post" action="index.php?p=8&id=<?=$registro["id"] ?>&option=delete">
<input type="submit" value="Удалить" class="button">
</form>
</td>
</tr>
<?
}
?>
</table>




Спустя 6 минут, 23 секунды (1.09.2011 - 01:41) Игорь_Vasinsky написал(а):
Боже мой.. чтож вы делаете...

Так вы удаляете + обновляете:(

if ($_GET["option"]=="delete")	
{
$id=$_GET["id"];
FROM news WHERE id='$id'");
$id=$_POST["id"];
mysql_query("
update tb_users set id='' where id='$id'");


Куска кода посередине то не ХВАТАЕТ.. причём выдернут... и ошибок нет???

Спустя 54 секунды (1.09.2011 - 01:42) Игорь_Vasinsky написал(а):
про оформление SQL - запросов и про конкатенацию..я вас просто умоляю - почитайте - есть линк в подписи.

Спустя 5 минут, 57 секунд (1.09.2011 - 01:48) Dante5 написал(а):
я не очень пока сображаю в sql я только учусю всем этим тонкостям помогите все это дело поправить
Плиз

Спустя 4 минуты, 50 секунд (1.09.2011 - 01:53) Игорь_Vasinsky написал(а):
Так надо учиться. это ж труд.

это вообще что то странное

Цитата
mysql_query("update tb_users set id='' where id='$id'");




Спустя 19 минут, 47 секунд (1.09.2011 - 02:13) Dante5 написал(а):
а щас посмотри че нетак таже проблема нече неизменилось


<h3>Просмотр новостей. Свежие новости показываются сверху</h3>
<
br>
<?
function
fuckquot($news)
{
$news=str_replace("'",""",$news);
$news=str_replace('"',""",$news);
RETURN $news;
}
?>
<?
if(isset($_POST["id"]))
{
$id=$_POST["id"];
$price=$_POST["price"];
$news=fuckquot($_POST["news"]);
$teme=fuckquot($_POST["teme"]);

mysql_query("UPDATE news SET price='
$price', teme='$teme', news='$news' where id='$id'");

echo "<font color=\"green\"><b>Готово.</b></font><br><br>";
}

if(isset($_GET["id"]))
{
$id=$_GET["id"];
if ($_GET["option"]=="edit")
{
$tablae = mysql_query("SELECT * FROM news where id='
$id'");
while ($registroe = mysql_fetch_array($tablae))
{
?>
<form method="post" action="index.php?p=8">
Тема новости: <input type="text" name="teme" value="<?=$registroe["teme"] ?>"><br>
Текст новости:<br><textarea rows="20" cols="100" name="news"><?= $registroe["news"] ?></textarea><br>
<input type="hidden" value="<?=$id ?>" name="id">
<input type="submit" value="сохранить" class="button">
</form>
<?
}
}
if ($_GET["option"]=="delete")
{
$id=$_GET["id"];
mysql_query("DELETE FROM news WHERE id='
$id'");

echo "<font color=\"#cc0000\"><b>Новость удалена.</b></font><br><br>";
}
}
?>

<br>
<table class="adn">
<tr class="lineb">
<td width="50">№</td>
<td>Дата написания новости</td>
<td>Текст новости</td>
<td></td>
<td></td>
</tr>
<?

$sql="SELECT * FROM news order by id desc";

$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla))
{
?>
<tr class='
liney ell'>
<td align=center><?=$registro["id"] ?></td>
<td align=center><?=$registro["price"] ?></td>
<td><?=$registro["news"] ?></td>
<td align=center>
<form method="post" action="index.php?p=8&id=<?= $registro["id"] ?>&option=edit">
<input type="submit" value="Редактировать" class="button">
</form>
</td>
<td align=center>
<form method="post" action="index.php?p=8&id=<?= $registro["id"] ?>&option=delete">
<input type="submit" value="Удалить" class="button">
</form>
</td>
</tr>
<?
}
?>
</table>

Спустя 1 час, 15 минут, 26 секунд (1.09.2011 - 03:28) Dante5 написал(а):
С редактированием новости разобрался теперь осталось с удалением новости
<h3>Просмотр новостей. Свежие новости показываются сверху</h3>
<
br>
<?
function
news($news)
{
// $news=str_replace("'",""",$news);
// $news=str_replace('"',""",$news);

RETURN $news;
}
?>
<?

if(isset($_POST["id"]))
{
$id=$_POST["id"];
$price=$_POST["price"];
$news=$_POST["news"];
$teme=$_POST["teme"];

mysql_query("UPDATE news SET price='$price', teme='$teme', news='$news' where id='$id'");

echo "<font color=\"green\"><b>Готово.</b></font><br><br>";
}

if(isset($_GET["id"]))
{
$id=$_GET["id"];
if ($_GET["option"]=="edit")
{
$tablae = mysql_query("SELECT * FROM news where id='$id'");
while ($registroe = mysql_fetch_array($tablae))
{
?>
<form method="post" action="index.php?p=8">
Тема новости: <input type="text" name="teme" value="<?=$registroe["teme"] ?>"></br>
Дата: <input type="text" name="price" value="<?=$registroe["price"] ?>"></br>
Текст новости:<br><textarea rows="20" cols="100" name="news"><?= $registroe["news"] ?></textarea></br>
<
input type="hidden" value="<?=$id ?>" name="id">
<
input type="submit" value="сохранить" class="button">
</
form>
<?
}
}
}

?>
<?

if ($_GET["option"]=="delete")
{
$id=$_SET["id"];
mysql_query("DELETE FROM news WHERE id='$id'");

echo "<font color=\"#cc0000\"><b>Новость удалена.</b></font><br><br>";
}
?>

<br>
<
table class="adn">
<
tr class="lineb">
<
td width="50"></td>
<
td>Дата написания новости</td>
<
td>Тема</td>
<
td>Текст новости</td>
<
td>Редактировать</td>
<
td>Удалить</td>
</
tr>
<?

$sql="SELECT * FROM news order by id desc";

$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla))
{
?>
<tr class='liney ell'>
<
td align=center><?=$registro["id"] ?></td>
<
td align=center><?=$registro["price"] ?></td>
<
td><?=$registro["teme"] ?></td>
<
td><?=$registro["news"] ?></td>
<
td align=center>
<
form method="post" action="index.php?p=8&id=<?= $registro["id"] ?>&option=edit">
<
input type="submit" value="Редактировать" class="button">
</
form>
</
td>
<
td align=center>
<
form method="post" action="index.php?p=8&id=<?= $registro["id"] ?>&option=delete">
<
input type="submit" value="Удалить" class="button">
</
form>
</
td>
</
tr>
<?
}
?>
</table>

Спустя 4 часа, 37 минут, 37 секунд (1.09.2011 - 08:06) linker написал(а):
$id=$_SET["id"];
Что это за $_SET?

Спустя 1 час, 4 минуты, 48 секунд (1.09.2011 - 09:10) Dante5 написал(а):
Цитата (linker @ 1.09.2011 - 05:06)
$id=$_SET["id"];
Что это за $_SET?

ну там да ошибка ща у меня так

if ($_GET["option"]=="delete")

{
$id=$_GET["id"];
mysql_query("DELETE FROM `news` WHERE `id`='$id'");

echo "<font color=\"#cc0000\"><b>Новость $teme удалена.</b></font><br><br>";
}

всеравно не работает

Спустя 7 часов, 2 минуты, 14 секунд (1.09.2011 - 16:13) inpost написал(а):
Dante5
А ты посмотри, какая ссылка записывается в адресной строке. Там правда $_GET['id'] передаётся? И там точно числовое значение то, которое в БД?

Спустя 5 часов, 4 минуты, 37 секунд (1.09.2011 - 21:17) Dante5 написал(а):
Цитата (inpost @ 1.09.2011 - 13:13)
Dante5
А ты посмотри, какая ссылка записывается в адресной строке. Там правда $_GET['id'] передаётся? И там точно числовое значение то, которое в БД?

в адресно вот index.php?p=8&id=25&option=delete

Спустя 7 минут, 56 секунд (1.09.2011 - 21:25) inpost написал(а):
if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
{
mysql_query("DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'") or die(mysql_error());
echo "<p>DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'</p>";
echo 'Запись была удалена';
}

Спустя 1 час, 22 минуты, 34 секунды (1.09.2011 - 22:48) Dante5 написал(а):
Цитата (inpost @ 1.09.2011 - 18:25)
if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
{
mysql_query("DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'") or die(mysql_error());
echo "<p>DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'</p>";
echo 'Запись была удалена';
}

всеравно не удаляет

Спустя 1 час, 8 минут, 55 секунд (1.09.2011 - 23:57) inpost написал(а):
что не удаляет? Покажи, что вывелось на экран, а так же запись в БД, которую ты пытаешься удалить! Я там 2 раза написал echo.
Кстати, перед этим условием так же напиши вот что:
echo '<pre>';
print_r($_GET);
echo '</pre>';


И теперь ВСЕ данные сюда.

Спустя 9 минут, 16 секунд (2.09.2011 - 00:06) Dante5 написал(а):
На экран нече не выводится единственое изминение это миняется ссылка и все
даже ни каких ошибок

Спустя 1 минута, 7 секунд (2.09.2011 - 00:07) Dante5 написал(а):
Цитата (inpost @ 1.09.2011 - 20:57)
что не удаляет? Покажи, что вывелось на экран, а так же запись в БД, которую ты пытаешься удалить! Я там 2 раза написал echo.
Кстати, перед этим условием так же напиши вот что:
echo '<pre>';
print_r($_GET);
echo '</pre>';


И теперь ВСЕ данные сюда.

перед каким условием

Спустя 11 секунд (2.09.2011 - 00:07) neadekvat написал(а):
echo '<pre>';
print_r($_GET);
echo '</pre>';
Ой, ну долго же :)
echo '<pre>' . print_r($_GET, 1) . '</pre>';


Автор, а гет-данные то присутствуют?

Спустя 3 минуты, 27 секунд (2.09.2011 - 00:11) Dante5 написал(а):
--
-- Структура таблицы `news`
--

CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) NOT NULL auto_increment,
`price` varchar(10) character set cp1251 collate cp1251_bin default NULL,
`news` varchar(1500) character set cp1251 collate cp1251_bin NOT NULL,
`teme` varchar(150) character set cp1251 collate cp1251_bin NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=26 ;

--
-- Дамп данных таблицы `news`
--

INSERT INTO `news` (`id`, `price`, `news`, `teme`) VALUES

(25, '2009-02-27', 'тест\r\n12', 'Тест');

Спустя 1 минута, 18 секунд (2.09.2011 - 00:12) inpost написал(а):
Dante5
Перед тем условием, который я дал.

neadekvat
Что-то забываю я про второй аргумент, как-то рука сама набилась так писать. Сейчас то у себя пишу коротко: wtf($_GET);

Спустя 5 минут, 1 секунда (2.09.2011 - 00:17) Dante5 написал(а):
Цитата (neadekvat @ 1.09.2011 - 21:07)
echo '<pre>';
print_r($_GET);
echo '</pre>';
Ой, ну долго же :)
echo '<pre>' . print_r($_GET, 1) . '</pre>';


Автор, а гет-данные то присутствуют?

добавил теперь вот что выскочило
Array
(
[p] => 8
[id] => 25
[option] => delеtе
)

Спустя 3 минуты, 33 секунды (2.09.2011 - 00:21) neadekvat написал(а):
Цитата (Dante5 @ 2.09.2011 - 01:17)
добавил теперь вот что выскочило

И что, запись не удалилась?

inpost, понимаю. Бывает, напишешь, и думаешь - а зачем, мог бы короче написать. И начинаешь переписывать более коротким вариантом, и тут думаешь - а зачем, если уже было написано более длинным. И дальше может зациклиться, зависит от свежести мозга.
Все это, конечно, очень быстро происходит)

Спустя 3 минуты, 46 секунд (2.09.2011 - 00:24) Dante5 написал(а):
Ура!!!!! свершилось
помогло
if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
echo '<pre>' . print_r($_GET, 1) . '</pre>';
{
mysql_query("DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'") or die(mysql_error());
echo 'Запись была удалена';
}

Спустя 3 минуты, 11 секунд (2.09.2011 - 00:28) Dante5 написал(а):
Цитата (neadekvat @ 1.09.2011 - 21:21)
Цитата (Dante5 @ 2.09.2011 - 01:17)
добавил теперь вот что выскочило

И что, запись не удалилась?

inpost, понимаю. Бывает, напишешь, и думаешь - а зачем, мог бы короче написать. И начинаешь переписывать более коротким вариантом, и тут думаешь - а зачем, если уже было написано более длинным. И дальше может зациклиться, зависит от свежести мозга.
Все это, конечно, очень быстро происходит)

если так то не удаляется
 
echo '<pre>' . print_r($_GET, 1) . '</pre>';
if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
echo '<pre>' . print_r($_GET, 1) . '</pre>';
{
mysql_query("DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'") or die(mysql_error());
echo 'Запись была удалена';
}


а воттак все норм заработало


if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
echo '<pre>' . print_r($_GET, 1) . '</pre>';
{
mysql_query("DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'") or die(mysql_error());
echo 'Запись была удалена';
}

Спустя 9 минут, 23 секунды (2.09.2011 - 00:37) Dante5 написал(а):
ктонибут видел тему про то как сделать имея форму регистрации чтобы можно было регистрироватся один раз с одно IP вот форма регистрации или подскажите где че добавить

<table width="100%">
<
tr>
<
th align="center" scope="col"><form method="post"><table width="350px"><tr><td colspan='2' align='center'>
<?php

$form = 1;

include "admpanel/config/config.php";
include "bonus.php";

if (isset($_POST['username']))
{
if ($_POST['password1']!=$_POST['password2'])
{
print 'Пароли не совпадают!<br>';
}
else if (strlen($_POST['username'])<3)
{
print 'Логин должен содержать не менее 3-х символов!<br>';
}
else
{
$res = mysql_query("SELECT login FROM users WHERE login='".$_POST['username']."'");

if (mysql_num_rows($res)>0)
{
print 'Пользователь '.$_POST['username'].' уже существует';
}
else
{

$res = mysql_query("SELECT * FROM users WHERE login='".$_POST['referal']."'");

if (mysql_num_rows($res)>0 or $_POST['referal'] == "")
{



mysql_query("INSERT INTO users (login,pass,email,skype,icq,name,referal,bonus) VALUES ('".$_POST['username']."', '".md5($_POST['password1'])."', '".$_POST['email']."', '".$_POST['skype']."', '".$_POST['icq']."', '".$_POST['fio']."', '".$_POST['referal']."', 0)");

mysql_query("UPDATE users SET bonus = bonus + ".$const_bonus_referal." WHERE login='".$_POST['referal']."'");

$res = mysql_query("SELECT login FROM users WHERE login='".$_POST['username']."'");

if (mysql_num_rows($res)>0)
{
print "Регистрация прошла успешно.<br>Введите логин и пароль в форму справа";
$_SESSION['page']='index';
}
else
{
print "Неизвестная ошибка.<br>Попробуйте зарегистрироватся позже";
}
$form = 0;


}
else
{
print "Неверный реферал<br>";
}
}
}
}


if ($form==1)
{


?><h2>Регистрация:</h2>
<
tr><td width="150px" align="left">Логин:<td align="left"><input type="text" name="username" value="<? print $_POST['username']; ?>">
<
tr><td align="left">Ф.И.О.:<td align="left"><input type="text" name="fio" value="<? print $_POST['fio']; ?>">
<
tr><td align="left">Пароль:<td align="left"><input type="password" name="password1" value="<? print $_POST['password1']; ?>">
<
tr><td align="left">Пароль еще раз:<td align="left"><input type="password" name="password2" value="<? print $_POST['password2']; ?>">
<
tr><td align="left">e-mail:<td align="left"><input type="text" name="email" value="<? print $_POST['email']; ?>">
<
tr><td align="left">skype:<td align="left"><input type="text" name="skype" value="<? print $_POST['skype']; ?>">
<
tr><td align="left">icq:<td align="left"><input type="text" name="icq" value="<? print $_POST['icq']; ?>">
<
tr><td align="left">Реферал:<td align="left">
<?php



if (!isset($_GET['ref']))
{
print '<input type="text" name="referal" value="'.$_POST['referal'].'">';
}
else
{
print '<input type="text" disabled="disabled" value="'.$_GET['ref'].'">';
}
?>
<tr><td colspan='2' align="center"><input type="submit" value="Зарегистрировать!">
<
tr><td colspan='2' align="left">Нажимая кнопку "Зарегистрировать Вы автоматически соглашаетесь с <a href="index.php?page=rulles">правилами</a> сайта
<?
}
?>
</table>
</form>

</th>
</tr>
</table>

Спустя 52 минуты, 35 секунд (2.09.2011 - 01:29) inpost написал(а):
Dante5
У меня и у моей девушки один IP на двоих, значит мы оба не можем зарегистрироваться вконтакте?

echo '<pre>' . print_r($_GET, 1) . '</pre>';
if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
{
mysql_query("DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'") or die(mysql_error());
echo "DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'";
echo 'Запись была удалена';
}

Вот так должно быть, для проверки, потом лишние строки убрать надо, но выводим для того, чтобы убедиться, что скрипт работает правильно.

Спустя 30 минут, 16 секунд (2.09.2011 - 02:00) Dante5 написал(а):
echo '<pre>' . print_r($_GET, 1) . '</pre>';
if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
{
mysql_query("DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'") or die(mysql_error());
echo "DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'";
echo 'Запись была удалена';
}


незнаю почему но так не удаляет

а с таким кодоом удаляет
echo '<pre>' . print_r($_GET, 1) . '</pre>';
if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
echo '<pre>' . print_r($_GET, 1) . '</pre>';
{
mysql_query("DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'") or die(mysql_error());
echo "DELETE FROM `news` WHERE `id`='".(int)$_GET['id']."'";
echo 'Запись была удалена';
}


если убираю
echo '<pre>' . print_r($_GET, 1) . '</pre>';
то неработает удаление

Спустя 2 часа, 7 минут, 22 секунды (2.09.2011 - 04:07) inpost написал(а):
ЧТО ВЫВОДИТ? Что пишет?
IF(условие)
действие!!!

У тебя:
if(isset($_GET['option'],$_GET['id']) && $_GET['option'] == 'delete')
echo '<pre>' . print_r($_GET, 1) . '</pre>';

А теперь свяжи эти 2 строчки между собой! Всё, что ты видишь ниже - проходят без условия!!!

И ещё раз, выведи то, что показано на экране.

Спустя 17 часов, 39 минут, 43 секунды (2.09.2011 - 21:47) Dante5 написал(а):
все уже заработало я редактирование и удаление разделил на два файла edit.php и delet.php и работает все норм можно закрывать тему
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.