مشکل ابتدایی در استفاده از Post_$ در 2 صفحه
با سلام خدمت دوستان.
من یه مشکلی دارم .در 2 صفحه php که درست کردم.
اول یه صفحه دارم به اسم Action.php که 2 تا textbox داره که اطلاعات رو میگیره و میریزه داخل دیتابیس . این صفحه به درستی کار میکنه .
اینم کدش:
[PHP]
<?php
include "connection.php";
$first = '';
$last = '';
$error = '';
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['first']))
$error = 'Please enter first name<br />';
else
$first = $_POST['first'];
if(empty($_POST['last']))
$error .= 'Please enter last name<br />';
else
$last = $_POST['last'];
if(empty($error)) {
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());
mysql_query("INSERT INTO student(str_name, str_family) VALUES( '" . $_POST['first'] . "', '" . $_POST['last'] . "');") or die(mysql_error());
}
echo $error;
}
elseif(isset($_POST['id']))
{
echo "Please Update Information";
////mysql_query("UPDATE * SET str_name='".$_POST['first']."', str_family='".$_POST['family']);
}
elseif(isset($_GET['id']))
{
$r = mysql_query("SELECT * FROM student WHERE int_id = " . $_GET['id']) or die(mysql_error());
$row = mysql_fetch_row($r);
$first = $row[1];
$last = $row[2];
}
?>
<html>
<body>
<form method="post" action="?form=1">
<input type="text" name="first" value="<?php echo $first ?>" />
<input type="text" name="last" value="<?php echo $last ?>" />
<input type="submit" value="go" />
</form>
</body>
</html>
[/PHP]
یه صفحه دومی دارم به اسم show.php که وظیفش این که اطلاعات تمام دیتابیس رو میخونه میریزه داخل یه جدول و در کنار هر اسم یه نوشته Edit است. زمانی که من رو Edit هر اسمی که میزنم میخوام بره به همون صفحه اول ولی این دفعه بالای صفحه اول پیغام اپدیت کردن اطلاعات بنویسه و زمانی که textbox ها رو پر میکنم اطلاعات همون رکورد اپدیت بشه .
مشکل من تو کد نویسیش اینه که من وقتی از صفحه show زمانی که edit میزنم، میرم داخل صفحه Action ، هیچ تفاوتی نداره با اینکه همون اول برم تو صفحه action و باز هم میخواد اطلاعات رو وارد کنه.
اینم کدش:
[PHP]
<?php
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());
$r = mysql_query("SELECT * FROM student") or die(mysql_error());
?>
<table border="1">
<?php
while($row = mysql_fetch_array($r)) {
echo "<tr>";
echo "<td>" . $row[0]. "</td>" ."<td>" .$row[1]. "</td>";
echo "<td><a href=\"action.php?id=$row[0]\">Edit</a>";
echo "</tr>";
}
?>
</table>
<html>
<body>
<form method="POST" action="?form=1">
<input type="hidden" name="id" value="<?php $_POST['id'] ?>" />
</form>
</body>
</html>
[/PHP]
در صفحه show یه جایی از [PHP]$_POST['id'][/PHP] استفاده کردم و در صفحه action برای اینکه تمایز قائل بشه از [PHP] elseif(isset($_POST['id']))[/PHP]ولی جواب نمیده.:41:. و نمیتونم از [PHP]$_POST[/PHP] خالی استفاده کنم چون خود صفحه اول داره از [PHP]$_POST[/PHP] استفاده میکنه.
امیدوارم منظورم رو رسونده باشم. چون تازه php رو شروع کردم.
و یه تکه کد برا اپدیت نوشتم که به صورت کامنت هست.اگر کسی میتونه اون کد رو هم صورت درستشو برای ما بنویسه.
سپاسگذارم.