مشكل در حذف اطلاعات ديتابيس
سلام
راستش من دارم يك لينك باكس درست ميكنم
تا جاهايي رو به كمك دوستان درست كردم
ولي الان ميخواهم هر كار بتونه از پنل مديريتيش لينك خودشو حذف كنه
بعضي جاها خودنوم اين روش رو گفته بودن
کد HTML:
<a href="delete.php?linkid=21">حذف اين لينك</a>
ولي مشكل اينه كه من نميتونم اينو پياده كنم
يك كوئري هم براي حذف لينك نوشتم ولي در بخش ارسال دستور از طريق لينك به اين كوئري در قسمت html مشكل دارم
كد رو ميذارم دوستان راهنمايي كنيد يا روي كد پياده كنيد
<?php
session_start();
include('config/config.php');
include('config/Template.php');
if(isset($_SESSION['username']))
{
$username=$_SESSION['username'];
}
$MyTpl = new Template();
$MyTpl -> load_file( 'temp/user.htm' );
// get link from user
$res = mysql_query("select * from `sendlink` where username='$username'");
while($link = mysql_fetch_array($res)){
$MyTpl->add_block('Links',array(
'link_title'=>$link['link_title'],
'link_url'=>$link['link_url'],
'username'=>$link['username'],
));
}
$del="DELETE FROM `sendlink` where $link[0] AND username='$username' LIMIT 1 ";
$MyTpl -> print_template();
?>
نقل قول: مشكل در حذف اطلاعات ديتابيس
نقل قول:
$MyTpl->add_block('Links',array(
'link_title'=>$link['link_title'],
'link_url'=>$link['link_url'],
'username'=>$link['username'],
));
ببینید.
شما دارید از یک سیستم template استفاده میکنید که طبق تعریفی خاص، میآد و لینک میسازه.
باید ببینید نحوهی عمل این سیستم چگونه است.
یعنی $MyTpl->add_block را بررسی کنید و ببیند که چگونه کار میکند و شما چگونه میتوانید لینک مورد نظر خودتون رو بهش بفهمونید.
نقل قول: مشكل در حذف اطلاعات ديتابيس
كار با اين سيستم رو بلد هستم
يعني با آموزشي كه داده شده بود ياد گرفتم
ولي اصلآ نميتونم در بخش ارسال آيدي لينك به فايل php براي حذف چگونه بايد عمل كرد
در اينجا نمونه كلاس تمپلت آمده است http://forum.rightclick.ir/topic-847.html
نقل قول: مشكل در حذف اطلاعات ديتابيس
:متفکر:
یعنی نمیتونید بعد از حذف اون لینک ، صفحه را نمایش دهید؟
--------------------
شما که نوشتیدش که :
delete.php?linkid=21
توسط یک تابع $_GET میتونید ای دی را بگیرید :
$del="DELETE FROM `sendlink` where link_id=\"$_GET['linkid']\" ";
نقل قول: مشكل در حذف اطلاعات ديتابيس
البته توجه داشته باشید که این منطق کاره.
حتما موارد امنیتی را هم در نظر بگیرید. هرگز یک متغیر را مستقیم وارد query نکنید.
نقل قول: مشكل در حذف اطلاعات ديتابيس
راستش درست متوجه نشدم
ميشه كمي عملي تر بگين
اينجا شما گفتين حذف كن از جدول sendlink در جايي كه آيدي لينك برابر لينك ارسال شده از طريق دستور get باشد
اينو متوجه شدم
ولي نتونستم پيادش كنم
اون كلاسي هم كه لينكش رو دادم ممنون ميشم اگر كسي بررسي كند
نقل قول: مشكل در حذف اطلاعات ديتابيس
خوب شما چه کار کردهاید که نشده؟
اصولا شما اگر این کدها رو متوجه میشید که دیگه نباید مشکلی وجود داشته باشه.
نقل قول: مشكل در حذف اطلاعات ديتابيس
خوب من از اون كلاس تمپلت استفاده كرده
به اين روش
کد HTML:
<!-- BEGIN BLOCK Links -->
<a target="_blank" href="{link_url}">{link_title}</a></font>
<!-- END BLOCK Links -->
بعدش اومدم توي اون بخش افزودن بلوك در فايل php از $link استفاده كردم كه قبلش در يك حلقه قرار گرفته است با اين ترتيب در بخش صفحه كاربر لينكها قرار ميگيره
حالا بايد از چه طريق دكمه حذف لينك را قرار بدم
اميدوارم متوجه منظورم شده باشين
نقل قول: مشكل در حذف اطلاعات ديتابيس
ببین
شما با این کار، داری یه لینک میسازی که کاربر را به یک صفحه هدایت میکنه و داخل اون صفحه، فایل شما باید پاک بشه.
دکمهی چی؟ این لینک خودش یه جور دکمه است دیگه.
نقل قول: مشكل در حذف اطلاعات ديتابيس
راستش متوجه نميشم
اگر ميتونستم مينوشتمش
اگر امكانش هست مستقيم بگين چون من الان دو روزه كل نت رو گشتم ولي نتونستم بفهمم
البته شايد اشكال كار استفاده از كلاس تمپلت هم باشه كه كار منو پيچيده ميكنه ولي اگر راه و روشش رو براي حذف يك لينك ياد بگيرم ديگه هيچ كجا مشكلي نخواهم داشت
نقل قول: مشكل در حذف اطلاعات ديتابيس
فکر میکنم بدون مطالعه میخواهید یک تکه کد را بنویسید.
اول با $_GET و $_POST اشنا شوید ، بعد با query در php . تمام مشکل در همین 2 مبحث خلاصه میشود که باید بدانید!
نقل قول: مشكل در حذف اطلاعات ديتابيس
فكر كنم من نتونستم منظور رو برسونم
اينايي رو كه گفتين بلدم
من نميدونم چطوري بايد لينك حذف رو با اون لينك تطابق بدم
الان شما يك لينك داري و ميخواي اونو حذف كني چي در مقابلش ميذاري
خوب يك كلمه مينويسي به نام حذف بعدش چطوري بايد با اون لينك در ارتباط باشه
بذارمشون داخل يك فرم ؟
چون شما گفتي بايد از طريق GET يا POST ارسالشون كنم
ميشه مثال بزنين يا روي كدهاي خودم پيادش مني
نقل قول: مشكل در حذف اطلاعات ديتابيس
نقل قول:
اگر امكانش هست مستقيم بگين چون من الان دو روزه كل نت رو گشتم ولي نتونستم بفهمم
به نظر شما اگر من را ببرند در دل نیروگاه هستهای بوشهر، همه چیز را هم به من نشان بدهند، میتوانم خودم یک نیروگاه اتمی جدید بسازم؟
مسلما نه.
چرا؟
زیرا دانش، با داشتن اطلاعات متفاوته.
شما برای یک بچهی اول دبستانی، اگر بیای تمام کتابهای انتگرال رو در اختیارش بذاری هم نمیتونه یک انتگرال ساده بگیره. چون درسته که همهی اطلاعات در اختیارش هست؛ ولی مقدمات را بلد نیست.
مثالها کمی اغراقآمیز بودند که مساله بهتر روشن بشه.
شما اگر مسائل پایهای php را ندانید، بهترین کد دنیا را هم جلوی شما بگذارند، چیزی بیش از یک سری نوشته و کد بی معنی برای شما چیزی دیگری نخواهد داشت.
شما الآن مشکل الگوریتم دارید. یعنی نمیدانید باید این مساله چگونه حل شود.
شما دارید برنامه نویسی میکنید. برنامهنویسی یعنی شما باید به کامپوتر بگید که چگونه فلان کار را انجام بدهد.
همانطور Hell Lord اشاره کرد، مسائل فنی گفته شده. شما هم به جای این سوالات، کمی دایرهی اطلاعات خود از مباحث اولیهی php و به طوری کلی طراحی وب گسترش دهید.
امیدوارم سمءتفاهمی پیشنیاد. به هر حال باید بدانید مشکلتان کجا است. اگر هم با خودتان رو راست نباشید، فقط وقت تلف خواهید کرد.
نقل قول: مشكل در حذف اطلاعات ديتابيس
نمي دونم شايد اين چنين كه شما ميگن باشه
منظور شما رو از مسائل پايه متوجه نشدم
مشكل من اين هستش كه نتونستم سوالم رو درست بپرسم و شما هم متوجه منظور من نشدين
از همگيتون ممنونم
با تشكر
نقل قول: مشكل در حذف اطلاعات ديتابيس
دوست عزیز؛
راه حل همانی است که خودتان در پست اول به آن اشاره کردید:
<a href="delete.php?linkid=21">حذف اين لينك</a>
من یه سوال دارم.
آیا شما مفهوم این خط کد را متوجه میشوید؟
نقل قول: مشكل در حذف اطلاعات ديتابيس
آقا مساله رو بزارین به عهده من
من با این کلاس تمپلیت آشنا هستم
پس...
شروع میکنیم:
ببینید، شما برای این که بتونید یک رکورد رو حذف کنید نیاز به یک کوئری دارید که اجرا بشه که همونه که نوشتید
اما باید بدونید کی اجراش کنید مثلا فرض کنید میخوایم در این کلاس تمپلیت لیست کاربران را نمایش دهیم و هر کدام رو که خواستیم حذف کنیم
برای این کار 3 فایل نیاز داریم:
1- فایل قالب:
کد HTML:
<html>
<body>
<table>
<tr>
<td> نام </td>
<td> نام خانوادگی </td>
</tr>
<!-- BEGIN BLOCK list -->
<tr>
<td> {name} </td>
<td> {lname} </td>
<td> <a href="delete.php?id={id}">حذف</a> </td>
</tr>
<!-- END BLOCK list -->
</table>
</body>
</html>
خب تا این جا شما یک قالب دارین که به ازای هر نفر، یک لینک حذف میاد جلوشون و 3 تا متغیر name، lname و id
درسته؟
خب حالا فایل پی اچ پی که اطلاعات رو نشون میده:
<?php
session_start();
include('config/config.php');
include('config/Template.php');
if(isset($_SESSION['username']))
{
$username=$_SESSION['username'];
}
$MyTpl = new Template();
$MyTpl -> load_file( 'temp/user.htm' );
// get link from user
$res = mysql_query("select * from `sendlink` where username='$username'");
while($link = mysql_fetch_array($res)){
$MyTpl->add_block('list',array(
'id'=>$link['id'],
'name'=>$link['name'],
'lname'=>$link['lname'],
));
}
$MyTpl -> print_template();
?>
و فایل آخری هم برای حذف رکورد:
<?php
session_start();
include('config/config.php');
include('config/Template.php');
if(isset($_SESSION['username']))
{
$username=$_SESSION['username'];
}
$id = @$_GET['id'];
@mysql_query("DELETE FROM `sendlink` where id='$id' LIMIT 0,1 ");
?>
امیدوارم مطلب مفید واقع شده باشه
----------------------------------------------
اگه مشکل حل شده تشکر فراموش نشه.........
:لبخند: :لبخند: :لبخند: :لبخند: :لبخند: :لبخند: :لبخند: :لبخند: :لبخند: :لبخند: :لبخند: :لبخند:
نقل قول: مشكل در حذف اطلاعات ديتابيس
آقاي AmirBeginner واقعآ ممنون
نميدونم چطوري از شما تشكر كنم
از ديگر دوستان هم كه منو همراهي كردن كمال تشكر رو دارم
فقط يك مشكل بود اونم در كوئري limit 0,1 چون اين به منظور اين بودش كه فقط يك لينك ميتونه حذف بشه
هر كار ميكردم جواب نميداد ولي صفر رو حذف كردم درست شد
فقط ديگه مونده UPDATE رو ياد بگيرم
چون INSERT , SELECT , DELETE رو ياد گرفتم اون بخش رو هم ياد بگيرم فكر كنم بخش كوئري ها تموم شه
چون اصلش همين 4 حالت هستش
فقط ميشه بگين كه @ قبل $_GET و كوئري چه كاري انجام ميده ؟
نقل قول: مشكل در حذف اطلاعات ديتابيس
نقل قول:
نوشته شده توسط
mirzajavad
آقاي
AmirBeginner واقعآ ممنون
نميدونم چطوري از شما تشكر كنم
از ديگر دوستان هم كه منو همراهي كردن كمال تشكر رو دارم
فقط يك مشكل بود اونم در كوئري limit 0,1 چون اين به منظور اين بودش كه فقط يك لينك ميتونه حذف بشه
هر كار ميكردم جواب نميداد ولي صفر رو حذف كردم درست شد
فقط ديگه مونده UPDATE رو ياد بگيرم
چون INSERT , SELECT , DELETE رو ياد گرفتم اون بخش رو هم ياد بگيرم فكر كنم بخش كوئري ها تموم شه
چون اصلش همين 4 حالت هستش
فقط ميشه بگين كه @ قبل $_GET و كوئري چه كاري انجام ميده ؟
خواهش میکنم دوست عزیز
انجمن همینش خوبه دیگه
یه روزم من یه سوال میکنم شما جواب میدین
راجع به update هم سرچ کنید قبلا یک مقاله در مورد دستورات اس کیو ال رو همین سایت گذاشته بودم
البته فکر کنم تو بخش اس کیو ال سرور یا دلفی بود
البته اون موقع اسمم AbiriAmir بود
در هر صورت سرچ کنید حتما پیدا میکنید
حالا یا مقاله منو یا صحبت های اساتید انجمن رو
و راجع به علامت @ باید بگم که این علامت جلوی نوشتن ارور رو میگیره یعنی اگر برنامه با ارور مواجه شد ارور رو نشون نمیده که البته بهتره تو پروژه نهایی از این استفاده کنید و در طول کار نباشه تا ارورهاشو متوجه بشین
آخه ارورها واسه هکرها خیلی کاربرد دارن!!!