ورود

View Full Version : سوال: مشکل فوری در طراحی سات php



anishtain 123
چهارشنبه 17 تیر 1394, 18:52 عصر
با سلام.خواهش میکنم کمکم کنید!من دارم یه سایت مدرسه هوشمند برا پروژه ام میسازم یکی از امکاناتی که گذاشتم نمایش لیسست معلمانه.یه جدول ساده که اطللاعات جدول معلم در دیتا بیس رو نشون میده.ولی باید امکانی برای مدیر سایت باشه که این جدول معلمان رو ویراش کنه.مثلا اطلاعات این معلم رو تغییر بده!من چیکار میتونم بکنم؟اثلا دسترسی به داده های نمایش داده شده نیست که من بخوام براش امکان ویرایش بذارم!مثلا اگه بخوام جلوی هر معلم دکمه ویرایش بذارم که نمیشه!تعداد معلم ها معلوم نیست کم و زیاد بشه!خواهش میکنم کمکم کنید!آیا برای نمایش لیست معلمان از ابزار دیگه ای باید استفاده کنم؟چیکار کنم؟

thacker
چهارشنبه 17 تیر 1394, 20:42 عصر
یه ذره بیشتر توضیح بدین لطفا یا اینکه بخشی از کدها رو بزارین ببینیم

پیام حیاتی
چهارشنبه 17 تیر 1394, 21:28 عصر
اینجاست که ابزار مایکروسافت در نرم افزار vs به کمک برنانه نویسان دات نت میاد ، اما php کارها باید از صفر برای هر چیزی کد بنویسن.بگذریم....
به عنوان مثال شما جدولی به نام مثلا teacher در بانک دارید که یکی از فیلدهاش id که همان کلید اصلی است در ان ایجاد شده است برای ویرایش می تونید فرمی رو در همان صفحه نمایش اطلاعات برای مدیر طراحی کنید که بر اساس id رکورد مقدارهای وارد شده در فرم را با دستور update ویرایش یا بروز کند.
راه های دیگری نیز هست...

rambod18
چهارشنبه 17 تیر 1394, 21:29 عصر
می تونی در یک قسمت جدا به اسم ویرایش از طریق کلید امکان ویرایش بذاری. بعدم میشه جلوی هر کدوم یه دکمه ویرایش گذاشت

anishtain 123
چهارشنبه 17 تیر 1394, 22:11 عصر
133048

امکانی هست که با کلیک روی هر رکورد جدول امکان ویرایش اون ظاهر بشه؟توجه کنید که تعداد فیلدا مقدار مشخصی نداره و باید اتومات باشه به تعداد لازم

anishtain 123
چهارشنبه 17 تیر 1394, 22:43 عصر
می تونی در یک قسمت جدا به اسم ویرایش از طریق کلید امکان ویرایش بذاری. بعدم میشه جلوی هر کدوم یه دکمه ویرایش گذاشت

شما فکر کنید مثلا 50 تا معلم داریم.بشینیم برا هر کدوم یه دکمه بذاریم؟حالا فکر کنید مدیر سایت هیچی از کد نویسی نمیدونه!بهو 20 تا معلم دوباره اضافه میشه!تکلیف گذاشتن دکمه ویرایش جلوی هر رکورد چی میشه؟

http://barnamenevis.org/attachment.p...8&d=1436378926 (http://barnamenevis.org/attachment.php?attachmentid=133048&d=1436378926)

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

thacker
پنج شنبه 18 تیر 1394, 01:30 صبح
کار خاصی نداره ...
شما با PHP راحت میتونید این کار رو انجام بدید ...
برای نمایش ستون معلم ها مگه از حلقه استفاده نمیکنید ؟
یه مثال براتون میزنم ...

<table>
<thead>
<tr>
<th>کد معلم</th>
<th>نام</th>
<th>فامیلی</th>
<th>تلفن</th>
<th>آدرس</th>
<th>جنسیت</th>
<th>ایمیل</th>
<th>تحصیلات</th>
<th>سابقه کار</th>
<th>ویرایش</th>
</tr>
</thead>
<tbody>
<?php
$query = mysql_query("SELECT * FROM `teacher`");
while($row = mysql_fetch_array($query)) {
?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['family']; ?></td>
<td><?php echo $row['phone']; ?></td>
<td><?php echo $row['address']; ?></td>
<td><?php echo $row['sex']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['tahsilat']; ?></td>
<td><?php echo $row['s_kar']; ?></td>
<td><a href="http://site.com/edit-teacher.php?id=<?php echo $row['id']; ?>">ویرایش</a></td>
</tr>
<?php } ?>
</tbody>
</table>
بعد توی صفحه edit-techer.php با استفاده از GET میتونید آیدی معلم مورد نظر رو دریافت کنید و تغییرات رو روش اعمال کنید

anishtain 123
پنج شنبه 18 تیر 1394, 12:40 عصر
خیلی ممنونم از کمکتون!من این کدو به این شکل تغییر دادم

<table>
<thead>
<tr>
<th>کد معلم</th>
<th>نام</th>
<th>فامیلی</th>
<th>تلفن</th>
<th>آدرس</th>
<th>جنسیت</th>
<th>ایمیل</th>
<th>تحصیلات</th>
<th>سابقه کار</th>
<th>ویرایش</th>
</tr>
</thead>
<body>
<?php
$db=mysql_connect("localhost","root");
$dbs=mysql_select_db("database");
mysql_query('SET NAMES utf8');
$query="SELECT * FROM tbmoalem";
$result=mysql_query($query);
?>
<tr>
<td><?php echo $row['mcode']; ?></td>
<td><?php echo $row['nam']; ?></td>
<td><?php echo $row['family']; ?></td>
<td><?php echo $row['tell']; ?></td>
<td><?php echo $row['adress']; ?></td>
<td><?php echo $row['jensiat']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['tahsilat']; ?></td>
<td><?php echo $row['sabeghe']; ?></td>
<td><a href="editmoalem.php?id=<?php echo $row['mcode']; ?>">ویرایش</a></td>
</tr>
</body>
</table>
ولی به خطایی که قرمز کردم ایراد میگیره!مشکل از کجاست؟

masoud_pnu
پنج شنبه 18 تیر 1394, 14:37 عصر
دوست خوبم،اولا که این مشکل شما به بخش توسعه وب مربوطه.نه طراحی.ولی باز میگم خدمتتون.چون تقریبا همچین چیزی رو ماه پیش انجام دادم.ببینید شما الگوی مهندسی نرم افزارتون چیه؟؟موجودیت ها چیه؟

masoud_pnu
پنج شنبه 18 تیر 1394, 14:53 عصر
بعدشم،چرا سراغ کامپوننت نمیری؟؟گرچه شدیدا مخالف ریپ زدن و اینکارام،ولی واقعا امکانی غیر این نیست.شما یه سری به کامپوننت های تلریک بزن.مخصوصا kendo ui.دقیقا همچین کاری که شما میخوای،کامپوننتش هست.اسمشم فکرکنم grid inline editing بود.اگر اشتباه نکنم.خیلی هم خوشگل و شیک تره.

anishtain 123
پنج شنبه 18 تیر 1394, 19:29 عصر
بعدشم،چرا سراغ کامپوننت نمیری؟؟گرچه شدیدا مخالف ریپ زدن و اینکارام،ولی واقعا امکانی غیر این نیست.شما یه سری به کامپوننت های تلریک بزن.مخصوصا kendo ui.دقیقا همچین کاری که شما میخوای،کامپوننتش هست.اسمشم فکرکنم grid inline editing بود.اگر اشتباه نکنم.خیلی هم خوشگل و شیک تره.
ممنون از راهنمایی تون ولی من هرچی تو نت گشتم کامپوننتا همه مربوط به c# یا asp و ...بود و برای Php چیزی پیدا نکردم!میشه یکم بیشتر توضیح بدید یا اگه خود کام\وننتو دارید بهم بدید؟چون من درمورد کامپوننتا زیاد نمیدونم متاسفانه

masoud_pnu
جمعه 19 تیر 1394, 00:53 صبح
ببینید،اصلا کاری به تعریف کامپوننت و اینکه چیکار میکنه ندارم.یه راست میرم سر اصل مطلب.بله.تلریک معمولا برای net. کامپوننت داره تا بقیه.ولی خودش گفته که مثلا فلان کامپوننت برای php هم معادل داره و کدشو قرار داده.بنده از kendo ui که یه لایبرری برای HTML5 و جاوااسکریپت هست استفاده میکنم.با دیتابیس هم کانکتتون میکنه،CRUD رو میتونید باهاش بصورت inline انجام بدید(تو جدول امکان تغییر در دیتابیس رو بهتون میده)و...روش کارشم راحته.یه فایل php میسازید که توش به دیتابیس وصل بشید،بعد از طریق JSON به دیتا دسترسی پیدا میکنید.(اگه در این زمینه کار نکردین،نگران نشین.نهایتش اینه کپی میکنید دیگه!:لبخند:)ولی خودتون منطق برنامه رو درک میکنید.
اول kendo ui رو از این آدرس دانلود کنید:http://downloadly.ir/software/programming/telerik/
بعد نصب،به مسیری که توش نصب کردید برید و از اونجا فایل های css و javascript رو که مورد نیاز هستن در پروژه تون add کنید.بطور پیشفرض،به سه فایل kendo.default.min.css ، kendo.common.min.css ، kendo.rtl.min.css و دو فایل جاوااسکریپت jquery.min.js و kendo.web.min.js رو باید به پروژه اضافه کنید.موارد دیگرم به نیازتون بستگی داره.
بعد توی پوشه examples برید و پوشه grid رو بازکنید و...علی از تو مدد!مشخصه.برای کارشما فکرنکنم چیز خاصی نیاز داشته باشه.بخونید،بقیشو من در خدمتم.
راستی سایت بیاموز هم تو یکی از آموزش های پروژه محورش دقیقا یه گرید از kendo رو آموزش داده.

masoud_pnu
جمعه 19 تیر 1394, 01:28 صبح
133101
این مثالی از کاربد این گرید ها در پروژه بنده بود که البته ناقصه هنوز صفحه.ولی گرید کامله.فرضا اوتار(عکس کوچک)رو توش نشون میدید.و سایر فیلدها.امکان تعریف تعداد رکوردها هست.شمارنده صفحات و...اینجا نیاز به ادیت کاربران نیست.ولی در بخش مدیریت کاربران هست که اینحا نشون ندادم.هدف اینه ببینید که گرید این کامپوننت چه شکلیه.

thacker
جمعه 19 تیر 1394, 03:58 صبح
خیلی ممنونم از کمکتون!من این کدو به این شکل تغییر دادم

<table>
<thead>
<tr>
<th>کد معلم</th>
<th>نام</th>
<th>فامیلی</th>
<th>تلفن</th>
<th>آدرس</th>
<th>جنسیت</th>
<th>ایمیل</th>
<th>تحصیلات</th>
<th>سابقه کار</th>
<th>ویرایش</th>
</tr>
</thead>
<body>
<?php
$db=mysql_connect("localhost","root");
$dbs=mysql_select_db("database");
mysql_query('SET NAMES utf8');
$query="SELECT * FROM tbmoalem";
$result=mysql_query($query);
?>
<tr>
<td><?php echo $row['mcode']; ?></td>
<td><?php echo $row['nam']; ?></td>
<td><?php echo $row['family']; ?></td>
<td><?php echo $row['tell']; ?></td>
<td><?php echo $row['adress']; ?></td>
<td><?php echo $row['jensiat']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['tahsilat']; ?></td>
<td><?php echo $row['sabeghe']; ?></td>
<td><a href="editmoalem.php?id=<?php echo $row['mcode']; ?>">ویرایش</a></td>
</tr>
</body>
</table>
ولی به خطایی که قرمز کردم ایراد میگیره!مشکل از کجاست؟

شما $row رو اصلا تعریف نکردید...

anishtain 123
جمعه 19 تیر 1394, 13:15 عصر
شما $row رو اصلا تعریف نکردید...\

با تشکر از شما اون مشکلم حل شد فقط یه سوال کوچیک دیگه دارم با عرض معذرت:ناراحت:

شما گفتید با متد get بفرستم به صفحه بعد درسته؟خب من تو صفحه دوم این کدو براش نوشتم:

<?php
$db=mysql_connect("localhost","root");


$dbs=mysql_select_db("database");
mysql_query('SET NAMES utf8');
$mcode = isset($_GET['mcode'])?$_GET['mcode']:null;
if($mcode != null)
{
$query="DELETE FROM `tbmoalem` WHERE `mcode`='$mcode' ";
}
echo "deleted";
?>
ولی هیچ کاری انجام نمیده!اینم کدی که برای دکمه حذف تو صفحه قبلی(جدول)گذاشتم:

<td><a href="deletemoalem.php?id='.$mcode.' " > <img src="delete.png"></td>

thacker
جمعه 19 تیر 1394, 16:47 عصر
به جای استفاده از :

$mcode = isset($_GET['mcode'])?$_GET['mcode']:null;
از کد زیر استفاده کنید :

if(isset($_GET['mcode'])) {
$mcode = $_GET['mcode'];
} else {
$mcode = null;
}