پرسش و پاسخ در برنامه نویسی php

makintach

عضو جدید
مرسی دوست عزیز
می رم این روشی که گفتین رو هم تست کنم امیدوارم که جواب بده
در ضمن سوالم رو توی این بخش پرسیدم چون با پی اچ پی برنامه می نویسم می خواستم کد پی اچ پی بدید
بازم مرسی
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
مرسی دوست عزیز
می رم این روشی که گفتین رو هم تست کنم امیدوارم که جواب بده
در ضمن سوالم رو توی این بخش پرسیدم چون با پی اچ پی برنامه می نویسم می خواستم کد پی اچ پی بدید
بازم مرسی

خواهش، اميدوارم موفق باشی
 

rahele83

عضو جدید
گذاشتن nextدرپایین صفحات

گذاشتن nextدرپایین صفحات

سلام من میخام بدونم وقتی شما مطلب های زیادی توی جدولتون درپایگاه داده دارید
وبخاهید مطالب رادرصفحات مختلف نشون بدید یعنی همون nextکه پایین صفحات میزارن تاادامه مطالب درصفحه بعدنمایش داده بشه چه طوربایدکدشوبنویسم
من ازومپ استفاده میکنم
ممنون
 

masoudnikoofar

عضو جدید
سلام!
باید next لینک باشه، و href رو اینطوری تعریف کنید:

کد:
 href="list.php?start=10"
بعد هربار که list.php باز می شه، mysql query رو اینطوری تعریف کنید:

کد:
select * from table_name limit $start, $limit
(
$start=$_GET[start];
$limit=20;//number of rows that you want to show in each page!
)
 

asashirin

عضو جدید
کمک(خواندن فایل فارسی در php5)

کمک(خواندن فایل فارسی در php5)

با سلام
می خوام از یک فایل فارسی 3 خط بخونم رو صفحه ی سایتم نشون بدم با فایل انگلیسی مشکلی پیش نمی یاد اما فارسی رو نشون نمی ده ممنون می شم کمکم کنیدخیلی فوری باید پروژه رو تمومش کنم
 
آخرین ویرایش:

Padrone

عضو جدید
اگه از تابع fread استفاده میکنید فقط کافیه فایل متنی رو با اینکود UTF-8 ذخیره کنی
 

asashirin

عضو جدید
ممنون پیشنهاد شما رو تست کردم جواب داد اما مشکل اینجاست که فایل ها حتما text
نیستند .
در واقع مقالات آپلود شده ی کاربران هست که من می خوام 3 خط از آنها رو رو سایت نشون
بدم نوع آنها حتما text نیست ممکن pdf باشه.
مقالات نوع خاصی دارن؟
 

Padrone

عضو جدید
برای فایل هایی مثل PDF و DOC باید از پکیج های XPDF و Antiword استفاده کنید تا بتونید فایل ها رو با استفاده از shell_exec بخونید
شاید روش های دیگه ای هم باشه
من اطلاعات زیادی در این مورد ندارم
ولی در کل اگر می خواین چکیده ای از یک مقاله رو تو سایتتون بذارید منطقی نیست که خود سرور یک قسمت از اون رو جدا کنه
و من هیچ جایی این روش رو ندیدم
بهتره یک باکس برای چکیده بزارید که یا خود اپلود کننده اون رو پر کنه یا مدیر سایت
 

asashirin

عضو جدید
سلام
ممنون ایده ی خوبی بهم دادین یه باکس قرار می دم که کاربر این کارو بکنه
ممنون راهنمایی کردید و وقت گذاشتید.
فقط روش بالا رو نفهمیدم خوب . ممکن بیشتر توضیح بدید این روشی که گفتید چطوریه؟
یا یه منبع بهم معرفی کنید که تحقیق کنم. لطف می کنید
ممنون می شم
 

Sharif_

مدیر بازنشسته
منظور از بالای هم استفاده از کتابخانه هاست
پیشنهاد میکنم کتابخانه های FPDI و FPDF رو مطالعه کنید
که FPDF اخیرا اینکود utf-8 رو هم ساپورت میکنه
 

mahsa66

عضو جدید
کاربر ممتاز
درخواست اسکریپ بازیابی رمز عبور در PHP"

درخواست اسکریپ بازیابی رمز عبور در PHP"

سلام دوستان اگه میشه یه نمونه کد برای ریست کردن رمز عبور برام بذارین واقعا گیرم.
اگه میشه بگین اگه من یه چیزی رو توی پایگاهم سرچ کنم و هیچ جوابی نداشته باشه چه طوری می تونم متوجه بشم و پیغام مناسبی چاپ کنم
ممنون
 

Sharif_

مدیر بازنشسته
سلام دوستان اگه میشه یه نمونه کد برای ریست کردن رمز عبور برام بذارین واقعا گیرم.
اگه میشه بگین اگه من یه چیزی رو توی پایگاهم سرچ کنم و هیچ جوابی نداشته باشه چه طوری می تونم متوجه بشم و پیغام مناسبی چاپ کنم
ممنون
از اسکریپت های زیر استفاده کنید
http://www.plus2net.com/php_tutorial/php_forgot_password.php
http://www.phpeasystep.com/phptu/21.html
http://webforumz.com/php/8394-php-forgot-password-script.htm
 

mahsa66

عضو جدید
کاربر ممتاز
چگونگی ارسال تاریخ سیستم به دیتابیس

چگونگی ارسال تاریخ سیستم به دیتابیس

من میخوام برای فرم ارسال پیامم، تاریخ ارسال نیز به درون دیتابیس فرستاده شود، بدون نیاز به این که خودم تاریخ رو وارد کنم، من میخوام از یک hidden field استفاده کنم.لطفا راهنمایی کنید
یه نمونه کد بذارید
ممنون:gol:
 

Sharif_

مدیر بازنشسته
از تابع ( )NOW در داخل کوئری میتونید استفاده بکنید.
PHP:
insert into table1 (id, name, date) values (1, 'Name', NOW());
 

mahsa66

عضو جدید
کاربر ممتاز
خطایه mysql_num_rows()

خطایه mysql_num_rows()

سلام
من تویه برنامه ام هر جا از update استفاده میکنم و بعدش از mysql_num_rows($result) استفاده میکنم خطایه
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\mysite\untitled2.php on line 40
رو میذاره تا حالا با فرم هایه مختلف امتحانش کردم.ولی همین خطا رو میده
من textfiled دارم که توسط کاربر وارد میشهاین رو میخوام با شرط هایی که داخل update گذاشتم update کنم ولی این خطا رو میده چی کار کنم؟
مثلا یه فرم ساده مثل این که دو تا textfield برای وارد کردن داره من میخوام از یکی بخونه به عنوان شرط برایه دیگری استفاده کنه:
<?php
include("config.php");
$id=$_POST['id'];
$name=$_POST['name'];
$res=mysql_query("update text set name='$name' where code='$id'") or die(mysql_error());
echo mysql_num_rows($res);
?>
اگه میشه کمکم کنید بسیار احتیاج دارم
:(
 

Sharif_

مدیر بازنشسته
دستور ( )mysql_num_rows برای دستور های SELECT و SHOW تبعیه شده
برای کوئری های INSERT ، UPDATE ، REPLACE ، DELETE از تابع ()mysql_affected_rows استفاده کنید.
مثال برای تابع :


PHP:
  <?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

/* Update records */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>
Updated Records: 10
 

mahsa66

عضو جدید
کاربر ممتاز
مهم : نوع کاربر

مهم : نوع کاربر

سلام دوستان
من میخوام تویه صفحه لاگینم.یه نوع کاربر بذارم.که کاربر نوعش را که دانش آموز،یا معلم یا مدیر است را انتخاب کرده و لاگین کند اگه میشه برام یه نمونه بذارید من نمیدونم اگه رادیو باتن بذارم چه طوری value اش رو با if بسنجم و براش شرط بذارم
ممنون:gol:
 

Sharif_

مدیر بازنشسته
هر inputBox که روی فرم بذارید با ارسال فرم محتویات اونا به page بعدی ارسال میشه
برای درک بهتر این کد ها رو در صفحه ای به نام index.php ذخیره و اجرا کنید
PHP:
<FORM name ="form1" method ="post" action ="index.php">

<Input type = 'Radio' Name ='gender' value= 'male'>Male

<Input type = 'Radio' Name ='gender' value= 'female'>Female

<P>
<Input type = "Submit" Name = "Submit1" VALUE = "Select a Radio Button">
<?PHP

$male_status = 'unchecked';
$female_status = 'unchecked';

if (isset($_POST['Submit1'])) {

$selected_radio = $_POST['gender'];

if ($selected_radio == 'male') {
echo "<br>male";
}
else if ($selected_radio == 'female') {
echo "<br>female";
}
}
?>
 

mahsa66

عضو جدید
کاربر ممتاز
مهم:حذف فیلد از جدول مستر

مهم:حذف فیلد از جدول مستر

سلام دوستان
من میخوام مشخصات دانش آموزم رو حذف کنم ولی id دانش اموزم در جدول های دیگه به عنوان کلیدهای فرعی وجود داره چه طوری می تونم فیلد های جدول اصلی رو حذف کنم و فیلدهای جدول های فرعی به صورت اتوماتیک حذف شوند.
ممنون اگه کمک کنید.:gol:
 

Sharif_

مدیر بازنشسته
البته حذف فیلد امکان پذیر نیست
فقط میشه رکورد رو حذف کرد
بعد از تعریف کلید خارجی عبارت ON DELETE CASCADE رو اضافه کنید
در این صورت وقتی از جدول اصلی رکوردی پاک شده از جدول فرعی هم پاک میشه
 
آخرین ویرایش:

mahsa66

عضو جدید
کاربر ممتاز
مهم:چاپ کردن و درج کردن ارایه ای از text field ها

مهم:چاپ کردن و درج کردن ارایه ای از text field ها

سلام دوستان من میخوام برای صفحه ثبت دانش آموزان به صورت دسته جمعی ام،اول مدیر تعداد دانش آموز هایی رو که میخواد ثبت کنه رو وارد کنه و در صفحه بعد به تعدادی که مدیر خواسته بود تکست فیلد نمایش دهد که برای ین کار از یک حلقه for استفاده کردم و تکست فیلد هام رو درون ان ها قرار دادم اما می دونم که تکست فیلد ها برای این که بعدا بخوام بخونمشون و در دیتابیس ذخیره کنم باید به صورت ارایه تعریف بشن اما نمیدونم تکست فیلد ها را چه طوری به صورت ارایه تعریف کنم و اون ها را چاپ کنم و یا در دیتابیس ذخیره کنم
ممنون اگه یه نمونه از ارایه تکست فیلد بذارید.
 

Sharif_

مدیر بازنشسته
سلام دوستان من میخوام برای صفحه ثبت دانش آموزان به صورت دسته جمعی ام،اول مدیر تعداد دانش آموز هایی رو که میخواد ثبت کنه رو وارد کنه و در صفحه بعد به تعدادی که مدیر خواسته بود تکست فیلد نمایش دهد که برای ین کار از یک حلقه for استفاده کردم و تکست فیلد هام رو درون ان ها قرار دادم اما می دونم که تکست فیلد ها برای این که بعدا بخوام بخونمشون و در دیتابیس ذخیره کنم باید به صورت ارایه تعریف بشن اما نمیدونم تکست فیلد ها را چه طوری به صورت ارایه تعریف کنم و اون ها را چاپ کنم و یا در دیتابیس ذخیره کنم
ممنون اگه یه نمونه از ارایه تکست فیلد بذارید.
به شخصه من درست نمیدنم که در یک بار اطلاعات تمام اعضا در یکجا فرستاده بشه
بهتر بود که تک تک باشه
ولی برای ایجاد ارایه ای Input Box ها کافی هست بعد از ایجاد باکس ها به صورت ارایه ای با استفاده از حلقه foreach محتویات اونا رو بخونید
برای مثال کد زیر رو براتون نوشتم
در صفحه index.php اسکریپت زیر رو تایپ و اجرا کنید
PHP:
<FORM name ="form1" method ="post" action ="index.php">

First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />

<P>
<Input type = "Submit" Name = "Submit1" VALUE = "Select">
<?PHP


if (isset($_POST['Submit1'])) {
foreach($_POST['firstname'] as $key=>$value)
 echo $value.' ';
}
?>
اگر دقت کنید بعد از نام هر input علامت [] گذاشته شده تا به صورت ارایه دربیاد
 

mahsa66

عضو جدید
کاربر ممتاز
من با درجش در db و ریختنش تویه متغیر مشکل دارم چون من 8 تا ارایه دارم، نمیدونم اونا رو چطوری باید توی یه حلقه بذارم تا همشون رو با هم insert کنم. نمیشه از حلقه for استفاده کرد؟
ممنون اگه یه نمونه از ریختنش تویه یه متغیر یا ذخیره در db برام بذارید احتیاج فوری دارم ممنون:gol:
 

Sharif_

مدیر بازنشسته
اگر کد بالا رو نگاه می کردید می دیدید که محتویات ارایه در حلقه تک تک در متغییر value قرار می گیرند
حالا به جای چاپ کردن شما متغییر رو در یک رکورد در پایگاه ذخیره کنید
به شکل زیر
فرض بر این که جدول table1 از دو فیلد id و name تشکیل شده
کد:
$query="insert into table1 values(شماره,'".$value."')";
ولی اگر می خواهید تمام ارایه رو در یک رکورد ذخیره کنید از نظر نرمال سازی کاملا اشتباه هستش
 

mahsa66

عضو جدید
کاربر ممتاز
من یه جدول دانش آموز دارم که دارای این فیلدهاهستش :
نام، نام خانوادگی، کد دانش آموزی آدرس و تلفن و غیره که این ها برای هر دانش آمورز باید وارد بشه حالا من میخوام مدیر تعداد دانش آموزان رو وقتی انتخاب کردبه اون تعداد تکست فیلد برای هر فیلد ایجاد شود ان وقت برای هر دانش اموز این تکست فیلد ها رو وارد کنم و ثبت رو بزنم اون وقت این ها برای دانش اموزان ثبت بشه
کد php :
<?php $stdnum=$_POST['stdnumber'];
for($i=0;$i<$stdnum;$i++){ ?>
<tr>
<td height="49"><div align="right">
<input name="email[]" type="text" id="email">
</div></td>
<td><div align="right">
<input name="tell[]" type="text" id="tell" size="15">
</div></td>
<td><div align="right">
<input name="ttavalod[]" type="text" id="ttavalod" size="15">
</div></td>
<td><div align="right">
<input name="shomareshenas[]" type="text" id="shomareshenas" size="15">
</div></td>
<td><div align="right">
<input name="sfamily[]" type="text" id="sfamily" size="15">
</div></td>
<td><div align="right">
<input name="sname[]" type="text" id="sname" size="15">
</div></td>
<td><div align="right">
<input name="stdID[]" type="text" id="stdID" size="15">
</div></td>
</tr>
<?php }?>
</table>
<p><input name="submit" type="submit" style="width: 73px; height: 31px;" value="ثبت"> </p>
<p>
<input name="stdnum" type="hidden" id="stdnum" value="<?php echo $stdnum;?>">
</p>
</form>
حالا چطوری باید این ها رو insert دسته جمعی کنم؟
 

Sharif_

مدیر بازنشسته
این کار کاملا اشتباه هست
چرا که وقتی مقدار 100 رو برای متغییر stdnum پاس می کنید در فرم 700 تا textbox ایجاد میشه
و در هنگام ارسال اگر به مشکلی بر خوردید باید تمام فیلد ها از نوع پر بشه(که احتمال بسیار بالا این اتفاق خواهد افتاد)
مسئله دوم این هست که اگر هنگام درج در پایگاه ، اطلاعات نادرست باشه
مدیریت اون که وابسته به چه کسی هست سخت خواهد بود
شما یه فرم با 7 تکست باکس طراحی کنید و با هر بار ارسال کردن یک شخص در پایگاه، فرم خالی بشه تا نفر بعدی رو مدیر وارد کنه
 

baback

کاربر فعال
در رابطه با منطق ایجاد اون فرم با مشخصاتی که گفتید، من هم با شریف موافق هستم. این که برای تعدادی که مدیر نیاز داره ، تمام تکست فیلدها در صفحه بعد نمایش داده بشه از لحاظ منطقی هم مناسب نیست. شما فرض کنید مدیر بخواد تمام این مشخصات رو برای 50 دانش آموز وارد کنه اونوقت میدونید چقدر از زیبایی و performance سایت شما کاسته میشه !؟ اگر هر دانشجو 5 فیلد داشه باش با ضرب در این عدد چیزی حدود 250 تکست فیلد در صفحه شما نایش داده خواهد شد !! تازه ب زدن دکمه ثبت حداقل 50 query دریک لحظه اجرا خواهد شد ! اصلن اگر یک تک تکست فیلدهم برای 50 نفر تکرار بشه بازهم مشکلات و سردرگمی ایجاد خواهد کرد. پس بهتر هست که فرمی طراحی کنید که مدیر بعد از وارد کردن مشخصات یک دانش آموز از مدیر سوال کنه آیا میخواد اطلاعات دیگری وارد کنه یا خیر که اگر خواست دوباره اون فرمrefresh بشه.

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

شما اگر با منطقی که شریف عزیز عنوان کرد پیش برید، دیگه هیچ نیازی به این نخواهید داشت که مشخصات رو در آرایه ذخیره کنیدکه بعد هم بخواید اونها رو با یک حلقه در فیلدهای بانکتون قرار بدید. با این فرم جدید فقط شما تکست فیلدهارو با اسم خودشون دریافت میکنید و اونهارو در فیلدهای بانک مربوط به دانش آموزان ذخیره میکنید.... و بعد دوباره نفر بعدی

من هم موافقم که این منطق برای این مسئله با شرایطی که داره مناسب نیست .

اگر هم نیاز باشه که یک آرایه رو در یک فیلد ( فقط یک فیلد ) ذخیره کنید هم به شرط اینکه ازلحاظ نرمال سازی مشکل نداشته باشه ،امکان پذیر هست که اینجا مورد بحث نیست .
 
آخرین ویرایش:

Similar threads

بالا