-1

嗨,我编写了以下函数来从我的数据库中获取一个值:

function getSlCreatedate($sid) {
    $query1 = "SELECT Sub_type FROM `Sub` where `Sub_id` = $sid";
    $queryresult1 = mysql_query($query1);
    $row1 = mysql_fetch_assoc($queryresult1);
    $type1 = $row1['created_ts'];
    if($type1 == 'SL') {
    $query2 = "SELECT Sub_attr_value FROM `Sub_attr_list` WHERE `Sub_attr_type_id` = 20 AND `Sub_id` = $sid";
    $queryresult2 = mysql_query($query2);
    $row2 = mysql_fetch_assoc($queryresult2);
    $type2 = $row2['Sub_attr_value'];
    if($type2 == " "){
    $query3 = "SELECT Created_ts FROM `Sub` WHERE `Sub_id`= $sid";
    $queryresult3 = mysql_query($query3);
    $row3 = mysql_fetch_assoc($queryresult3);
    return $row3['Created_ts'];
    }
    else {
    return $type2['Sub_attr_value'];
    }
    }
    else
    return 0;
}

什么条件是我需要首先检查数据库中的 Sub_type 以获得给定的“sid”值,如果返回“SL”作为结果,那么我需要从“Sub_attr_list”表中获取“Sub_attr_value”,如果该值返回空行或值为NULL,然后我必须将该sid的“Created_ts”值返回到页面,当我在我的PHP MyAdmin中单独执行时,这里所有的查询都工作正常,谁能指导我完成这个,我不能从这里获取值到页面。

我的页面中的函数调用如下:

  $sldate = db_func::getSlCreatedate($sub_list[$i]['Sub_id']);

幸运的是,它没有显示任何错误,也没有显示预期的结果。

4

1 回答 1

1
function getSLCreatedDate($sid) {

    $query = "SELECT s.created_ts, sa.Sub_attr_value FROM Sub s
              LEFT JOIN Sub_attr_list sa ON sa.Sub_id=s.Sub_id AND sa.Sub_attr_type_id='20'
              WHERE s.Sub_id='" . mysql_real_escape_string($sid) . "'"
    $sql = mysql_query($query);

    $row = mysql_fetch_array($sql);

    if($row['created_ts'] == 'SL')
        return isset($row['Sub_attr_value']) ? $row['Sub_attr_value'] : $row['created_ts'];

    return 0;
}
于 2012-09-01T11:23:04.420 回答