آگهی
article

انتخاب ردیف ها با دستور SELECT در MySQL

mysql-select-from

فرآیندهای متداول سیستم های مدیریت پایگاه داده نظیر MySQL شامل چند مورد اصلی ذخیره سازی، بازیابی، به روزرسانی و در نهایت حذف اطلاعات است که در خصوص شیوه ذخیره سازی با دستور INSERT INTO در آموزش گذشته مفصل صحبت کردیم، در این مطلب می خواهیم به بحث بازیابی و انتخاب ردیف ها جهت استفاده از اطلاعات جداول MySQL در برنامه PHP بپردازیم، در دنیای برنامه نویسی ذخیره سازی و نگهداری اطلاعات به خودی خود صرفا یک هدف اولیه محسوب می شود و عمدتا نیازمند این هستیم که از اطلاعات ذخیره شده در شرایط مختلف در برنامه پردازش یا خروجی مورد انتظار داشته باشیم که بدین منظور در هر زبان برنامه نویسی ساز و کاری در نظر گرفته شده است، با ذکر این مقدمه در این آموزش با دستور دیگری از MySQL تحت عنوان SELECT آشنا می شویم که برای انتخاب ردیف های اطلاعاتی (Rows) و انجام پردازش های مورد نیاز در کدهای PHP از آن استفاده می کنیم.

کاربرد دستور SELECT در MySQL


پیش تر گفتیم که صرف ساخت دیتابیس (Database)، جدول (Table)، ستون (Column) و وارد کردن اطلاعات ردیف بندی شده (Rows) در آن تمام کار ما با MySQL نیست، در واقع این فرآیندها جزء مرحله دریافت و نگهداری اطلاعات هستند، اما اگر بخواهیم مجددا از این داده ها در قسمت های مختلف برنامه استفاده کنیم نیاز است که به کمک PHP ردیف های مد نظر را انتخاب (Select) نموده و فراخوانی کنیم، این کار در تعامل بین PHP و MySQL با دستور SELECT و پارامترهای آن انجام می شود که با توجه به نیاز برنامه و تنظیماتی که انجام می دهیم اطلاعات خاصی را از ردیف های موجود در جداول انتخاب و فراخوانی می کند تا پردازش مورد نظر روی آنها صورت گرفته و احتمالا به خروجی ارسال شوند.

شیوه نگارش (Syntax) دستور SELECT در MySQL


شیوه نگارش یا Syntax دستور SELECT در MySQL به صورت نمونه زیر است و به طور معمول همراه با پارامتر FROM استفاده می شود:
SELECT col_1, col_2 FROM tbl
مثال:
//انتخاب ردیف از تمام ستون ها
mysqli_query($conn, "SELECT * FROM table");

//انتخاب ردیف از یک یا چند ستون خاص
mysqli_query($conn, "SELECT id, name FROM table");
توضیح:
- در مورد mysqli_query گفتیم که یک تابع درونی در اکستنشن MySQLi است که جهت اجرای فرآیند پرس و جو بین کدهای PHP و دیتابیس MySQL کاربرد دارد.
- بعد از عبارت SELECT می توانیم از علامت * استفاده کنیم که در اینصورت ردیف های مربوط به تمام ستون ها به عنوان نتیجه پرس و جو انتخاب می شوند، این حالت در شرایطی که صرفا ستون یا ستون های خاصی مد نظرمان باشد مناسب نیست و فشار بیشتری به دیتابیس تحمیل می کند که در برنامه های با تعداد کاربر بالا ممکن است مشکل ساز شود، روش بهینه این است که صرفا نام ستون هایی که اطلاعات آنها مد نظرمان است را پس از عبارت SELECT درج کنیم (جداسازی با کاراکتر کاما ',').
- دستور SELECT FROM با پارامترهای دیگری از جمله WHERE تکمیل می شود که در ادامه سری آموزش های مقدماتی MySQL در این خصوص خواهیم گفت.
- پس از اجرای یک Query با دستور SELECT FROM بر اساس نوع درخواست و تنظیمات ما، مقادیر یا ردیف هایی به عنوان نتیجه پرس و جو برگردانده می شود، این مقادیر می تواند اطلاعات موجود در دیتابیس یا به طور مثال تعداد ردیف های انتخابی باشد.
- برای استفاده از نتیجه پرس و جو بهتر است تابع mysqli_query را به یک متغیر نسبت دهیم تا اطلاعات در ادامه برنامه در متغیر قابل دسترسی و مدیریت باشند، به فرض:
$query = mysqli_query($conn, "SELECT id, name FROM table");
نکته: نمونه کدهای بالا در PHP جنبه کاربردی ندارند و صرفا مرحله انتخاب ردیف ها را شامل می شوند، برای استخراج نتایج برگردانده شده از پرس و جو نیاز به توابع و کدنویسی بیشتری است که در ادامه آموزش حاضر بررسی خواهیم کرد.

پردازش و خروجی با تابع mysqli_fetch_array و متد fetch_array


پس از انتخاب اطلاعات ستون ها با دستور SELECT و نسبت دادن نتیجه برگردانده شده به متغیر، می توانیم با حلقه while در PHP و با کمک تابع mysql_fetch_array (برنامه نویسی رویه ای) یا متد fetch_array (برنامه نویسی شی گرا) مقادیر موجود در متغیر را از حالت آبجکت (Object) به صورت آرایه تبدیل کرده و پردازش مورد نظرمان را روی آنها اعمال یا مقادیر را در خروجی چاپ کنیم، در مثال های زیر از جدول books که در آموزش های قبل ساختیم اطلاعات ستون های book و level را به دو روش برنامه نویسی رویه ای و شی گرا دریافت کرده ایم.
برنامه نویسی رویه ای (Procedural):
<?php
//اتصال به دیتابیس
$conn = mysqli_connect("localhost", "username", "password", "dbname");

if(!$conn){
    echo "PHP & MySQL Connection: Error! " . mysqli_connect_errno() . ' - ' . mysqli_connect_error();
    exit;
} else{    
    //سازگاری با حروف فارسی
    $sql = "SET NAMES 'utf8'";
    $query = mysqli_query($conn, $sql);
    
    //اانتخاب اطلاعات از جدول و ستون ها
    $sql = "SELECT book, level FROM books";
    $query = mysqli_query($conn, $sql);
    
    if(!$query){
        echo "Selecting From Table books: Error! " . mysqli_error($conn) . '<br>';
    } else{
        //تعداد ردیف های انتخاب شده
        $count = mysqli_num_rows($query);
        $loop = 1;
        
        //پردازش و خروجی ردیف های اطلاعات
        if($count > 0){
            echo '<div style="direction: rtl; border: 1px solid #999;">';
            
            echo 'تعداد ردیف ها: ' . $count . '<br><br>';

            while($row = mysqli_fetch_array($query)){
                echo 'ردیف ' . $loop . ' => ' .
                'کتاب: ' . $row['book'] . ' - ' .
                'سطح: ' . $row['level'] . '<br><br>';
                
                $loop++;
            }
            
            echo '</div>';
        } else{
            echo "No Rows Found in Table books!";
        }
    }
}

//پایان اتصال
mysqli_close($conn);
?>
برنامه نویسی شی گرا (Object-oriented):
<?php
//اتصال به دیتابیس
$conn = new mysqli("localhost", "username", "password", "dbname");
if(!$conn) {
    echo "PHP & MySQL Connection: Error! " . $conn->errno() . ' - ' . $conn->error();
    exit;
} else {   
    //سازگاری با حروف فارسی
    $sql = "SET NAMES 'utf8'";
    $conn->query($sql);
    
    //اانتخاب اطلاعات از جدول و ستون ها
    $sql = "SELECT book, level FROM books";
    $query = $conn->query($sql);
    
    if(!$query){
        echo "Selecting Table books: Error! " . $query->error() . '<br>';
    } else{
        //تعداد ردیف های انتخاب شده
        $count = $query->num_rows;
        $loop = 1;
        
        //پردازش و خروجی ردیف های اطلاعات
        if($count > 0){
            echo '<div style="direction: rtl; border: 1px solid #999;">';
            
            echo 'تعداد ردیف ها: ' . $count . '<br><br>';

            while($row = $query->fetch_array()){
                echo 'ردیف ' . $loop . ' => ' .
                'کتاب: ' . $row['book'] . ' - ' .
                'سطح: ' . $row['level'] . '<br><br>';
                
                $loop++;
            }
            
            echo '</div>';
        } else{
            echo "No Rows Found in Table books!";
        }
    }
}

//پایان اتصال
$conn->close();
?>
توضیح:
- در این نمونه کدها فرض بر این است که جدول books را با سه ستون id، book و level از قبل ساخته ایم (رجوع به آموزش های گذشته).
- تابع mysqli_num_rows و متد num_rows تعداد ردیف هایی که به عنوان نتیجه پرس و جو انتخاب شده اند را برمی گردانند، اگر این مقدار 0 باشد یعنی هیچ ردیفی مطابق با پرس و جوی ما انتخاب نشده است.
- در صورت موفقت آمیز بودن پرس و جو نتیجه به صورت MySQL Result Object خواهد بود، این آبجکت جهت استفاده در کدهای PHP معمولا باید تبدیل به آرایه شود که در ادامه توضیح خواهیم داد.
- تابع mysqli_fetch_array نتیجه برگردانده شده توسط تابع mysqli_query و متد fetch_array نتیجه برگردانده شده توسط متد query را به آرایه قابل استفاده در PHP تبدیل می کنند.
- آرایه به دست آمده با تابع mysqli_fetch_array یا متد fetch_array با کلید و مقدار در کدهای PHP در دسترس است که در حلقه while می توانیم از ردیف های برگردانده شده خروجی بگیریم.
- در مثال های بالا مقادیر داخل علامت های [ ] در حلقه while نام ستون های جدول دیتابیس هستند که در هر دور حلقه while تا زمانی که کلید و مقداری در آرایه برای خروجی دادن وجود داشته باشد برای هر ردیف انتخاب شده تکرار می شوند.
- برای درک بهتر می توانیم با تابع var_dump در PHP از متغیر row در حلقه while خروجی بگیریم، مثال:
var_dump($row);

array (size=4)
  0 => string 'آموزش HTML' (length=15)
  'book' => string 'آموزش HTML' (length=15)
  1 => string 'مقدماتی' (length=14)
  'level' => string 'مقدماتی' (length=14)
همان طور که مشخص است MySQL نتیجه را هم به صورت کلیدهای عددی و هم رشته ای برمی گرداند که می توانیم از هر دو حالت برای گرفتن خروجی استفاده کنیم، به فرض:
$row['book'];
$row[0];
استفاده از دو شیوه بالا نتیجه یکسان خواهد داشت.
- در حالت شی گرا علاوه بر متد fetch_array می توانیم از متد fetch_assoc نیز استفاده کنیم، عبارت assoc به معنی Associative Array است که در این حالت نتیجه پرس و جو به صورت آرایه ای است که نام ستون ها (رشته متنی) به عنوان کلید آرایه تنظیم شده است، به فرض:
$row['book'];
علاوه بر مواردی که گفته شد شیوه های دیگری نیز برای دریافت نتیجه پرس و جو در حلقه while وجود دارد از جمله استفاده از تابع mysqli_fetch_row و متد fetch_row، تابع mysqli_fetch_object و متد fetch_object که به جهت کاربرد کمتر و جلوگیری از طولانی شدن مبحث در این مرحله به ذکر چند مثال بسنده می کنیم:
$query = mysqli_query($conn, "SELECT book, level FROM books");
while($row = mysqli_fetch_row($query)){
    echo $row[0] . ': ' . $row[1] . '<br>';
}

$query = $conn->query("SELECT book, level FROM books");
while($row = $query->fetch_row()){
    echo $row[0] . ': ' . $row[1] . '<br>';
}

$query = mysqli_query($conn, "SELECT book, level FROM books");
while($row = mysqli_fetch_object($query)){
    echo $obj->book . ': ' . $obj->level . '<br>';
}

$query = $conn->query("SELECT book, level FROM books");
while($obj = $query->fetch_object()){
    echo $obj->book . ': ' . $obj->level . '<br>';
}
نتیجه این پرس و جوهای فرضی می تواند به صورت زیر باشد:
آموزش HTML: مقدماتی
آموزش PHP: پیشرفته
آموزش MySQL: پیشرفته
پرس و جوهای SELECT در MySQL عموما با قسمت WHERE همراه هستند که در مباحث پیش رو در خصوص استفاده از دستور WHERE و پارامترهای آن توضیح خواهیم داد.
sectionدسته بندی: آموزش مقدماتی » MySQL
related مطالب بیشتر:
» توابع تجمعی (Aggregate Functions) در MySQL
» محدودسازی، گروه بندی و مرتب سازی نتایج در MySQL
» حذف مقادیر از MySQL با دستور DELETE
» آموزش MySQL، سیستم مدیریت پایگاه داده
» اتصال PHP به MySQL با اکستنشن MySQLi
commentنظرات (۶۸ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: ehsan
زمان: ۲۳:۵۵:۲۱ - تاریخ: ۱۳۹۲/۰۱/۰۱
عیدتون مبارک
من میخوام یک منو به صورت ابشاری داشته باشم بدون تعداد محدودیت در در ساخت زیر منو. البته با php ,mysql توی کد زیر من تا 2 زیر منو رو میتونم نمایش بدم از پایگاه داده ولی میخوام نامحدود باشه حتی اگه 10 تا باشه مثلا
. خانه
. مقالات
- وردپرس
- جوملا
-- قالب
-- ماژول
--- ساده
--- پیشرفته
. لینکستان
<?php
$id=mysql_real_escape_string($_GET['id']);
$menu=new menu();
$result=$menu ->SelectParent($id);
if($result && mysql_num_rows($result)>0){
while($row=mysql_fetch_assoc($result)){
echo '<li>'.$row['title'];
$re=$menu ->SelectParentMneu($row['id']);
if($re && mysql_num_rows($re)>0){
echo '<ul>';
a:
while($row=mysql_fetch_assoc($re)){
echo '<li>'.$row['title'];
$men=$menu->SelectParentMneu($row['id']);
if($men && mysql_num_rows($men)>0){
echo '<ul>';
while($row=mysql_fetch_assoc($men)){
echo '<li>'.$row['title'].'</li>';
}
echo '</ul>';
}
echo '</li>';
}
echo '</ul>';
//$re=$menu ->SelectParentMneu($row['id']);
}
echo '</li>';
}
}
?>
اگه نیاز بود بگید جدول پایگاه داده و کلاس مربوطه رو براتون ارسال کنم.
یا اصلا خودتون یک مثال بزنید کافیه
با تشکر
پاسخ: 
ابتدا باید با ساختار تگ های ul و li و ایجاد لیست تو در تو آشنا باشید، سپس متناسب با ساختار کلاس menu، از متد SelectParent و SelectParentMneu استفاده کنید، البته اینکه این متدها تا چند سطح زیر مجموعه تولید کنند را باید بررسی کرد و این کار تنها با دیدن سورس کدها و آزمایش خطا در یک برنامه ی قابل اجرا ممکن است، در کل به نظر می رسد هم کلاس menu و هم قسمت کد کاربردی باید ویرایش شوند.
نویسنده: ehsan
زمان: ۱۶:۳۷:۴۱ - تاریخ: ۱۳۹۲/۰۱/۰۲
در بالا اگه دقت کنید وردپرس و جوملا زیر مجموعه مقالات، و قالب و ماژول زیر مجموعه جوملا و ساده و پیشرفته زیر مجموعه ماژول هستند.
من میخوام این زیر مجموعه ها نامحدود تولید بشه الان 3 دونه بیشتر نیست، بلدم بنویسیم که حتی 10 تا 20 الی بالاتر رو بنویسم ولی باید به همون اندازه حلقه while بنویسم، میخوام جوری باشه که نیاز به حلقه while زیاد نباشه
پاسخ: 
معمولا این نوع لیست های زیرمجموعه ای تا نهایتا سه سطح بیشتر استفاده نمی شوند و بالاتر از این در وب معمول نیست؛ به هر صورت ساختار کدهایتان طوری است که برای هر سطح باید یک حلقه while استفاده کنید و به نظر این اجتناب ناپذیر است، چون باید به تعداد منوهای همان سطح، دور تکرار داشته باشید.
نویسنده: امین
زمان: ۰۰:۱۱:۰۱ - تاریخ: ۱۳۹۲/۰۴/۰۴
با سلام
این تو دیتابیس ads اونایی که ستون myad اونها خالیه رو می گیره:
mysql_query("select * from ads where myad=''");
حالا اگه بخوایم اونایی که ستون myad اونها پره رو بگیره چی باید نوشت؟
با تشکر
پاسخ: 
در پرس و جوی
mysql_query("select * from ads where myad != ''");
به جای علامت = از =! استفاده کنید.
نویسنده: علیرضا
زمان: ۰۷:۵۰:۰۶ - تاریخ: ۱۳۹۲/۰۴/۱۰
با سلام تو عاشقتونم خیلی کمک بزرگی بهم کردید سایتتون عالیه. یه سوال دارم.
من میخوام میزان شارژ یک کاربر رو بگیرم با کولوم فرضی sharj این کد رو میزنم اما جواب نمیده.:
$sharji = mysql_query("SELECT sharj FROM register WHERE username = '$username'");
$sharjo = mysql_fetch_array($sharji);
if ($sharjo == 1){
echo "شارژ شما 1 است";
}
پاسخ: 
کد شما دارای اشکال است، از نمونه زیر استفاده کنید:
$sharji = mysql_query("SELECT sharj FROM register WHERE username = '$username' LIMIT 1");
while($row = mysql_fetch_array($sharji)){
$sharjo = $row['sharj'];
}
if ($sharjo == 1){
echo "شارژ شما 1 است";
}
نکته: اکستنشن MySQL قدیمی و منسوخ شده است، توصیه می کنیم از اکستنش MySQLi یا PDO استفاده کنید.
نویسنده: mahdi
زمان: ۱۵:۳۶:۵۵ - تاریخ: ۱۳۹۲/۰۴/۲۲
سلام اول ممنون از آموزش ها بسیار خوبتون ... یه سوال:
من چطور می تونم توی فرم ورود ، وقتی کاربر لوگین کرد آی دی اون رو توی یه متغیر مثل a ذخیره کنم و بعدش اطلاعات مربوط به اون آی دی رو توی کنترل پنل کاربریش نمایش بدم ؟؟؟
ممنون
پاسخ: 
می توانید به راحتی این کار را هنگام SELECT کردن کاربر (چک کردن نام کاربری و کلمه عبور) انجام دهید، id را استخراج کرده و به یک سشن آی دی نسبت دهید، سپس هر طور نیاز بود از آن آی دی استفاده کنید، به فرض آن آی دی را در یک پرس و جوی دیگر قرار داده و اطلاعات مربوط به آن را به دست آورید، مثال:
<?php
//پرس و جوی فرضی
$result = mysql_query("SELECT id FROM register WHERE username = '$username' AND password = '$password'")
or die(mysql_error());
while($row = mysql_fetch_array($result)){
$_SESSION['id'] = $row['id'];
}
//گرفتن خروجی فرضی
echo $_SESSION['id'];
?>
نکته: اکستنشن MySQL قدیمی و منسوخ شده است، توصیه می کنیم از اکستنش MySQLi یا PDO استفاده کنید.
نویسنده: حامد
زمان: ۱۱:۰۳:۴۸ - تاریخ: ۱۳۹۲/۰۴/۲۵
عالی بود خیلی خیلی ممنون من مشکلم حل شد
نویسنده: سعید
زمان: ۱۷:۳۹:۲۲ - تاریخ: ۱۳۹۲/۰۵/۱۱
$old_id=1;
$test = mysql_query("Select * from tbl_cat where cat_id=$old_id+* ") or die(mysql_error());
while ($row = mysql_fetch_array($test)){
$cat_id= $row['cat_id'];
echo $cat_id;
}

$old_id=1;
$test = mysql_query("Select * from tbl_cat where cat_id between $old_id and 9999 ") or die(mysql_error());
while ($row = mysql_fetch_array($test)){
$cat_id= $row['cat_id'];
echo $cat_id;
}
امیدوارم بتوانم جوری زحماتتان را جبران کنم!
کد اول که بی معنی است اما دومی اجرا می شود ولی نیاز من را برآورده نمی کند
هدفم این بود که id مربوط به جدول قبلی که از قبل گرفته بودم رو در پرس و جو به کار ببرم
جدول فعلی حاوی یک فیلد است که یک عدد 4 رقمی را در خود جای داده که دو رقم اول آن در واقع id یک جدول دیگر است و دو رقم بعدی مربوط به خودش است
می خواستم جوری پرس و جو بنویسم که از جدول مربوطه رکوردهایی انتخاب شوند که دو رقم اول آنها برابر با id جدول قبلی باشند یا اگر دو رقمی نبود (در واقع اگر id جدول اولی دو رقمی نبود و مثل کد بالا 1 رقمی بود) رقم اولشان برابر با id جدول قبلی باشد.
اما نمیشه...
خیلی تلاش کردم اما توی اینترنت هر چقدر گشتم چیزی آیدم نشد یک تابع به نام union بود که با آن می شد دو تا فیلد را با هم ترکیب کنی اما هر چقدر فکر می کنم چاره ای به ذهنم نمی رسد
این جدول را برای ساخت منو های تو در تو می خواهم حالا نمی دانم تئوری به کار رفته شده درست است یا نه اما کارم لنگ همون یه تیکه کده
بیش از این مزاحمتون نمیشم
گفتم شاید تابعی راهی وجود داشته باشه که بشه این مشکل رو حل کرد
نویسنده: سعید
زمان: ۱۷:۵۱:۵۶ - تاریخ: ۱۳۹۲/۰۵/۱۱
$old_id=1;
$test = mysql_query("Select * from tbl_cat where cat_id like '$old_id%' ") or die(mysql_error());
while ($row = mysql_fetch_array($test)){
$cat_id= $row['cat_id'];
echo $cat_id;
}
ببخشید دوباره مزاحم شدم در سایت شما در بخش دیگری در حال مطالعه ی مباحث myaql بودم که در آن به استفاده از like توصیه شده بود فکر می کنم مشکلم حل شده باشد چون تست کردم و جواب داد
به هر حال بازم ممنونم
واقعاً سایت شما تکه
توی اینترنت این همه گشتم هیچی پیدا نکردم اما طی چند دقیقه تونستم توی سایت خوبتان مشکلم رو حل کنم
پاسخ: 
خواهش می کنیم، در پاسخ نظر قبلی هم در حال درج استفاده از LIKE بودیم که پیام دیگر شما رسید!
نکته: در صورت امکان، بهتر است ساختار جداول را بهتر از این تنظیم کنید تا به این صورت وابسته به هم نباشند، حداقل باید طوری باشند که نیاز به استفاده از LIKE نباشد.
نویسنده: مسعود
زمان: ۲۰:۴۲:۱۸ - تاریخ: ۱۳۹۲/۰۶/۰۵
با سلام . ممنون میشم راجب این کد یه توضیح مختصر بدید
mysql_query('SELECT COUNT(*) AS num FROM manage WHERE man_cat_id="'.$row_menu['cat_id'].'"') or die (mysql_errno());
پاسخ: 
این پرس و جو برای شمارش تعداد ردیف هایی است که id آنها بر اساس قسمت WHERE باشد، نتیجه این شمارش به ردیف فرضی num اختصاص پیدا می کند که می تواند در توابعی مانند mysql_fetch_assoc برای گرفتن خروجی استفاده شود، مثال:
$result = mysql_query('SELECT COUNT(*) AS num FROM manage WHERE man_cat_id="'.$row_menu['cat_id'].'"') or die (mysql_errno());
$array = mysql_fetch_assoc($result);
echo $array['num'];
نکته: اکستنشن MySQL قدیمی و منسوخ شده است، توصیه می کنیم از اکستنش MySQLi یا PDO استفاده کنید.
نویسنده: مسعود
زمان: ۰۳:۳۵:۴۷ - تاریخ: ۱۳۹۲/۰۶/۰۶
با سلام مجدد . در سوال قبلی منظور از AS num چیه ؟؟
یعنی همه رو میشماره بعد میریزه تو آرایه ای به نام num ?
$array ['num']
چی رو چاپ میکنه ؟
پاسخ: 
AS num یعنی تعداد کل ردیف ها (که با COUNT محاسبه می شود) در یک ستون فرضی به نام num ذخیره می شود، لذا ستون num در اینجا تعداد کل ردیف ها را چاپ می کند.
نویسنده: خلیل
زمان: ۰۰:۲۸:۳۷ - تاریخ: ۱۳۹۲/۰۷/۳۰
ممنون از اموزش خوبتون من به همه توصیه می کنم بعد از هر مطلب اموزشی حتما همه سوالات پایین هر صفحه رو مطالعه کنن من خیلی سوالاتم با همین ها حل شده . بازم ممنون از مدیر سایت .
نویسنده: علی امینی
زمان: ۱۵:۰۱:۴۱ - تاریخ: ۱۳۹۲/۰۸/۰۷
سلام
واقعا ممنونم از آموزشایی که میزارید. من آژاکس و مای اس کیو ال رو دنبال کردم واقعا عالی بود.
فقط یه مشکلی هست.
من نوع داده ی یک فیلد رو VARCHAR 255 قرار میدم ولی وقتی چیزی مثل ali رو توش می خوام ذخیره کنم این ارورو میده:
Unknown column 'ali' in 'field list'
ممنون میشم بگید مشکل از چیه
پاسخ: 
لیست ستون های جدول مربوطه و نمونه پرس و جویی که اجرا می کنید را درج کنید تا بررسی کنیم، به احتمال زیاد اشکالی در نحوه تنظیم پرس و جوی شما وجود دارد که باعث شده مقادیر value به عنوان نام ستون پردازش شود.
نویسنده: نیلوفر
زمان: ۲۳:۱۱:۳۰ - تاریخ: ۱۳۹۲/۰۸/۱۰
سلام.
من می خوام از چند تا table بخونم و همه رو در یک جدول نشون بدم . یعنی 4 تا دستور select و while نوشتم و
$bolok.="<tr><td>$_SESSION[idn]</td><td>$_SESSION[name_m]</td></tr>";
در آخر نوشتم اما فقط درمورد while آخری درست کار می کنه و در مورد قبلیا مقدار آخر رو همش نشون میده یعنی مقدارای اولیه رو سیو نمیکنه؟؟؟؟؟ چیکار کنم؟؟؟؟؟؟
پاسخ: 
سوالتان واضح نیست! حل مشکل نیاز به دیدن سورس کد کامل دارد.
نویسنده: نیلوفر
زمان: ۲۲:۰۰:۲۵ - تاریخ: ۱۳۹۲/۰۸/۱۳
سلام
سورس کامل رو فرستادم
حذف شد
پاسخ: 
کد شما بررسی شد، باید ببینید مقادیر
$_SESSION[id]
در هنگام فراخوانی کد با چه مقداری ست می شود، انتخاب ردیف از جداول بر اساس برابر بودن ستون id با این مقادیر است، برای خطایابی، می توانید با دستور echo از موارد خروجی بگیرید و با آزمایش و خطا ایراد کار را پیدا کنید.
نویسنده: مصطفی
زمان: ۱۷:۰۶:۳۴ - تاریخ: ۱۳۹۲/۰۹/۲۱
سلام می خواستم بدونم چطور میشه یه حلقه نوشت که تمام سطرهای یک جدول رو طی کنه و دستور مورد نظر رو روی همه ی سطرها اجرا کنه در حالی که ما نمی دونیم چه تعداد سطر در این جدول وجود داره.
پاسخ: 
اگر حلقه از نوع while باشد، مادامی که امکان "fetch" وجود داشته باشد حلقه نیز ادامه می یابد، اگر حلقه از نوع for بود می توانیم به فرض با mysqli_num_rows تعداد کل ردیف های انتخاب شده را محاسبه و به همان اندازه حلقه را ادامه دهیم.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ کوتاه و مختصر داده خواهد شد!
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.





8 × 8
 refresh
آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form Oliver
در:
چطوری دستور background رو برای جدلمون عکسش رو تنظیم کنیم و بهش طول و عرض بدیم
۱۶:۰۷:۱۷ ۱۳۹۹/۰۴/۱۸

form محمد
در:
با عرض سلام ببخشید چطوری میتونم واسه اشتراک کاربر انقضا بزارم مثلا یک ماه داخل دیتابیس ردیف تایم رو درست کردم البته تاریخ رو تبدیل...
۱۹:۱۴:۵۹ ۱۳۹۹/۰۴/۱۵

form آیدا
در:
سلام من در حال طراحی با html هستم اما طبق فیلم آموزشی پیش میرم از یه جایی به بعد هم تغییرات اعمال نمیشه...
۲۲:۴۷:۴۴ ۱۳۹۹/۰۴/۱۴

form علی
در:
سلام اگه میشه یه تکه کدی بفرستید که کاربر نتونه عکس مورد نظر رو دانلود کنه و با نگه داشتن روی عکس فقط لینکو ببینه...
۰۹:۳۰:۴۹ ۱۳۹۹/۰۴/۱۴

form sina2000
در:
با سلام و خسته نباشید طبق کد زیر استفاده میگه متغیر Pdc برای PDO است لطفا نمونه کد برای لایبرری...
۱۵:۰۳:۵۱ ۱۳۹۹/۰۴/۱۳

form محمد امین
در:
سلام ممنون از مطلبتون ببخشید من یه سایتی با شی گرایی کامل زدم الان میخوام آدرسشو بهینه کنم آدرس الان من به این صورته:...
۱۸:۲۸:۲۴ ۱۳۹۹/۰۴/۱۱

form ترنم
در:
سلام وقتتون بخیر ببخشید من کدهای مربوط منو و زیر منو رو نوشتم ولی موقع اجرا منوی اصلی رو میاره ولی زیر منوها رو...
۱۱:۰۶:۲۹ ۱۳۹۹/۰۴/۱۱

form ا
در:
سلام چرا وقتی مطالب مربوط که تو وبلاگم هست رو جستجو میکنم نمیاره ؟؟؟
۲۰:۳۱:۰۸ ۱۳۹۹/۰۴/۰۷

form amir
در:
سلام من اگه بخوام با وارد کردن یه id داخل یک text کل اون ردیف پاک بشن باید چه کنم مثلا یک text دریافت میکنم...
۰۱:۴۸:۰۵ ۱۳۹۹/۰۴/۰۷

form محمدباقر حسیبیان
در:
من این مشکل برام پیش اومده که موقع ورود به پروژه م توی لوکال هاست wamp صفحه سفیده و هیچی رو نشون نمیده و کد...
۱۶:۴۲:۳۸ ۱۳۹۹/۰۴/۰۶

form ...
در:
سلام دو سایت نوشته ای مربوط به من رو چند سال قبل لینک دانلود قرار دادن من ازشون خواستم بردارنش ولی اینکارو نکردن سایت...
۱۷:۲۶:۴۲ ۱۳۹۹/۰۴/۰۵

form مجتبی
در:
سلام میشه یک کد جاوا رو به php تبدیل کرد تا لود سایت سریع تر بشه؟
۱۳:۰۴:۲۳ ۱۳۹۹/۰۴/۰۴

form متین
در:
سلام ؛ من تازه شروع به یادگیری کردم ؛ مطلب بسیار کاربردی بود ؛ ممنون از شما دوست عزیز.
۰۱:۵۰:۰۵ ۱۳۹۹/۰۴/۰۴

form mahdi
در:
سلام استاد عزیز و گرامی امیدوارم که حالتون خوب باشه ، اگه براتون ممکنه لطفا یه آموزش خوب در زمینه وردپرس بهم معرفی کنید ،...
۲۱:۴۸:۱۳ ۱۳۹۹/۰۴/۰۳

form امید
در:
در برنامه نویسی کاربر با چه دستوری میتواند به صفحه اصلی برگردد
۱۹:۰۶:۵۶ ۱۳۹۹/۰۴/۰۳
form ali
در:
با سلام من یک پروژه طراحی کردم میخوام که وقتی کاربر روی ادامه مطلب کلیک کرد در خود صفحه بقیه مطالب را ببینه...
۱۸:۴۷:۲۲ ۱۳۹۹/۰۴/۰۳
form علی
در:
سلام و تشکر از زحمات ارزشمند شما احتراما بنده امروز از یک شماره تلفن ثابت از طریق یک رایانه و یک موبایل به طور...
۱۸:۰۱:۱۰ ۱۳۹۹/۰۴/۰۳
form oscar
در:
درود. اگر بخوایم در نمایش تاریخ و زمان که به صورت لحظه ای خودش در صفحه رفرش میشه، فقط عبارت " Mon Jun 22 2020...
۱۵:۵۹:۳۲ ۱۳۹۹/۰۴/۰۲
form علی
در:
با سلام چطور میشه فقط یک صفحه مورد نظرمون رفرش بشه نه همه صفحات سایت
۰۰:۰۳:۴۱ ۱۳۹۹/۰۳/۳۱
form Farzad
در:
الان وقتی فایل رو میخواد دانلود بکنه از خودش فایل میسازه ، به این صورت یعنی بعد از پوشه file هر پوشه ای باشه...
۱۸:۵۶:۲۱ ۱۳۹۹/۰۳/۳۰
form Farzad
در:
سلام ، خسته نباشید من فایل هایی که در هاست میزارم به این شکل هست: یعنی مشخص نیست فایل ها تو چه پوشه...
۱۳:۳۳:۴۰ ۱۳۹۹/۰۳/۳۰
form شیما طیبی
در:
سلام خیلی مطلب مفیدی بود . همیشه به وبلاگ نویسی به چشم یه کار خسته کننده نگاه میکردم ولی خب یه مقدار نظرم تغییر کرد....
۲۳:۵۲:۳۲ ۱۳۹۹/۰۳/۲۹
form احسان
در:
سلام من یک کد اسکریپت دارم که به صورت عددی تبدیل شده است. میخواستم بپرسم چطوری میتونم اسکریپت به حالت اولیه نوشته شده برگردانم و...
۲۱:۰۲:۱۳ ۱۳۹۹/۰۳/۲۷
form علی
در:
ممنون از پاسختون اما روش بالا جهت دانلود فایل کاربرد داره . من میخواستم به صورت استریم ویدئو پخش بشه اما آدرس مستقیم ویدئو...
۰۰:۳۷:۴۶ ۱۳۹۹/۰۳/۲۷
form محمد
در:
سلام مجدد ببخشید طبق فرمایش شما من در دیتابیس جدولی ساخته بودم فقط مشکلم اینجاست چطوری میتونم توسط کوکی یا سیشن با تابع دیت انقضا...
۲۲:۳۸:۰۳ ۱۳۹۹/۰۳/۲۵
form محمد
در:
با عرض سلام ببخشید چطوری میشه واسه اشتراک خریدن زمان ۱ ماهه گذاشت که بعد از گذشت ۱ ماه پیام بده دوباره اشتراک تهیه کنید...
۱۳:۱۳:۵۵ ۱۳۹۹/۰۳/۲۵
form ehsan
در:
سلام و خسته نباشید. من قالب جدید تهیه کردم ولی ایکن هاش کار نمیکنن. اگه وبلاگم نگا کنین متوجه میشین. ایکن شبکه های اجتماعی...
۱۷:۱۹:۴۰ ۱۳۹۹/۰۳/۲۴
form ملیکا
در:
سلام به شدت کمک میخام
۱۶:۳۱:۱۰ ۱۳۹۹/۰۳/۲۱
در انتظار بررسی: ۰