PDA

View Full Version : چک کردن جدول خالی در php



artablog
دوشنبه 14 بهمن 1392, 10:39 صبح
سلام
یه جدول دارم دو تا ستون داره یکی username و یکی password فرض کنید این جدول دو تا رکورد داره رکورد یک نام کاربری user1 داره با پسورد 1234 و یه رکورد داره با نام کاربری user2 و پسورد خالی با کد زیر چک میکنم اگه نام کاربری وجود داشت مقدار yes را برگردونه اگه وجود نداشت مقدار no را برمیگردونه حالا میخوام چک کنه اگه نام کاربری وجود داشت و پسورد خالی بود مقدار no را برگردونه

$link = mysql_connect($server,$user,$pass);
mysql_select_db($db);
$response = 'no';
if(isset($_POST['username']) && trim($_POST['username']) != ''){
$query = mysql_query("SELECT * FROM users WHERE username = '".mysql_escape_string(trim($_POST['username']))."'", $link);
if(mysql_num_rows($query) > 0){
$response = 'yes';
}
}
echo json_encode(array('exists' => $response));

sadegh1362
دوشنبه 14 بهمن 1392, 14:44 عصر
سلام
در if دوم باید مقدار فیلد password رو چک کنید یعنی یه if دیگه بذارید و مقدار آرای ای که تویه $query هست رو بخونید و اگر مقدارش برابر 0 یا null بود response$ رو برابر no قرار بده
موفق باشید.

artablog
دوشنبه 14 بهمن 1392, 14:53 عصر
تو سایت stackoverflow سوال کردم اونجا جواب دادن به نتیجه هم رسیدم
http://stackoverflow.com/questions/21522437/check-if-username-in-the-table-with-password-in-php
just add AND password !='' this line to your query

sadegh1362
دوشنبه 14 بهمن 1392, 17:52 عصر
بله اینم یه راه دیگست اما این راهی که من گفتم باعث می شه داده ای از دیتابیش بیان بعدا چک بشه
اما تو راهی که شما گفتین داده در دیتابیس چک می شن موفق باشید

MMSHFE
سه شنبه 15 بهمن 1392, 00:54 صبح
از این راه هم میشه:


mysql_connect($server, $user, $pass) or die('Connection error');
mysql_select_db($db) or die('Database error');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
$response = 'no';
if(isset($_POST['username']) && trim($_POST['username']) !== '') {
$username = mysql_real_escape_string(trim($_POST['username']));
$count = mysql_result(mysql_query("SELECT COUNT(*) AS `total` FROM `users` WHERE (`username`='{$username}' AND TRIM(`password`)<>'')"), 0, 0);
/*
OR :
$count = mysql_result(mysql_query("SELECT COUNT(*) AS `total` FROM `users` WHERE (`username`='{$username}' AND `password` IS NOT NULL)"), 0, 0);
*/
if($count > 0) {
$response = 'yes';
}
}
echo json_encode(array('exists' => $response));

البته دقت کنید که دستور دوم (کامنت) وقتی کار میکنه که شما موقع ساخت جدول، برای فیلد password گزینه Null رو انتخاب کرده باشین یعنی اگه مقدار نداشته باشه، Null ذخیره بشه نه یک رشته خالی.