PDA

View Full Version : سوال: یه سوال راجب شرط ها



theboy
پنج شنبه 19 دی 1392, 10:45 صبح
سلام.
دوستان یه سوال داشتم، من یه کد به این صورت دارم:



if($test == "1"){
دستور گرفتن
mysql query
و ذخیره اطلاعات در یک متغیر دیگر
}


حالا اگر متغیر test مقدارش 1 نباشه کلا دستور داخل شرط نادیده گرفته میشه؟ یعنی هیچ Query گرفته نمیشه؟

سوال بعدی اینکه یه سیستم استاندارد که فشار زیادی رو سرور نداره در هر صفحه باید نهایتا چند تا query داشته باشه؟(این همیشه مشکل من در برنامه نویسی php بوده! :گریه: )

sh.n.n786
پنج شنبه 19 دی 1392, 12:18 عصر
درود و ...
1- بله هيچ Query با هيچ دستوري كه داخل اين كروشه ها هست اجرا نميشه.
2- تعداد در خواست ها به DataBase انچنان سنگين هم نيست زمان در خواست از نظر من مهم تره يعني همزمان 200 300 تا در خواست در ثانيه وارد بشه MYSQL آخ هم نميگه (مثال بود) اما اگه اين در خواست ها در ميكرو ثانيه وارد بشه ممكنه پردازنده يكم درگير بشه.

مطمئنين اين مشكل براي PHP هست ؟

کامبیز اسدزاده
پنج شنبه 19 دی 1392, 12:29 عصر
سلام.
دوستان یه سوال داشتم، من یه کد به این صورت دارم:



if($test == "1"){
دستور گرفتن
mysql query
و ذخیره اطلاعات در یک متغیر دیگر
}


حالا اگر متغیر test مقدارش 1 نباشه کلا دستور داخل شرط نادیده گرفته میشه؟ یعنی هیچ Query گرفته نمیشه؟

سوال بعدی اینکه یه سیستم استاندارد که فشار زیادی رو سرور نداره در هر صفحه باید نهایتا چند تا query داشته باشه؟(این همیشه مشکل من در برنامه نویسی php بوده! :گریه: )

ببینید دستور شرطی شما به صورت بالا که نوشتین فقط یک حالت رو داره بررسی میکنه یعنی اگر برابر با ۱ بود فلان کار رو انجام بده وسلام !
برای اینکه در غیر اینصورتی داشته باشه یه else بهش اضافه کنید تا در صورت برابر نبودن یه دستور دیگه ای رو اجرا کنه.

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

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

theboy
پنج شنبه 19 دی 1392, 13:15 عصر
مطمئنين اين مشكل براي PHP هست ؟
ممنون از هردو بزرگوار که جواب دادند.

نه آخه من به چند زبان دیگه هم در وب کار می کنم که اونا برنامه نویسی نیستد مثل html , css , jquery و... و از این دنگ و فنگا ندارند. ولی php فکر فشار به سرور که به سرم می زنه دیوونه میشم :d

theboy
پنج شنبه 19 دی 1392, 15:07 عصر
دوستان یه سوال دیگه.
در طراحی قالب میشه با jquery یه قسمتی رو مخفی کرد و وقتی روی دکمه ای کلیک میشه اون قسمت رو نمایش داد.
سوالی که دارم اینه که آیا برای کدهای php هم میشه اینکار رو کرد؟ مثلا یه قسمت از صفحه که خودش چند query داره مخفی باشه و وقتی کاربر روی دکمه ی بیشتر یا مشاهده و... کلیک می کنه query ها ارسال بشن و محتوا نمایش داده بشه(یعنی تا کاربر نخواسته هیچ query ارسال نشه).
فکر کنم با ajax بشه اینکارو کرد میشه یکی یه مثال بزنه؟

SA_Developer
پنج شنبه 19 دی 1392, 15:35 عصر
دوستان یه سوال دیگه.
در طراحی قالب میشه با jquery یه قسمتی رو مخفی کرد و وقتی روی دکمه ای کلیک میشه اون قسمت رو نمایش داد.
سوالی که دارم اینه که آیا برای کدهای php هم میشه اینکار رو کرد؟ مثلا یه قسمت از صفحه که خودش چند query داره مخفی باشه و وقتی کاربر روی دکمه ی بیشتر یا مشاهده و... کلیک می کنه query ها ارسال بشن و محتوا نمایش داده بشه(یعنی تا کاربر نخواسته هیچ query ارسال نشه).
فکر کنم با ajax بشه اینکارو کرد میشه یکی یه مثال بزنه؟
یعنی query رو میخواین تو HTMLمخفی کنید؟! این راهش نیست
یه مثال میزنم امیدوارم کمکتون کنه:


<!doctype html>
<html>
<head>
<title>ajax requet</title>

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<button id="run">Run</button>
<div id="results">result get here</div>
<script>
$("#run").click(function () {
$.ajax({
url: "query.php",
data: {exec:'query1'},
cache: false
})
.done(function( html ) {
$( "#results" ).html( html );
});
});
</script>
</body>
</html>query.php


<?php
if(isset($_GET['exec']) && $_GET['exec']=='query1'){
echo 'codes to execute query1';
}
else
echo 'No query executed.';

theboy
پنج شنبه 19 دی 1392, 19:12 عصر
دقیقا چیزی بود که می خواستم! خیلی ممنونم از شما.
عالی فقط چجوری میشه تو فایل php برای تابع اسم گذاشت و تابع مورد نظر رو فراخوند؟

الان دارم میبینم که شما یه جورایی از ajax جی کوئری استفاده کردید! درسته؟
من چندبار سعی کردم ajax یاد بگیرم خیلی سخت بود سر همون active.x و اینا بی خیال شدم :d
ای جکس جی کوئری کامل هست؟ رو همه مرورگرها پشتیبانی میشه؟

SA_Developer
جمعه 20 دی 1392, 07:48 صبح
خواهش میکنم

عالی فقط چجوری میشه تو فایل php برای تابع اسم گذاشت و تابع مورد نظر رو فراخوند؟به اینصورت که شما میخواین نمیشه باید تو همون فایل php بگین اگر اطلاعات ارسال شده فلان تابع رو اجرا کن:

<?php
if(isset($_GET['exec'])){
exec_query($_GET['exec']);
}
else
echo 'No query executed.';

function exec_query($which){
// Codes to execute $which query
}


الان دارم میبینم که شما یه جورایی از ajax جی کوئری استفاده کردید! درسته؟بله، جی کوئری یکسری توابع و کدهای آماده جاواسکریپته که تو یه فایل قرار داره و واسه ما گذاشته تا کارمون راحتتر بشه اما میتونید از جی کوئری هم استفاده نکنید.


ای جکس جی کوئری کامل هست؟ بله اگر هم نبود میتونید خودتون از کدهای جاواسکریپت استفاده کنید. فراموش نکنید که جیکوئری همون جاواسکریپته و یک زبان محسوب نمیشه.


رو همه مرورگرها پشتیبانی میشه؟
بله


Firefox 2.0+
Internet Explorer 6+
Safari 3+
Opera 10.6+
Chrome 8+

metal gear solid 4
جمعه 20 دی 1392, 12:34 عصر
جواب مستقیم به سوال شما نیست اما هرگز در شرطهایی که نیاز به تبدیل نوع هست یا بررسی اعداد یا شبیه به این از == استفاده نکنید. هرگز.


if ( intval($test) === 1 )

اینطوری استفاده کنید.