2015-02-02 2 views
0

PHP/MYSQL을 사용하여 알림 시스템을 만들려고합니다.MYSQL 쿼리는 마지막 결과 만 가져 옵니까?

잘 작동하지만 왜 마지막 결과 (마지막 ID) 만 가져올 지 이해할 수 없습니다.

이 내 현재 코드입니다 :

<?php 
include "../config/connect.php"; 
// This block grabs the whole list for viewing 
$query = "SELECT id, extendedd, alarm_signal FROM bookings"; 

$noti = ''; 
if ($stmt = mysqli_prepare($db_conx, $query)) { 

    /* execute statement */ 
    mysqli_stmt_execute($stmt); 

    /* bind result variables */ 
    mysqli_stmt_bind_result($stmt, $idc, $extendedd, $alarm_signal); 

    /* fetch values */ 
    while (mysqli_stmt_fetch($stmt)) { 

     $extendeddd = $extendedd; 

     //echo $extendeddd; 

     if($extendedd =='yes'){ 


     $noti = '<div id="mainNoti" style="position:fixed; right:30px; bottom:0; background-color:#F90; right:40px; width:400px; height:300px; border-radius:4px; border:dashed 2px #666; color:#000; text-align:center; padding-top:15px;"><form action="notification" method="post" id="addit"><input type="hidden" name="mesOff" id="mesOff" value="1"/> 
     <input class="btn2" type="submit" value="The job with id '.$idc.' has been extended!&nbsp;" /> 
     <br /><br /><br /><br /> 
     </form></div>'; 

     } else if ($extendedd == '0'){ 
     $noti = ''; 
     } 

    } 
} 

mysqli_stmt_close($stmt); 
echo $noti; 

?> 

위의 코드는 잘 작동하지만 마지막 $idc$extendedd을 얻을 것이다 이런 일이 왜 이해가 안 돼요!

이 문제에 대해 조언을 구할 수 있습니까?

+1

각 반복에서'$ noti'를 덮어 씁니다. 이러한 값을 배열에 넣거나 연결을 사용하십시오. –

+0

반복 할 때마다 $ noti를 덮어 쓰고 있습니다. '$ noti + ='를 사용해야한다. – stakolee

+0

@ stakolee'+ ='는 문자열 연결을위한 것이 아니며,'. ='는 – VolkerK

답변

0
while(....) { 
    $noti = ... 
} 
echo $noti; 

각 반복마다 $ noti를 덮어 쓰고 있으므로 루프 이후에는 마지막 값만 액세스 할 수 있습니다.
while 루프 내에서 $ noti 값을 인쇄하십시오.
또는 문자열 연결을 통해 $ noti의 현재 값에 새 문자열을 추가하십시오. http://docs.php.net/manual/en/language.operators.string.php

+1

답변을 확대하고 해결책을 제시해야합니다. 그렇지 않으면 주석입니다. –

+0

죄송합니다, 링크를 찾으려면 몇 초가 걸렸습니다 – VolkerK

+0

내 질문에 주어진 예제와 내 코드의 차이점은 무엇입니까? – Jackson

관련 문제