PDA

View Full Version : راهنمایی راجع به نحوه ی حذف اطلاعات در mysl با کلیک روی آیکون



kamyarf27
شنبه 19 اردیبهشت 1394, 01:12 صبح
از دوستان عزیز کسایی که میتونن کمک کنن بگن که:
اول من با دستور mysql_fetch_array اطلاعات جدول مورد نظر رو داخل این آرایه قرار دادم به اسم $rows
و بعد هرکدوم از مقادیر آرایه رو برای نمایش دادن نوشتم echo $rows['username'] . " "; echo $rows['email'] . " ";
echo $rows['comments']."<br><br><br>";
حالا می خوام آیکونی روبروی این مقادیر قرار بدم که بر فرض کاربر وقتی روش کلیک کرد اون رکورد از دیتابیس حذف بشه
و مشکل اینجاست نمیتونم به آیکون بفهمونم الان کدوم رکورد و باید حذف کنه چون بر فرض اگه 50 تا رکورد از قبیل آی دی نام کاربری ایمیل و نظر باشه
و کنار هر کدوم از این رکورد ها هم یه آیکون باشه وقتی رو آیکون رکورد 15 کلیک بشه، رکورد 15 حذف بشه
در حال حاضر فرمی درست کردم که کاربر شماره ی ستون مورد نظر و توش مینویسه بعد از زدن دکمه ی سابمیت ستون حذف میشه ولی میخوام اینکار با استفاده از آیکون کنار هر ستون انجام بشه
لطفا راهنمایی کنید ممنون

barnamenevis2016
شنبه 19 اردیبهشت 1394, 01:54 صبح
سلام...مشخص کنید که آیا از jquery یا جاوا می تونید و میخواهید استفاده کنید یا نه؟
می تونید مثلا از کد زیر استفاده کنید...این یک روشه...


<?php
echo "<a href='#' onclick='fanc(".$rows['username'].")'>delete<a>";
?>

کد بالا یک لینک می سازه که یک ورودی که مساوی
$rows['username'] رو می گیره...که با اجراش تابع ای که نوشتید توسط مثلا jquery اجرا می شه و شما در تابع مشخص می کنید رکوردی با فلان username ای رو که به عنوا ورودی می خونه حذف کنه...یا روشای دیگه ای هم می تونه باشه...نمی دونم تونستم کمکی بکنم یا نه؟
:متفکر:

tuytoosh
شنبه 19 اردیبهشت 1394, 02:41 صبح
سلام. اگه فقط از php میخوای استفاده کنی یه روش اینه که بجای آیکن از دکمه استفاده کنی ، مثلا بصورت زیر :

foreach($users as $user){
echo "$user['name'] | $user['email'] | $user['comment']
<form name="delete">
<input type='hidden' name='id' value='$user['id']'>
<input type='submit'>
</form>
";


}

یه روش دیگه که دیگه لازم نیست از فرم و دکمه استفاده کنی اینه که از url ها استفاده کنی. مثلا آدرس هر لینک حذف کردن رو بصورت زیر بذاری :
yoursite.com/user/delete/1 و با استفاده از تابع explode آدرس رو پیمایش کنید و id هر پستی که میخوای حذف کنی رو پیدا کنی...

kamyarf27
یک شنبه 20 اردیبهشت 1394, 12:03 عصر
سلام...مشخص کنید که آیا از jquery یا جاوا می تونید و میخواهید استفاده کنید یا نه؟
می تونید مثلا از کد زیر استفاده کنید...این یک روشه...


<?php
echo "<a href='#' onclick='fanc(".$rows['username'].")'>delete<a>";
?>

کد بالا یک لینک می سازه که یک ورودی که مساوی
$rows['username'] رو می گیره...که با اجراش تابع ای که نوشتید توسط مثلا jquery اجرا می شه و شما در تابع مشخص می کنید رکوردی با فلان username ای رو که به عنوا ورودی می خونه حذف کنه...یا روشای دیگه ای هم می تونه باشه...نمی دونم تونستم کمکی بکنم یا نه؟
:متفکر:

اینو نمیدونستم ممنون که گفتی:چشمک:
ولی کلا با پی اچ پی می خواستم
بازم ممنون

kamyarf27
یک شنبه 20 اردیبهشت 1394, 12:12 عصر
سلام. اگه فقط از php میخوای استفاده کنی یه روش اینه که بجای آیکن از دکمه استفاده کنی ، مثلا بصورت زیر :

foreach($users as $user){
echo "$user['name'] | $user['email'] | $user['comment']
<form name="delete">
<input type='hidden' name='id' value='$user['id']'>
<input type='submit'>
</form>
";


}

یه روش دیگه که دیگه لازم نیست از فرم و دکمه استفاده کنی اینه که از url ها استفاده کنی. مثلا آدرس هر لینک حذف کردن رو بصورت زیر بذاری :
yoursite.com/user/delete/1 و با استفاده از تابع explode آدرس رو پیمایش کنید و id هر پستی که میخوای حذف کنی رو پیدا کنی...

مرسی از کمکت.....لی جواب نداد :متفکر:

fh_joker
یک شنبه 20 اردیبهشت 1394, 12:46 عصر
اگه منظورتون رو درست متوجه شده باشم می تونید اینکار رو بکنید.
آیکن حذف رو لینک کنید به این شکل :

<?php echo '<a href="page.php?id='.$rows[id].'" ><img src="icon.png" /></a>';?>
منظورم از id ، id اون ستون توی دیتابیس هست ، اگر ایمیل ها تکراری نیست می تونی به جای id از ایمیل استفاده کنی.
page هم نام صفحه شماست.
بعد یه شرط بزار :

if($_REQUEST[id]!="" && isset($_REQUEST[id])){
// دستور حذف از دیتابیس
}
مقدار ID رو بگیر و عملیات حذف رو انجام بده. می تونی بعد از حذف هم صفحه رو رفرش کنی تا ستون های باقی مانده دیده بشه.
ولی اینکار امنیت بالایی نداره . حتما قبل از قراردادن مقدار توی کوئری محتوی رو بررسی کن.
در ضمن با ایجکس هم سرعت بالاتری داره هم زیبایی بیشتر

kamyarf27
یک شنبه 20 اردیبهشت 1394, 17:05 عصر
اگه منظورتون رو درست متوجه شده باشم می تونید اینکار رو بکنید.
آیکن حذف رو لینک کنید به این شکل :

<?php echo '<a href="page.php?id='.$rows[id].'" ><img src="icon.png" /></a>';?>
منظورم از id ، id اون ستون توی دیتابیس هست ، اگر ایمیل ها تکراری نیست می تونی به جای id از ایمیل استفاده کنی.
page هم نام صفحه شماست.
بعد یه شرط بزار :

if($_REQUEST[id]!="" && isset($_REQUEST[id])){
// دستور حذف از دیتابیس
}
مقدار ID رو بگیر و عملیات حذف رو انجام بده. می تونی بعد از حذف هم صفحه رو رفرش کنی تا ستون های باقی مانده دیده بشه.
ولی اینکار امنیت بالایی نداره . حتما قبل از قراردادن مقدار توی کوئری محتوی رو بررسی کن.
در ضمن با ایجکس هم سرعت بالاتری داره هم زیبایی بیشتر

سلام
ممون الان تونستم به اون آیکون بفهمونم که وقتی روش کلیک شد مربوط به کدوم رکورد از دیتابیسه!
اما ....اگر من 100 رکورد داشته باشم باید برای هر 100 رکورد صفحه ای جداگانه با محتویات حذف از دیتابیس بنویسم؟؟؟
اینجا منظورتونو نفهمیدم لطفا کمی تفسیر کنید

tuytoosh
دوشنبه 21 اردیبهشت 1394, 00:10 صبح
لازم نیس 100 تا صفحه بنویسید
یک صفحه بنویسید که میتونه بی نهایت پست رو حذف کنه
یک صفحه با نام page.php بنویسید و توش همونطور که دوستمون گفت کد زیر رو بنویسید :

​if($_GET[id]!="" && isset($_GET[id])){
//delete post code comes here
}


php خودش id رو از آدرس میگیره . اگه میخواید بدونید چجوری میگیره درباره فرم ها و نحوه ی دریافت داده ها از فرم ها تحقیق کنید و مخصوصا متد get

http://www.w3schools.com/php/php_forms.asp

kamyarf27
سه شنبه 22 اردیبهشت 1394, 15:27 عصر
لازم نیس 100 تا صفحه بنویسید
یک صفحه بنویسید که میتونه بی نهایت پست رو حذف کنه
یک صفحه با نام page.php بنویسید و توش همونطور که دوستمون گفت کد زیر رو بنویسید :

​if($_GET[id]!="" && isset($_GET[id])){
//delete post code comes here
}


php خودش id رو از آدرس میگیره . اگه میخواید بدونید چجوری میگیره درباره فرم ها و نحوه ی دریافت داده ها از فرم ها تحقیق کنید و مخصوصا متد get

http://www.w3schools.com/php/php_forms.asp
متوجه منظورت شدم سوالم یه چیز دیگس با get و post آشنایی دارم ولی وقتی میگی آیکونی هست که اگه روش کلیک بشه میره صفحه ی با این لینک:

echo '<a href="page.php?id='.$rows[id].'" ><img src="icon.png" /></a>';
و بر فرض من روی رکوردی که آیدیش 43 هست کلیک کنم میره صفحه ی page.php
حالا تو این صفحه کوئری حذف از دیتابیسو مینویسم اما چجوری بگم الان کدوم آیدیو باید حذف کنه؟

<?php
if($_REQUEST['id'] != "" && isset($_REQUEST['id'])){ $my_con = @mysql_connect("localhost", "root", ""); $query = mysql_select_db("new_k", $my_con); if($query) { $sql = "DELET FROM `users` WHERE `id` = '$_REQUEST[id]'"; $delete = mysql_query($sql, $my_con); if($delete) { echo "ستون مورد نظر با موفقیت حذف شد"; } else { echo "ستون مورد نظر حذف نشد دوباره امتحان کنید"; }
}}

kamyarf27
سه شنبه 22 اردیبهشت 1394, 18:41 عصر
آقا دم همتون گرم مشکل حل شد