رفتن به مطلب

استخراج فیلد خاص از یک تیبل خاص


پست های پیشنهاد شده

تشکر.

الان فرض کنید ما یه همچین جدولی داریم.

post-317-0-00011600-1393431505_thumb.png

برای هر مورد گزینه edit را کنارشون قرار میدیم و لازمه که روی edit کلیک میشه فیلدها ها از دیتابیس در فرم ویرایش فراخوانده بشه. با کدی که بالا عنایت فرمودید این مورد میسر هست حالا سوال اینه که

چطوری باید باشه که اطلاعات مختص هر فرد لود بشه یعنی لینک گزینه edit چی باید باشه و همچنین فرم edit ی که قرار جزئیات از دیتابیس برای ویرایش توش لود بشه از کجا بفهمه روی کدوم edit کلیک شده تا اطلاعات اون کاربر را لود کنه؟ :)

مرسی

لینک به ارسال

خواهش میکنم.

ابتدا باید یک کوئری بزنید. مثال:


SELECT * FROM `table_name`;

سپس خروجی کوئری را در یک حلقه (ترجیحاً foreach) قرار دهید.

مثال:


<table>
<tr>
<td>ID</td>
<td>Name</td>
<td>Family</td>
<td>Edit</td>
</tr>

<?php foreach($result as $items) : ?>
<tr>
<td><?php echo $item->ID; ?></td>
<td><?php echo $item->name; ?></td>
<td><?php echo $item->family; ?></td>
<td><a href="?action=edit&id=<?php echo $item->ID; ?>">Edit</a></td>
</tr>
<?php endforeach; ?>
</table>

بعد یه جایی از برنامتون شرطی برای نمایش صفحه ویرایش جدول قرار میدین.

مثال:


<?php
if($_GET['action'] == 'edit') {
include_once('edit.php');
} else {
include_once('show.php');
}
?>

توی edit.php هم باید یکسری عملیات انجام دهید.

ابتدا باید یک کوئری بزنید:


SELECT * FROM `table_name` WHERE `ID` = '".$_GET['id']."';

سپس بدین صورت اعمال کنید:


<form method="post" action="">
<table>
<tr>
<td>ID</td>
<td>Name</td>
<td>Family</td>
</tr>
<tr>
<td><?php echo $result->ID; ?></td>
<td><input type="text" name="name" value="<?php echo $result->name; ?>"/></td>
<td><input type="text" name="family" value="<?php echo $result->family; ?>"/></td>
</tr>
<tr>
<td colspan="3">
<input type="submit" name="update" value="Update"/>
</td>
</tr>
</table>
</form>

و در آخر نیز داده های فرم را با دستور UPDATE در پایگاه داده ذخیره کنید.

کاملاً ساده است.

لینک به ارسال

$item را باید چی تعریف کنم.

چون الان خطای زیر را میده:

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\test\users.php on line 2

اینم محتوای user.php


<!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>Users</title>
<?php
include('index.php');
include("db.php");
?>
</head>
<body>
<table border="1">
<tr>
<td>ID</td>
<td>Name</td>
<td>Family</td>
<td>Edit</td>
</tr>
<?php $result = mysql_query("SELECT * FROM usersystem") or die(mysql_error()); ?>
<?php foreach($result as $items) : ?>
<tr>
<td><?php echo $item->ID; ?></td>
<td><?php echo $item->name; ?></td>
<td><?php echo $item->family; ?></td>
<td><a href="?action=edit&id=<?php echo $item->ID; ?>">Edit</a></td>
</tr>
<?php endforeach; ?>
</table>
<?php
if($_GET['action'] == 'edit') {
include_once('edit.php');
} else {
include_once('show.php');
}
?>
</body>
</html>

لینک به ارسال

سلام،

برای اتصال به دیتابیس و استفاده از آن در پی‌اچ‌پی 2 راه دارید.

1- استفاده از توابع و دستورات خود PHP

2- استفاده از از کلاس یا فریم‌ورک‌. که پیشنهاد من گزینه دوم است، چرا که دستورات کمتر و راحت تری به کار میبرید. (نمونه و بیشتر...)

برای درک مسئله در مثال های بالا بنده از کلاس خود وردپرس استفاده کردم و ظاهراً دستورات بالا را مستقیم به کار بردید. (مشخص است که خطا میدهد)

ولی حالا با روش 1 مسئله را پیش میبریم.

نمایش جدول:


<?php
$conn = mysql_connect('localhost', 'user', 'pass');

if(! $conn ){
die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_name');
$retval = mysql_query( "select * from `table_name`", $conn );

if(! $retval ) {
die('Could not get data: ' . mysql_error());
}

echo "<table border='1'>";
echo "<tr>";
echo "<td>ID</td>";
echo "<td>Name</td>";
echo "<td>Family</td>";
echo "<td>Action</td>";
echo "<tr>";
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo "<tr>";
echo "<td>{$row['ID']}</td>";
echo "<td>{$row['name']}</td>";
echo "<td>{$row['family']}</td>";
echo "<td><a href='?action=edit&id={$row['ID']}'>Edit</a></td>";
echo "</tr>";
}
echo "</table>";

mysql_close($conn);
?>

حالا طبق این دستورات، موارد بعدی را طی کنید.

$item را باید چی تعریف کنم.

همیشه متغیر دوم در foreach نیازی به تعریف و یا مقدار دهی نیست. به صورت خودکار توسط خود حلقه مقدار میگیرد.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...