PDA

View Full Version : انتخاب اطلاعات از دیتابس به همراه chebox



neda_barnamenevis
شنبه 08 مهر 1391, 13:57 عصر
سلام
من می خواهم یک صفحه طراحی کنم
که دیتاهام را از دیتابیس select کنه بعد توی یک table نشون بده که کنار هر کدام یک checkbox هم باشه
که هر کدوم را که تیک زدم و submit را زدم از این لیست حذف بشه و در دیتابیس فیلد check=1 باشه

neda_barnamenevis
شنبه 08 مهر 1391, 14:03 عصر
اینم کدی که خودم نوشتم لطفا اصلاحش کنید

<html><head><title>MySQL Table Viewer</title></head><body>
<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = '';
$database = 'drupalfa';
$table = 'testinsert';
if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");
if (!mysql_select_db($database))
die("Can't select database");
// sending query
$result = mysql_query("SELECT * FROM {$table}");
if (!$result) {
die("Query to show fields from table failed");
}
$fields_num = mysql_num_fields($result);

echo "<table border='1'>
<tr>
<th>id</th>
<th>Firstname</th>
<th>Lastname</th>
<th>phone number</th>
<th>email</th>

</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['Fname'] . "</td>";
echo "<td>" . $row['Lname'] . "</td>";
echo "<td>" . $row['PHONE'] . "</td>";
echo "<td>" . $row['Email'] . "</td>";
echo '<td><input type="hidden" name="checkbox[]" value="false"/></td>';
echo '<td><input type="checkbox" name="checkbox[]" value="true"/></td>';

echo "</tr>";

}
echo "</table>";


mysql_free_result($result);
?>

id1385
شنبه 08 مهر 1391, 19:30 عصر
بهترین روش برای اینکار استفاده از جی کوئری هستش، این نمونه روببینید تقریباً بدردتون میخوره.
در این نمونه علامت دست برای ویرایش و علامت ضربدر برای حذف آیتم می باشد.

فقط فایل کانفیگ یاتون نره تغییر بدید.

http://barnamenevis.org/showthread.php?362762-%D9%86%D9%85%D9%88%D9%86%D9%87-%DA%A9%D8%A7%D9%85%D9%84-%D8%AB%D8%A8%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%D8%8C-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D9%88-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-jquery-%D9%88-php

neda_barnamenevis
یک شنبه 09 مهر 1391, 07:33 صبح
فایل من اینقدرها هم پیچیده نیست یک سری اسم و فامیل و ایمیل است که می خواهم کنار هر اسمی یک checkbox باشه که وقتی آن را تیک زدیم دکمه subit را زدیم از لیست حذف شود

neda_barnamenevis
یک شنبه 09 مهر 1391, 10:30 صبح
اینم شکل فایل من حالا می خواهم اگه checkbox تیک خورد دیگر در این لیست نشان ندهد

patriotic
یک شنبه 09 مهر 1391, 15:12 عصر
<?php
if(isset($_POST['checkbox'])){
$select=array();
$select=$_POST['checkbox'];
foreach($select as $delete){
$query="DELETE FROM table_name WHERE id='".$delete."'";
mysql_query($query,$link);
}
}

echo "<form action=\"\" method=\"post\">";
echo "<table border='1'>
<tr>
<th>id</th>
<th>Firstname</th>
<th>Lastname</th>
<th>phone number</th>
<th>email</th>
<th>delete</th>
</tr>";

while($row = mysql_fetch_array($result))
{
?>
<tr>
<td> <?php echo $row['id'] ?> </td>
<td><?php echo $row['Fname'] ?> </td>
<td><?php echo $row['Lname'] ?> </td>
<td><?php echo $row['PHONE'] ?> </td>
<td><?php echo $row['Email'] ?> </td>
<td><input type="checkbox" name="checkbox[]" value="<?php $row['id'];?>"/></td>
</tr>
<?php
}
echo "</table>";
echo "</form>";
?>


کد بالا کار شما رو راه میندازه.... واسه هر سطر یک چک باکس با مقدار ID اون طرف در نظر میگیره و به صورت پست مفرسته به همون صفحه کد:



if(isset($_POST['checkbox'])){
$select=array();
$select=$_POST['checkbox'];
foreach($select as $delete){
$query="DELETE FROM table_name WHERE id='".$delete."'";
mysql_query($query,$link);
}
}



میاد چک میکنه ببینه چکباکسی تیک خورده یا نه...اگه خورده بود کاره حذف کردن رو انجام میده....

patriotic
یک شنبه 09 مهر 1391, 15:23 عصر
اگه واسه کسی سوال شده چرا مقدار چک باکس رو تو حلقه انداختم باید بگم که چون امکان داره کسی مثلا 4تا چک باکسی رو تیک بزنه اول مقادیر رو تو یک ارایه ذخیره کردم بعدش انداختم تو حلقه تا تمام مقدادیر داخل ارایه رو واسمون تو خروجی بده!

neda_barnamenevis
دوشنبه 10 مهر 1391, 08:04 صبح
اگه واسه کسی سوال شده چرا مقدار چک باکس رو تو حلقه انداختم باید بگم که چون امکان داره کسی مثلا 4تا چک باکسی رو تیک بزنه اول مقادیر رو تو یک ارایه ذخیره کردم بعدش انداختم تو حلقه تا تمام مقدادیر داخل ارایه رو واسمون تو خروجی بده!


با تشکر از جوابتون هیچ جایی توی کد توضیح ندادین $delete و $link کجا تعریف شده
و یک سوال دیگه من نمی خواهم از دیتابس پاک بشه می خواهم وقتی checkbox انتخاب شد مقدارش در دیتابس ۱ بشه و بعد به این کد بگویم اگر مقدار checkbox = 1 بود دیگر در این لیست نشان ندهد

neda_barnamenevis
دوشنبه 10 مهر 1391, 08:46 صبح
جهت اطلاع بقیه این کد من است بدون مشکل فقط نمیدانم چرا یکبار صفحه باید refresh شود تا کار کند


<html><head><title>MySQL Table Viewer</title></head><body>

<?php

$db_host = 'localhost';
$db_user = 'root';
$db_pwd = '';

$database = 'drupalfa';
$table = 'testinsert';

if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");

if (!mysql_select_db($database))
die("Can't select database");

// sending query
$result = mysql_query("SELECT * FROM {$table}");
if (!$result) {
die("Query to show fields from table failed");
}

$fields_num = mysql_num_fields($result);


if(isset($_POST['checkbox'])){
$select=array();
$select=$_POST['checkbox'];

foreach($select as $delete){


// $query="DELETE FROM testinsert WHERE id='".$delete."'";
//$query="UPDATE FROM testinsert SET checkbox='1' WHERE id='".$delete."'";
mysql_query("UPDATE testinsert SET checkbox='1' WHERE id = '$delete'")or die(mysql_error());
// mysql_query($query)or die(mysql_error());

}
}


echo "<form action=\"\" method=\"post\">";

echo "<table border='1'>
<tr>
<th>id</th>
<th>Firstname</th>
<th>Lastname</th>
<th>phone number</th>
<th>email</th>
<th>checkbox</th>

</tr>";
while($row = mysql_fetch_array($result))
{
if ($row[checkbox]==0){
?>
<tr>
<td> <?php echo $row['id'] ?> </td>
<td><?php echo $row['Fname'] ?> </td>
<td><?php echo $row['Lname'] ?> </td>
<td><?php echo $row['PHONE'] ?> </td>
<td><?php echo $row['Email'] ?> </td>
<td><input type="checkbox" name="checkbox[]" value="<?php echo $row['id'];?>"/></td>
</tr>
<?php
}
}
echo "</table>";
echo "<input type='submit' value='Delete Users' name='delete' />";

echo "</form>";


?>

patriotic
دوشنبه 10 مهر 1391, 09:53 صبح
من دقیق نمیدونم اما فکر کنم اگه کانکشن دیتابیستونو داخل یک متغییر ذخیره کنید!یعنی:




$con=mysql_connect($db_host, $db_user, $db_pwd)



بعد همون متغیر رو به کوئری بدین مشکل رفرش کردن صفحه حل میشه!





mysql_query($query,$con);






واسه اینم که گفتین میخواین حذف نشه و فقط مقدار تغییر کنه میتونید در کوئری:




foreach($select as $delete){ $query="DELETE FROM table_name WHERE id='".$delete."'"; mysql_query($query,$link); }



به جای DELETE از دستور UPDATE استفاده کنید!
تمام کد مثه قبلیه قفط کوئریش فرق میکنه!کوئریی که داخل حلقه میره!




foreach($select as $up){
$query="UPDATE table_name SET column1='value' WHERE id='".$up."'";
mysql_query($query,$link);
}

neda_barnamenevis
دوشنبه 10 مهر 1391, 13:13 عصر
مشکل refresh که حل نشد
در مورد دستور update ممنون
اگر دقت کرده باشین در کد بالایی اعمال شده
بازم ممنون