PDA

View Full Version : مبتدی: مدیریت سایت



manager_66
پنج شنبه 12 آبان 1390, 23:14 عصر
سلام دوستان .

من میخوام واسه سایتی که درست کردم (فروشگاه اینترنتی آزمایشی) یک صفحه مدیریت بذارم . الان چند روزه دارم دنبال یک آموزشی مرتبط با این کار میگردم . واقعا الان گیج شدم . میخوام با پی اچ پی باشه . با joomla و cms اینها نمیخوام باشه . هرچند نمیدونم اینها کلا چی هست . فقط میخوام خودم کداشو بنویسم تا با مراحل کار اشنا بشم. من الان صفحه اصلی سایتم فقط شامل یک headerو menu و content و footer هست . میخوام در قسمت مدیریت طوری کار کنم که اجناس رو مدیر خیلی راحت در قسمت منوی صفحه اصلی قرار بده (با text box ) و اون دسته ای که اضافه شده یک آدرس بگیره که وقتی روش کلیک شد محصولات مرتبط با اون دسته رو نمایش بده .مثلا در قسمت مدیریت مدیر بخاری رو وارد کنه و در صفحه اصلی وقتی روی بخاری کلیک شد انواع بخاری رو نمایش بده . حالا من باید در قسمت مدیریت یک فیلد برای آدرس هم قرار بدم یا راه بهتری داره . چون فرض بر اینکه مدیر کلا از این چیزها سر در نمیاره نمیشه انتظار داشت واسه هر دسته جدید بصورت پارامتری آدرس جدید رو هم بده !
تمام این مطالب رو در قالب عکس هم توضضیح دادم تا منظورمو بهتر برسونم :


77394






اگه میشه به روش مبتدیانه :چشمک: مراحلی رو که باید انجام بشه تا این فرایند طی بشه رو توضیح بدین . چه جداولی لازمه تا بتونم این کار رو انجام بدم / با تشکر/.

پ-ن : کلا واسه اضافه کردن یک محصول همین دو تا فیلد کافیه؟

Mr.Moghadam
جمعه 13 آبان 1390, 00:43 صبح
زیادنفهمیدم چی میخوای بیشتر اگر توضیح بدی بهتره. و یه چیز دیگه اول سعی کن خودت تحلیلت رو انجام بدی بعد از تحلیل شروع به کار کنی بعدش اگر جایی به مشکل خوردی سوال بپرسی بهتره.اینجور سوالای کلی رو فقط به صورت کلی میشه جواب داد.

اینکه شما چه جداول و فیلدهایی داشته باشه مربوط میشه به اینکه پروژه چی هست و چه نیازهایی داره.

مثلا میتونی یه جدول درست کنی به نام category که 2 تا فیلد داشته باشه.یکی نام دسته و یکی کد دسته رو بگیره. برای محصولاتت هم باید یکجدول جدا در نظر بگیری. که اطلاعات محصولت روباید داخلش قرار بدی.مثلا نام محصول ، کدمحصول،قیمت ، عکس ، دسته و . . .

موفق باشی

manager_66
جمعه 13 آبان 1390, 12:02 عصر
سلام . ممنون از جوابتون . تنها چیزی که میخوام اینه که مدیر در صفحه مدیریتش اسم دسته و نام کمپانی سازنده دسته رو مشخص کنه و در صفحه اصلی سایت کاربرها اسم دسته رو بصورت متنی و bold و زیر اون نام کمپانی به صورت لینک باشه که وقتی روش کلیک شد محصولات کمپانی رو نمایش بده . حالا واسه اینکار باید دوتا table داشت یا یکی ؟ و اینکه چطور آدرس لینک رو در صفحه مدیریت مشخص کنیم که با کلیک روی اسم کمپانی فلان صفحه نمایش داده بشه؟ اگه توضیحاتم گیج کننده است بگید دوباره توضیح بدم . متشکرم.

Mr.Moghadam
جمعه 13 آبان 1390, 13:48 عصر
فایل ضمیمه رو ببین تقریبا اون چیزی که میخوای رو برات آماده کردم. اگر جاییش برات سوال پیش اومد بپرس

موفق باشی

manager_66
جمعه 13 آبان 1390, 16:18 عصر
دقیقا منظورم همین بود . بخاطر وقتی که گذاشتین ممنونم.

manager_66
شنبه 14 آبان 1390, 14:21 عصر
سلام . در ادامه سوال قبلیم واسه مدیریت سایت به یک مشکل جدید برخوردم . من اومدم واسه مدیر امکان اضافه و ویرایش نام محصولات رو گذاشتم . حالا وقتی مدیر روی لینک حذف یک محصول کلیک میکنه بار اول محصول پاک نمیشه و بار دومی که کلیک میکنه نام محصول از جدول حذف میشه . در واقع با کلیک اول محصول از جدول واقع در دیتابیس پاک میشه ولی در سایت هنوز نشون داده میشه و با کلیک دوم محصول از جدول سایت پاک میشه . برای ویرایش هم همینطور . من برای ویرایش یک تکست باکس گذاشتم که وقتی روی محصول کلیک کرد نام محصول رو در اون تکست باکس نمایش بده . وقتی نام محصول جدید رو وارد میکنه و دکمه اکی رو میزنه باز هم نام محوصل قبلی در تکست باکس میمونه و باید صفحه رفرش بشه . میشه سریع با php کاری کرد که احتیاج به رفرش نداشته باشه .

در ادامه کد رو هم قرار میدم :


<?php
include_once "../dream/_con/config.php";
$res= mysql_query("SELECT * FROM `category`");
if (mysql_num_rows($res)!=0)
{
?>

<table border="1" width="60%" height="50%" dir="rtl" align="center">
<tr>
<th>کد</th>
<th>نام</th>
<th>عملیات</th>
</tr>
<?php
while($row= mysql_fetch_assoc($res))
{
echo '<tr>';
echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['name'] . '</td>';
echo '<td>';
echo '<a href="edit-delete.php?action=del&id=' .$row['id']. '"> حذف </a>';
echo '&nbsp;&nbsp;&nbsp;';
echo '<a href="edit-delete.php?action=edit&id='.$row['id'].'"> ویرایش </a>';
echo '</td>';
echo '</tr>';
?>
<?php
}
?>
<?php
}
?>
</table>

<?php
if (isset($_GET["action"]))
{
switch($_GET["action"])
{
case "del":
$id=$_GET["id"];
$res= mysql_query("DELETE FROM `category` WHERE `id`={$id}") or die(mysql_error());
break;


case "edit":
$id=$_GET["id"];
?>
<form action="" method="POST">
<fieldset>
<legend>Edit your product! </legend>
<label for="id">Cat Code = <?php echo $id; ?></label><br/>
<label for="cat">Category</label>
<input type="text" name="category" id="cat" value="<?php
$query=mysql_query("SELECT `name` FROM `category` WHERE `id`={$id}") or die(mysql_error());
$row=mysql_fetch_assoc($query);
echo $row['name'];
?>"/>
<input type="submit" value="edit" name="btn_edit"/>
</fieldset>
</form>
<?php
break;
}
}
?>
<?php
if (isset($_POST["btn_edit"]))
{
$upcat=$_POST['category'];
mysql_query("UPDATE `category` SET `name`='$upcat' WHERE `id`='$id' ");
}


?>

Mr.Moghadam
شنبه 14 آبان 1390, 14:39 عصر
کد زیر رو در ابتدای صفحه بذار تا درست شه.یعینی قبل از اینکه اطلاعات رو از دیتابیس بخونی بذار.
با اینکار شما اول محصول رو حذف میکنید بعد اطلاعات رو از دیتابیس میخونید که محصول همون بار اول حذف میشه.



<?php
if (isset($_GET["action"]))
{
switch($_GET["action"])
{
case "del":
$id=$_GET["id"];
$res= mysql_query("DELETE FROM `category` WHERE `id`={$id}") or die(mysql_error());
break;


case "edit":
$id=$_GET["id"];
?>
<form action="" method="POST">
<fieldset>
<legend>Edit your product! </legend>
<label for="id">Cat Code = <?php echo $id; ?></label>
<label for="cat">Category</label>
<input type="text" name="category" id="cat" value="<?php
$query=mysql_query("SELECT `name` FROM `category` WHERE `id`={$id}") or die(mysql_error());
$row=mysql_fetch_assoc($query);
echo $row['name'];
?>"/>
<input type="submit" value="edit" name="btn_edit"/>
</fieldset>
</form>
<?php
break;
}
}
?>
<?php
if (isset($_POST["btn_edit"]))
{
$upcat=$_POST['category'];
mysql_query("UPDATE `category` SET `name`='$upcat' WHERE `id`='$id' ");
}


?>

manager_66
شنبه 14 آبان 1390, 14:46 عصر
ممنون . اکه بخوام فرم ویرایش رو پایین جدول نمایش بده چیکار کنم ؟ چون الان بالای جدول فرم رو میاره ! این قسمتو :


case "edit": $id=$_GET["id"]; ?> <form action="" method="POST"> <fieldset> <legend>Edit your product! </legend> <label for="id">Cat Code = <?php echo $id; ?></label> <label for="cat">Category</label> <input type="text" name="category" id="cat" value="<?php $query=mysql_query("SELECT `name` FROM `category` WHERE `id`={$id}") or die(mysql_error()); $row=mysql_fetch_assoc($query); echo $row['name']; ?>"/> <input type="submit" value="edit" name="btn_edit"/> </fieldset> </form> <?php break;

Mr.Moghadam
شنبه 14 آبان 1390, 14:58 عصر
ممنون . اکه بخوام فرم ویرایش رو پایین جدول نمایش بده چیکار کنم ؟ چون الان بالای جدول فرم رو میاره ! این قسمتو :


case "edit": $id=$_GET["id"]; ?> <form action="" method="POST"> <fieldset> <legend>Edit your product! </legend> <label for="id">Cat Code = <?php echo $id; ?></label> <label for="cat">Category</label> <input type="text" name="category" id="cat" value="<?php $query=mysql_query("SELECT `name` FROM `category` WHERE `id`={$id}") or die(mysql_error()); $row=mysql_fetch_assoc($query); echo $row['name']; ?>"/> <input type="submit" value="edit" name="btn_edit"/> </fieldset> </form> <?php break;

فرم رو پایین جدولت بذار ولی قسمتی که داری دستور update و delete رو اجرا میکنی باید قبل از دستور select باشه تا طوری که میخوای کار کنه.
یه مقدار با فرم و دستوراتت بازی کن تا بهترین نتیجه رو بگیری

موفق باشی