我有一个SELECT语句,根据其中一个字段的值拉取有限数量的项目。 (即ORDER BY率LIMIT 15)。
但是,我需要进行一些比较并更改速率值,然后可能会改变我想要的结果。
我可以拉动所有东西(没有LIMIT),改变速率,重新排序,然后只处理我需要的数字。但是,我不知道是否可以改变php结果数组中的值。我正在使用:
$query_raw = "SELECT dl.dragon_list_id, dl.dragon_id, dl.dragon_name, dl.dragon_level, d.type, d.opposite, d.image, dr.dragon_earn_rate
FROM dragon_list dl
LEFT JOIN dragons d ON d.dragon_id = dl.dragon_id
LEFT JOIN dragon_rates dr ON dr.dragon_id = dl.dragon_id
AND dr.dragon_level = dl.dragon_level
WHERE dl.dragon_id IN (
SELECT dragon_id
FROM dragon_elements
WHERE element_id = 3
)
AND dl.dragon_list_id NOT IN (
SELECT dh.dragon_list_id
FROM dragon_to_habitat dh, dragon_list dl
WHERE dl.user_id = 1
AND dh.dragon_list_id = dl.dragon_list_id
AND dl.is_deleted = 0
)
AND dl.user_id = " . $userid . "
AND dl.is_deleted = 0
ORDER BY dr.dragon_earn_rate DESC, dl.dragon_name
LIMIT 15;";
$query = mysqli_query($link, $query_raw);
if (!$query) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysqli_error($link);
exit;
}
$d = mysqli_fetch_array($d_query);
答案 0 :(得分:0)
嗯,经过大量的研究和一些反复试验,我找到了答案......
是的,我可以使用以下内容更改结果行:
$result['field'] = $newvalue;
我还了解到我可以使用:
重置指针mysqli_data_seek($d_query,0);
然而,当我重置计数器时,我丢失了我所做的更改。所以最终,我仍然有点卡住,但我个人得到了答案。