PDA

View Full Version : ویرایش مطلب



jalaladdin
سه شنبه 11 مرداد 1390, 18:18 عصر
برای ویرایش مطلب بدین صورت کد نوشتم حالا برای تغییرات اعمال شده چه تغییراتی در این کد بدهم



$Query = mysql_query("SELECT * FROM `message` ");
$row_rsEdit = mysql_fetch_array($Query);
$EditNews = mysql_query ("UPDATE `message` SET `title` = '".$_POST['title']."', `content` = '".$_POST['text1']."' WHERE `id` = '".$_POST['id']."' LIMIT 1");
if ( $EditNews )
{
$Prompt = '<font color="green"><b>تغییرات با موفقیت اعمال شدند.</b></font>';
}
else
{
$Prompt = '<font color="red"><b>متاسفانه مشکلی در ثبت تغییرات وجود دارد.</b></font>';
}
?>

<form action="" method="POST">






عنوان:<input type="text" name="title" id="man2" size="50" dir="rtl" class="bg-blue02" value="<?php echo $row_rsEdit['title']; ?>"><p>
متن:<textarea name='text1' rows='2' id='text1' style='WIDTH:80px; HEIGHT:100%;'><?php echo $row_rsEdit['text1']; ?></textarea>

<script type='text/javascript'>
//<![CDATA[
// Replace the <textarea id='editor1'> with an CKEditor instance
var editor = CKEDITOR.replace( 'text1' );
//]]>

</script>
<input type="submit" name="send" value=" <?php echo $EditNews ; ?>" />



</form>

mamali-mohammad
سه شنبه 11 مرداد 1390, 19:34 عصر
چه مشکلی هست در اجرای کد ؟
کار نمی کنه ؟

jalaladdin
سه شنبه 11 مرداد 1390, 22:45 عصر
میخوام مطلب را آپدیت کنم وقتی روی send کلیک میکنم تغییری صورت نمیگیرد

mamali-mohammad
چهارشنبه 12 مرداد 1390, 00:20 صبح
if (isset($_GET['id'])){
$id=$_GET['edit'];
}

$title=mysql_real_escape_string($_POST['title']);

if ($send=="$id"){
$sql=mysql_query("UPDATE page SET title='$title' WHERE id='$id'");
$error='<span class="error">تغییرات با موفقیت انجام شد</span>';
}

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" name="form" method="post">
<input type="text" value="" name="title" />
<input name="ok" type="hidden" value="<?php echo $id; ?>" />
<input type="submit" name="button" value="Send"/>
</form>

jalaladdin
چهارشنبه 12 مرداد 1390, 00:44 صبح
با توجه به کدی که نوشتم مطلب از پایگاه داده بیرون کشیدم حالا برای آپدیت مطلب چه تغییراتی در کدی که نوشتم بدهم
تا در همین صفحه ای که مطالب واکشی کردم مطلب را ویرایش کنم ودر نهایت در پایگاه داده ذخیره کنم

jalaladdin
پنج شنبه 13 مرداد 1390, 11:44 صبح
کسی نیست جواب بده

Nima0711
جمعه 14 مرداد 1390, 01:55 صبح
سلام
با اجازه دوستان من یکمی شما رو راهنمائی می کنم
بحای استفاده از متود post شما از یک دستور شرط استفاده کنید بدین گونه که

if($_POST['Button Name']){

//do stuff

}


و به جای استفاده از mysql_fetch_array از ,mysql_fetch_object استفاده کنید چون کار با یک شی به مراتب از کار با یک آرایه راحت تر است

در مورد سوالی که پرسیده اید باید جواب دهم که شما برای بار اول از update خوده phpmyadmin استفاده کنید و قسمت sql statement را کپی کنید و به جای مقادیر ، متغییر جایگزین کنید .
در صورت نیاز به راهنمائی می توانید با من در تماس باشید .

ghaedsharafi.nima@yahoo.com

jalaladdin
جمعه 14 مرداد 1390, 23:30 عصر
این هم صفحه ای میباشد که مطالب را از پایگاه داده بیرون میکشم

if ( isset($_GET['id']) && ($_GET['id'] !== "") )
{
$Query = mysql_query("SELECT * FROM `message` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1 ");
while($row_rsEdit = mysql_fetch_array($Query)){
$tit= $row_rsEdit['title'];
$text= $row_rsEdit['text1'];


}
}
mysql_close($con);
?>

<p>
<form id="signupForm" action="update.php" method="post" style="direction:rtl">



عنوان:<input type="text" name="title" id="man2" size="50" dir="rtl" class="bg-blue02" value="<?php echo $tit?>"><p>
متن:<textarea name='text1' rows='2' id='text1' style='WIDTH:80px; HEIGHT:100%;'><?php echo $text; ?></textarea>

<script type='text/javascript'>
//<![CDATA[
// Replace the <textarea id='editor1'> with an CKEditor instance
var editor = CKEDITOR.replace( 'text1' );
//]]>

</script>
<input type="submit" name="send" value="ارسال" />



</form>

jalaladdin
جمعه 14 مرداد 1390, 23:30 عصر
کدهای updateمطلب را دریک صفحه جداگانه نوشتم اما مطلب تغییر یافته در پایگاه داده ذخیره نمیشود

$title=mysql_real_escape_string($_POST['title']);
$text1=mysql_real_escape_string($_POST['text1']);

$EditNews = mysql_query ("UPDATE `message` SET `title` = '".$title."', `text1` = '".$text1."' WHERE `id` = '".$_GET['id']."' LIMIT 1");

if ( $EditNews )
{
$Prompt = '<font color="green"><b>تغییرات با موفقیت اعمال شدند.</b></font>';
echo $Prompt;
}
else
{
$Prompt = '<font color="red"><b>متاسفانه مشکلی در ثبت تغییرات وجود دارد.</b></font>';

echo $Prompt;}

jalaladdin
شنبه 15 مرداد 1390, 12:04 عصر
لطفا راهنمای کنید

Nima0711
شنبه 15 مرداد 1390, 13:50 عصر
شما دقیقاً مشکلتون چیه ؟
فیلد هائی که از سی کوئل می گیرید کار نمایش داده نمی شه و یا فیلد ها به دیتا بیس ارسال نمی شه ؟

این فایل رو من خودم نوشتم و کار هم میکنه
کامت های داخل فایل را دنبال کنید به عنوان الگوریتم

jalaladdin
شنبه 15 مرداد 1390, 18:20 عصر
در پست قبلب عرض کردم خدمتتون که من در قسمت update مشکل دارم برای ویرایش مطلب اطلاعات مربوط به هر پست از پایگاه داده بیرون کشیده میشود اما پس از ویرایش هر مطلب ،آن مطلب تغییر یافته update نمیشود با توجه به کدی که نوشتم

این هم صفحه ای میباشد که مطالب را از پایگاه داده بیرون میکشم

f ( isset($_GET['id']) && ($_GET['id'] !== "") ){ $Query = mysql_query("SELECT * FROM `message` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1 "); while($row_rsEdit = mysql_fetch_array($Query)){ $tit= $row_rsEdit['title']; $text= $row_rsEdit['text1']; }} mysql_close($con); ?> <p> <form id="signupForm" action="update.php" method="post" style="direction:rtl"> عنوان:<input type="text" name="title" id="man2" size="50" dir="rtl" class="bg-blue02" value="<?php echo $tit?>"><p>متن:<textarea name='text1' rows='2' id='text1' style='WIDTH:80px; HEIGHT:100%;'><?php echo $text; ?></textarea> <script type='text/javascript'> //<![CDATA[ // Replace the <textarea id='editor1'> with an CKEditor instance var editor = CKEDITOR.replace( 'text1' ); //]]> </script> <input type="submit" name="send" value="ارسال" /> </form>


کدهای updateمطلب را دریک صفحه جداگانه نوشتم اما مطلب تغییر یافته در پایگاه داده ذخیره نمیشود


$title=mysql_real_escape_string($_POST['title']);$text1=mysql_real_escape_string($_POST['text1']); $EditNews = mysql_query ("UPDATE `message` SET `title` = '".$title."', `text1` = '".$text1."' WHERE `id` = '".$_GET['id']."' LIMIT 1"); if ( $EditNews ){ $Prompt = '<font color="green"><b>تغییرات با موفقیت اعمال شدند.</b></font>'; echo $Prompt;}else{ $Prompt = '<font color="red"><b>متاسفانه مشکلی در ثبت تغییرات وجود دارد.</b></font>'; echo $Prompt;}

alismith
شنبه 15 مرداد 1390, 18:51 عصر
سلام
دوست عزیز شما id را از quote بیرون بیارید

البته می تونید از تابع intVal هم استفاده کنید


intval($_GET['id'])


موفق باشید

Nima0711
شنبه 15 مرداد 1390, 20:51 عصر
che neyazi be estefade az tabe intval hast mage mikhahid k amaliat reyazi rosh anjam bedid!!

Nima0711
شنبه 15 مرداد 1390, 20:57 عصر
$id = $_GET['id'];
$EditNews = mysql_query("UPDATE `message` SET `title` = '$title', `text1` = '$text1' WHERE `id` = '$id'");

این کد باید کار کنه

alismith
شنبه 15 مرداد 1390, 21:00 عصر
سلام

آقا لطف کن فارسی بنویس!

در رابط با این تابع هم ، دوستمون دارن با GET شناسه مربوط به رکورد مورد نظر رو برای update انتخاب می کنه و دراین صورت ما می تونیم از عدد بود مقدار و حتی از sql injection جلوگیری کنیم

البته تابع is_numeric هم می تونه کاربرد داشته باشه


موفق باشید

Nima0711
شنبه 15 مرداد 1390, 21:34 عصر
ممنون نکته خوبی بود

jalaladdin
دوشنبه 17 مرداد 1390, 00:14 صبح
با توجه به اینکه کوئری updateنوشتم مطلب ذخیره نمیگردد

Nima0711
دوشنبه 17 مرداد 1390, 00:23 صبح
if ( isset($_GET['id']) && ($_GET['id'] !== "")

شرطتون اشتباهه

به جای استفاده از != از !== استفاده کردید