PDA

View Full Version : حذف رکورد از دیتابیس



هانیه دره باغی
پنج شنبه 01 خرداد 1393, 21:14 عصر
سلام من یه جدول دارم که اطلاعاتی رو از جدول میاره وداخلش نمایش می ده که داخل هر سطر یک لین برای حذف کردن است (مانند تتصویر ضمیمه)
کوئری حذف رو هم نوشتم ولی نمی دونم چرا عمل نمی کنه

این کدهای لینکم <a class="btn btn-danger btn-small" href="deletnews.php?newsid='<?php echo $row['newsid'];?>'">
حذف خبر
کوئری حذف
<?php
if(isset($_GET))
{
$_result=doquery("delete from news where newsid='".$_GET['newsid']."' and userid='" .$_SESSION['userid']."' ");
echo "sucsesful";
}
?>

farazsahebdel
پنج شنبه 01 خرداد 1393, 21:33 عصر
سلام

doquery چی ؟

هانیه دره باغی
پنج شنبه 01 خرداد 1393, 21:36 عصر
یه تابع که قبلا نوشتم تا مرتب نخوام کدهای مربوط به اتصال دیتابیسو بنویسم
این مشکلی نداره چون عمل select , insert رو با همین انجام می دم کار می کنه فقط مشکل با update ,deleteداره

سوداگر
پنج شنبه 01 خرداد 1393, 21:59 عصر
به جای if(isset بنویسید if(!empty($_GET چون isset($_GET همیشه true هست + اروری چیزی میده؟
دستور حذف رو یه خورده مرتب تر (از امکانات ادیتور سایت استفاده کنید) کنید ببینیم """" و ''' ها فکر کنم جور نباشه:متفکر:

هانیه دره باغی
جمعه 02 خرداد 1393, 10:21 صبح
نه هیچ اروری نمی ده به نظر خودم اصلا کوئری انجام نمی شه یه سره پیغام رو چاپ می کنه

هانیه دره باغی
شنبه 03 خرداد 1393, 13:02 عصر
اساتید محترم کسی نیست که بتونه کمک کنه؟
خیلی واجبه به خدا

emadrezvani
شنبه 03 خرداد 1393, 13:09 عصر
if(!empty($_GET['newsid'])){
$_result = doquery("delete from news where newsid='".$_GET['newsid']."' and userid='" .$_SESSION['userid']."' ");
echo "sucsesful";
}

در صورت حل نشدن - بصورت ریموت حل می کنم.

هانیه دره باغی
شنبه 03 خرداد 1393, 13:13 عصر
متاسفانه حل نشد

***BiDaK***
شنبه 03 خرداد 1393, 13:14 عصر
بالای صفحه سشن استارت شده؟ و بعد چک کن سشن userid وجود داره یا نه توسط isset و نکته ی دیگه بهتره اول با isset پارمتر آدرس چک بشه وجود داره یا نه و بعد با empty و بعد از کوئری یک شرط بگذار واسه affected rows یا چک کن result$ که اگه پاک شد succesful چاپ بشه

هانیه دره باغی
شنبه 03 خرداد 1393, 13:18 عصر
بله هم سشن استارت شده وهم سشن userid وجود داره
اصلا کوئری اجرا نمی شه

hamedarian2009
شنبه 03 خرداد 1393, 13:19 عصر
به نظر میاد اون لینکتون مشکل داره اگه جوری میزاشتی که بتونیم ببینیم بهتره اینطوری بنویسین

echo '<a href="deletnews.php?newsid='.$row['newsid'].'">حذف</a>';

***BiDaK***
شنبه 03 خرداد 1393, 13:24 عصر
mysql_error اکو کن.ببینیم ارور چیه

هانیه دره باغی
شنبه 03 خرداد 1393, 13:28 عصر
بزارین اصلا از اول بگم
میخوام وقتی روی حذف خبر در ضمیمه موجود در تاپیک اول کلیک شد خبر مورد نظر حذف بشه


<a class="btn btn-danger btn-small" href="deletnews.php?newsid='<?php echo $row['newsid'];?>'">
حذف خبر
</a>

این کدهای لینک بود
واین هم کدهی حذف


<?php
if(!empty($_GET['newsid']))
{
$_result=doquery("DELETE FROM news WHERE newsid='".$_GET['newsid']."' and userid='" .$_SESSION['userid']."' ");
echo"suscessful";
}
?>

هانیه دره باغی
شنبه 03 خرداد 1393, 16:02 عصر
دوست عزیز ***BiDaK***می شه بگین کجا mysql_error بزنم؟؟؟؟؟؟؟:خجالت:

فرزند کوروش
شنبه 03 خرداد 1393, 16:07 عصر
mysql_query( //QueryCode )or die(mysql_error())

این هم به این شکل اصلاح کنید

<a class="btn btn-danger btn-small" href="deletnews.php?newsid=<?php echo $row['newsid'];?> ">
حذف خبر
</a>

تو کد شما در قسمت =newsid علامت ' وجود داشت که مانع ارسال درست ای دی می شد

هانیه دره باغی
شنبه 03 خرداد 1393, 16:15 عصر
mysql_error هم اکو کردم اروری نشون نمی ده

هانیه دره باغی
شنبه 03 خرداد 1393, 16:22 عصر
من کد اصلاح کردم می نویسه sucsولی چیزی از جدول حذف نمی شه

فرزند کوروش
شنبه 03 خرداد 1393, 18:14 عصر
99 درصد بخاطر ارسال اشتباهه id هست

هانیه دره باغی
شنبه 03 خرداد 1393, 19:24 عصر
خب به نظرتون کجای این کد اشتباهه؟؟؟؟؟؟؟
لطفا راهنمایی کنید خیلی واجبه
چند روزه اسیرشم

هانیه دره باغی
شنبه 03 خرداد 1393, 22:02 عصر
اقایون وخانمهای محترم لطفا راهنماییی بفرمایید.

***BiDaK***
شنبه 03 خرداد 1393, 22:32 عصر
اگه مقادیر درست دریافت میشه پس می مونه کوئری.احتمال داره کوئری رکورد مورد نظرو پیدا نمیکنه.
یبار رشته ی کوئریو چاپ کنید ببینید دقیقا چی میگذارید میتونید همونو داخل دیتابیستون اجرا کنید ببینید و یه احتمال به userid هم داره.
نیاز بود واسه تست از قسمت and به بعدو پاک کن.

سوداگر
شنبه 03 خرداد 1393, 23:06 عصر
به نظرم مشکل از سشن میتونه باشه. یه دفعه بدون هیچ شرطی .$_SESSION['userid'] و $row['newsid'] رو چاپ کنید ببینید درست چاپ میشه؟

فرزند کوروش
یک شنبه 04 خرداد 1393, 09:23 صبح
این رو اجرا کن و خروجی رو همینجا بزار

<?php
if(!empty($_GET['newsid']))
{ echo "DELETE FROM news WHERE newsid='".$_GET['newsid']."' and userid='" .$_SESSION['userid']."' ";
$_result=doquery("DELETE FROM news WHERE newsid='".$_GET['newsid']."' and userid='" .$_SESSION['userid']."' ");
echo"suscessful";
}
?>

هانیه دره باغی
دوشنبه 05 خرداد 1393, 18:33 عصر
با تشکر از همه مشکل حذف برتر شد حالا برای update همه رکوردارو یکی می کنه نمی دونم چه طور بهش بگم خبر با این id رو تغییر بده

هانیه دره باغی
دوشنبه 05 خرداد 1393, 18:37 عصر
if(! empty($_POST)&&isset($_POST["updatenews"]))
{
$title=$_POST['title'];
$date=$_POST['date'];
$berifnews=$_POST['berifnews'];
$fulltext=$_POST['fulltext'];
if(doquery("UPDATE `news` SET `title` = '". $title."',`date` = '". $date."',`berifnews` = '". $berifnews."',
`fulltext` = '". $fulltext."',`userid` = '". $_SESSION['userid']."',`type` = '". $_SESSION['type']."'
WHERE `userid`='".$_SESSION['userid']."' "));

echo 'ذخیره تغییرات با موفقیت انجام گردید';


}

این کد update

if(isset($_GET['editnews']))
{
?>
<div class="col-lg-6">

<div class=" widget-table action-table">
<legend class="section">ویرایش وحذف اخبار</legend>
<div class="widget-content">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th width="20%;"> عنوان </th>
<th width="13%;"> تاریخ</th>
<th width="20%;"> خلاصه خبر </th>
<th width="20%;"> متن کامل خبر</th>
<th class="td-actions">عملیات </th>
</tr>
</thead>

<?php
$result=doquery("select * from news where type='1' ");
if($result->num_rows)
{
while($row=mysqli_fetch_array($result))
{
?>
<form class="form-horizontal" method="post" action="" >
<tbody>
<tr>
<td><input style="width:100%; background-color:rgba(0,0,0,0); border:0; color:#fff;"
type="text" name="title" id="normal-field" class="form-control"
value="<?php echo $row['title'];?> " /></td>
<td><input style="width:100%; background-color:rgba(0,0,0,0); border:0; color:#fff;"
type="text" name="date" id="normal-field" class="form-control"
value="<?php echo $row['date'];?> " /> </td>
<td><textarea style="width:100%; background-color:rgba(0,0,0,0); border:0; color:#fff;"
name="berifnews" id="normal-field" class="form-control"
value="<?php echo $row['berifnews'];?> "></textarea> </td>
<td><textarea style="width:100%; background-color:rgba(0,0,0,0); border:0; color:#fff;"
name="fulltext" id="normal-field" class="form-control"
value="<?php echo $row['fulltext'];?> "></textarea> </td>
<td class="td-actions">
<input class="btn btn-small btn-success"type="submit" name="updatenews" value="ذخیره تغییرات"/>
</form>
<a class="btn btn-danger btn-small" href="?deletnews=<?php echo $row['newsid'];?>">
حذف خبر
</a>
</td>
</tr>
</tbody>

<?php
}
}
?>
</table>
</div>
</div>
</div>
<?php
}

فرزند کوروش
دوشنبه 05 خرداد 1393, 19:26 عصر
باید مقدار ای دی هم یا روش پست یا گت ارسال کنی بعد توی شرط کوئری بگی که

doquery("UPDATE `news` SET `title` = '". $title."',`date` = '". $date."',`berifnews` = '". $berifnews."',
`fulltext` = '". $fulltext."',`userid` = '". $_SESSION['userid']."',`type` = '". $_SESSION['type']."'
WHERE `userid`='".$_SESSION['userid']."' AND id = '".$_GET['id'."' "));

هانیه دره باغی
دوشنبه 05 خرداد 1393, 23:00 عصر
اینو می دونم که باید آی دی سطر مورد نظر رو ارسال کرد ولی نمی دونم چه جوری؟

فرزند کوروش
سه شنبه 06 خرداد 1393, 09:57 صبح
خب دیگ یا به روش پست یا به روش گت
ببین این روش گت هست

<a class="btn btn-danger btn-small" href="editnews.php?id=<?php echo $row['newsid'];?> ">
ویرایش
</a>
بعد دقیقا مث کاری که خودت کرده بودی

if(!empty($_GET['newsid']))

{


و کوئریتو داخل شرط بنویس

هانیه دره باغی
سه شنبه 06 خرداد 1393, 18:29 عصر
ببینید من برای ویرایش کردن اطلاعاتم اونا رو تو یه جدول که هر کدوم از خونه هاش یه text box (مثل فرم) نمایش دادم در واقع یه select زدم به دیتابیسم واونا را توی جدول که مثل یه فرم نشون دادم تا کاربر هرجاشو خواست تغییر بده بعد ذخیره کنه
اول به همین متد get نوشتم مثل کاری که شما کردین ولی فقط ستون newsid رو می شناخت بقیه ستون ها رو ارور می داد
اومدم به جای لینک از دکمه استفاده کردمتا کل اطلاعات فرمم ارسال بشه
حالا مشکل اینجاست که نمی دونم چطور بش بگم فقط این سطر که دکمه ذخیره تغییراتش زده شده رو update کن
نمی دونم متوجه منظورم شدید یا نه
اینم کدای فرمم


if(isset($_GET['editnews']))
{
?>
<div class="col-lg-6">

<div class=" widget-table action-table">
<legend class="section">ویرایش وحذف اخبار</legend>
<div class="widget-content">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th width="20%;"> عنوان </th>
<th width="13%;"> تاریخ</th>
<th width="20%;"> خلاصه خبر </th>
<th width="20%;"> متن کامل خبر</th>
<th class="td-actions">عملیات </th>
</tr>
</thead>

<?php
$result=doquery("select * from news where type='1' ");
if($result->num_rows)
{
while($row=mysqli_fetch_array($result))
{
?>
<form class="form-horizontal" method="post" action="" >
<tbody>
<tr>
<td><input style="width:100%; background-color:rgba(0,0,0,0); border:0; color:#fff;"
type="text" name="title" id="normal-field" class="form-control"
value="<?php echo $row['title'];?> " /></td>
<td><input style="width:100%; background-color:rgba(0,0,0,0); border:0; color:#fff;"
type="text" name="date" id="normal-field" class="form-control"
value="<?php echo $row['date'];?> " /> </td>
<td><textarea style="width:100%; background-color:rgba(0,0,0,0); border:0; color:#fff;"
name="berifnews" id="normal-field" class="form-control"
value="<?php echo $row['berifnews'];?> "></textarea> </td>
<td><textarea style="width:100%; background-color:rgba(0,0,0,0); border:0; color:#fff;"
name="fulltext" id="normal-field" class="form-control"
value="<?php echo $row['fulltext'];?> "></textarea> </td>
<td class="td-actions">

<a href="?newsid=<?php echo $row['newsid'];?>" >
<input class="btn btn-small btn-success"type="submit" name="updatenews" value="ذخیره تغییرات"/></a>


</form>
<a class="btn btn-danger btn-small" href="?deletnews=<?php echo $row['newsid'];?>">
حذف خبر
</a>
</td>
</tr>
</tbody>

<?php

}
}
?>
</table>
</div>
</div>
</div>
<?php
}

هانیه دره باغی
چهارشنبه 07 خرداد 1393, 17:34 عصر
شرمنده کسی نتونست راهنمایی کنه؟؟؟؟