PDA

View Full Version : سوال: بررسی خالی بودن فیلد از جدول در دیتابیس



ravand
پنج شنبه 30 خرداد 1392, 15:56 عصر
سلام
من یک برنامه ی ساده نوشتم که باهاش فیلد url رو بررسی بکنم ببینم چیزی داخلش هست یا نه. اگه چیزی داخلش نبود پیام بده بگه خالی است. ولی من خیلی برام عجیبه که چرا کار نمیکنه! از empty ,in_null,isset, و چند تا دستور و تابع دیگه هم استفاده کردم ولی فایده ای نداره. یکی از دوستان کد منو تست کرد و گفت توی سیستمش تست کرده و مشکلی نداره نمیدونم چرا توی سیستم من عیب داره! فکر میکنید مشکل از کجاست؟
این جدول و فیلدها:

-- Database: `databse`

CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`url` varchar(30) collate utf8_persian_ci NOT NULL,
`lastname` varchar(30) collate utf8_persian_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=4 ;
این هم php:

<?php
$handle = mysql_connect("localhost","root","");
$db = mysql_select_db("databse");
$sql="select * from test";
mysql_query("SET CHARACTER SET utf8",$handle);
$result=mysql_query($sql,$handle);
while ($row=mysql_fetch_array($result)){
$url=$row['url'];
echo $url;
if(empty($url)){
echo "خالی است";
}else{
echo "نیست";
}
}
?>
وقتی هیچ مقداری در فیلد نباشه هیچ پیامی نمیده. میخواستم ومپ رو پاک کنم از سر نصب کنم اعصابم نکشید گفتم بیام بپرسیم بلکه کسی راه حل مشکل رو بدونه.
متشکرم.

famarini
پنج شنبه 30 خرداد 1392, 16:40 عصر
سلام دوست من

کدهای داخل دستور while زمانی نمایش داده میشه که کوئری خالی برنگرده. شما باید قبل از دستور while چک کنی.

موفق و پیروز باشی

ravand
پنج شنبه 30 خرداد 1392, 16:45 عصر
حل شد متشکرم:

<?php
$handle = mysql_connect("localhost", "root", "");
$db = mysql_select_db("databse");
$sql = "select * from test";
$result = mysql_query($sql, $handle);
$row = mysql_fetch_array($result);
if (trim($row['name']) == '') {
echo "خالی است";
} else {
echo "نیست";
}
?>