2014-06-10 3 views
0

필드 중 하나의 값을 기반으로 제한된 수의 항목을 가져 오는 SELECT 문이 있습니다. (즉, 주문 비율 15).PHP에서 SQL 배열의 값을 변경할 수 있습니까?

그러나 비교를하고 비율 값을 변경해야하며 결과적으로 원하는 결과가 변경 될 수 있습니다.

나는 (제한없이) 모든 것을 가져올 수 있고, 비율을 변경하고, 다시 정렬하고, 필요한 숫자 만 처리 할 수 ​​있습니다. 그러나 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

정확히 무엇을 요구하고 있습니까? '$ d'의 값을 변경하고 데이터베이스로 업데이트 하시겠습니까? 그렇다면 별도의 SQL 문을 사용하여 데이터베이스를 업데이트해야합니다. PHP에서 결과 세트를 변경하면 자동으로 데이터베이스로 돌아 가지 않습니다. – vhu

+0

https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1 – vhu

+0

데이터베이스 자체를 업데이트하고 싶지 않습니다. 데이터베이스에는 기본 요율이 있으며 특정 기준에 따라 새 요율을 계산해야합니다. 따라서 데이터베이스에서 새 비율은 필요 없지만 결과 배열을 변경 한 다음 배열을 재정비하고 재설정하면 초기 while 루프가 시작되어 작동합니다. – Dizzy49

답변

0

음,

예,이 같은 것을 사용하여 결과 행을 변경할 수 있습니다 .... 연구와 내 대답을 발견 시행 착오를 많이 후 :

mysqli_data_seek($d_query,0); 

을 그러나, 나는 카운트를 재설정 할 때

$result['field'] = $newvalue; 

나는 또한 내가 사용하여 포인터를 재설정 할 수 배웠습니다 어, 나는 내가 한 변화를 놓쳤다. 그래서 궁극적으로, 나는 여전히 조금 붙어 있지만 개별적으로 대답을했습니다.

관련 문제