PDA

View Full Version : مبتدی: چرا این کد برای بار اول اجرا نمیشه؟؟؟؟



نیلوفر66
شنبه 15 شهریور 1393, 10:51 صبح
برای حذف رکورد مورد نظر باید چندبار روی لینک حذف کلیک کنم تا حذف بشه (بیشتر از دوبار)!حتی برای بار اول هم از دیتابیس حذف نمیشه!!!
چرا؟تمام فایل ها هم در دایرکتوری اصلی هست.



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="css-panel.css">
<script>
function dele(code){
resulte = window.confirm ( "آیا مطمئن هستید حذف شود ؟" ) ;
if ( !resulte )
return false ;
else
location.href = "/site-delete-data.php?id="+code;

}
</script>
</head>

<body>
<table align="center"cellpadding="5" cellspacing="1" width="500" border="0">
<tr class="tr"><td colspan="5" height="30">مشاهده سایت ها</td></tr>
<tr class="trr">
<div style="font-size:10px;font-weight:bold;"><td></td><td>کد سایت</td><td>نام سایت</td><td>آدرس سایت</td><td>تلفن سایت</td></div></tr>
<?php

include('db.php');
$cp=0;
$link=mysql_query("SELECT * FROM site ")or die(mysql_error());

while($row=mysql_fetch_assoc($link))
{

$cp++;
echo "<tr align='center' height='30' bgcolor=".(($cp%2)?"#E1E1E1":"#B3B3FF")." style='font-size:14px;'>";
echo "<td><a href='' onclick='dele($row[s_code]);' ><img src='img/remove.png' /></a></td>
<td>$row[s_code]</td>
<td>$row[s_name]</td>
<td>$row[s_address]</td>
<td>$row[s_phone]</td>
</tr>";

}

?>
</table>
</body>
</html>

کد صفحه حذف


<?php
include('db.php');
$site=$_GET['id'];
$link1="delete from site where s_code=$site";
mysql_query($link1) or die (mysql_error());
echo header('location:com-panel.php?cpage=siteedit&sitepage=view');
?>

bagherok
شنبه 15 شهریور 1393, 12:03 عصر
فانکشن dele که درست کارمیکنه
اما شما تو خط 35 به جای
href=''

href='#' بذارید ببینید درست میشه یا نه

فرزند کوروش
شنبه 15 شهریور 1393, 12:13 عصر
اگر منظورت اینه که بار اول دلیت نمیشه ، ینی رکوردش هنوز هست و با رفرش رکورد حذف میشه. مشکلت سادس
شما اول تو کد select میکنی بعد delete
در صورتی که کد delete باید بالا تر از select قرار بگیره
ینی اول سلکت بعد دلیت

bagherok
شنبه 15 شهریور 1393, 12:50 عصر
اگر منظورت اینه که بار اول دلیت نمیشه ، ینی رکوردش هنوز هست و با رفرش رکورد حذف میشه. مشکلت سادس
شما اول تو کد select میکنی بعد delete
در صورتی که کد delete باید بالا تر از select قرار بگیره
ینی اول سلکت بعد دلیت

چه ربطی داره!
اون سلکت برای نمایش رکوردها تو جدول هست .

فرزند کوروش
شنبه 15 شهریور 1393, 14:07 عصر
دوست عزیز سورس به صورت خطی خونده میشه
بزار برات مثال بزنم
اینجا سیستم اول میاد کوئری میگیره ینی از دیتابیسی ک هنوز اون رکورد(همون که رکوردی که قرار بود حذف بشه) داخلش وجود داره ، بنابر این لیست رکورد ها ساخته میشه
بعد در خط های بعدی کوئری دلیت اجرا میشه. و اون سطر حذف میشه
خب اینجا ما هنوز رکوردی ک در واقع حذف شده هست رو میبینیم(چون اول سلکت انجام شده)
حالا اگر دستور دلیت بالاتر باشه این اتفاق میفته
ابتدا رکورد حذف میشه و سپس select انجام میشه
بنابراین رکورد حذف شده دبگه وجود نداره

امیدوارم منظورمو رسونده باشم

--------------------------------------------------------------------------------------------------------
بله ، بله شما درست میگید من الان سورس رو دقیق دیدم ، ایشون منتقل میکنند به یک صفحه دیگه درخواست رو ! اشباه از من بود(البته این توضیح درسته به شرط اینکه حذف هم داخل همین صفحه اتفاق بیفته )

برای مشکل شما ، اول بیا تو صفحه site-delete-data.php اون هدر برای ریدایرکت رو حذف کن
بعد بررسی کن کدی که با گت میفرستی تو اون صفحه درست ارسال میشه یا نه . ینی توی گت id قرار داره یا نه
اگر وجود نداشت دستو onClick رو تغییر بده به این شکل



echo "<td><a href='' onclick='onClick=\"dele('$row[s_code]')\" ><img src='img/remove.png' /></a></td> ";

نیلوفر66
یک شنبه 16 شهریور 1393, 11:16 صبح
با رفرش که حل نشده....گاهی با یکبار دیلیت پاک میشه گاهی اصلا پاک نمیشه...
نحوه آدرس دهی درسته؟ روی لوکال کدها بهتر اجرامیشه تا روی هاست!!!!مثلا دستور header رو برداشتم echo $site; گذاشتم روی لوکال جواب داد اما روی هاست نه فقط از روی url فهمیدم ارسال شده.
با راهنمایی شما کد رو به شکل زیر نوشتم جواب دادم.
<td><a href='#' onClick=\"dele('$row[s_code]')\" ><img src='img/remove.png' /></a></td>

نیلوفر66
یک شنبه 16 شهریور 1393, 11:19 صبح
با رفرش که حل نشده....گاهی با یکبار دیلیت پاک میشه گاهی اصلا پاک نمیشه...
نحوه آدرس دهی درسته؟ روی لوکال کدها بهتر اجرامیشه تا روی هاست!!!!مثلا دستور header رو برداشتم echo $site; گذاشتم روی لوکال جواب داد اما روی هاست نه فقط از روی url فهمیدم ارسال شده.
با راهنمایی شما کد رو به شکل زیر نوشتم جواب دادم.
<td><a href='#' onClick=\"dele('$row[s_code]')\" ><img src='img/remove.png' /></a></td>
که احتمال میدم خطا از href='#' بود.