PHP başarısız koşulu değerini döndürür

2 Cevap

Sorgu başarısız olursa ben yanlış bir dönüş lazım ... nereye i koymak ...

function asas($username,$password){
    $qry = "SELECT * 
            FROM members 
            WHERE login='$username' AND passwd='".md5($password)."'";

    $result = mysql_query($qry);

    while($row = mysql_fetch_array($result)) 
    {
        	return(array($row['userlevel'], $row['email']));
    }

    //return 'Invalid username / password ';
}

2 Cevap

mysql_query return false on fail, just like mysql_fetch_array. so your code should be like the following:

function asas($username,$password) {
   $qry="SELECT * 
         FROM members 
         WHERE login='$username' AND passwd='".md5($password)."'";

   $result=mysql_query($qry);

   // if fail is intended the failure of the mysql connection
   if (!$result) return false;

   $row = mysql_fetch_array($result);

   if ($row) return array($row['userlevel'],$row['email']);

   // if fail is intended as username and password didn't match
   return false; 
}

Sen fonksiyonu çeşitli çıkış noktaları olduğunu göreceksiniz. Ödevlerin durumda tek tek onları konsantre olmalıdır.

if(mysql_num_rows($result)===0)
    return false;
else
    while(...

Ben genellikle yazılı görüyorum. Hatta mümkün olabilir basitçe return false; doğrudan while döngüsü sonra. Ne işe yaradığını görmek, bunu deneyin.