-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;
}

条件は、最初に指定された「sid」値についてデータベースの Sub_type を確認する必要があることです。結果として「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 に答える