2013-07-29 3 views
1

datebase에서 가져온 요소를 반복 할 수 있습니다.
결과는 예상치 않은 것처럼 보입니다.
아래 코드는 $valueecho "<td id=".$key.$tag.">".$value."</td>";을 두 번 인쇄했습니다. 내가 잘못 이해 한 것이 있습니까?mysql_fetch_array 날짜 가져 오기 각 요소를 두 번 가져 오기

function selectTable($table){ 
     $sql= "SELECT * FROM ".$table ; 
     $result=mysql_query($sql) 
          or die(mysql_error()); 
     return $result; 
    } 

    $table = 'battery_con'; 
    $result = selectTable($table); 
    unset($table); 

while($row = mysql_fetch_array($result)){ 
     ...... 
     foreach ($row as $key => $value) { 
        print $value; 
        echo "<td id=".$key.$tag.">".$value."</td>"; 
       }  
     ..... 
    } 
+1

,하지만 당신을 경고 :

은 자세한 내용은 PHP 매뉴얼의 예 (1)를 참조하십시오'mysql_xxx()'PHP 함수가 사용되지 않습니다를. DB 코드와 같은보다 현대적인 라이브러리를 PDO와 같이 사용하는 것을 고려해야합니다. – Spudley

+0

@ Spudley 알아,하지만 여전히 당신의 아이디어에 감사드립니다. – andyqee

+0

@Akam 쿼리가 업데이트되었습니다. 감사합니다. – andyqee

답변

3

도움이 될 것입니다 희망 mysql_fetch_array()mysql_fetch_assoc() 장소를 사용하십시오 : result_type = MYSQL_BOTH).

하나는 열 색인을 나타내는 정수로 색인화되고, 하나는 열 이름으로 색인화됩니다.

그런 이유로 당신은 당신의 명부에있는 2 개의 입장을 얻는다. 열 당 하나의 값만 얻으려면 두 번째 매개 변수를 MYSQL_ASSOC으로 설정합니다. 전술 한 바와 같이

$row = mysql_fetch_array($result, MYSQL_NUM); // numeric keys only 
$row = mysql_fetch_array($result, MYSQL_ASSOC); // associative keys only 

: 기본 mysql_fetch_array에 의해 @ 안드레아스의 대답에 추가

3

나는 그것이 당신은 기본적으로 열 당 두 개의 요소 (이 두 번째 (선택 사항) 있었던 파라미터의 의미입니다와 배열을 반환 mysql_fetch_array을 사용하는

+0

@sonusindhhu 이유를 설명해 주시겠습니까? – andyqee

+1

mysql_fetch_array 두 개의 인덱스 하나는 정수이고 두 번째 필드 이름은 –

+0

@sonusindhhu cool, Thanks a lot – andyqee

1

은 당신이 원하지 않는 경우에 당신이 당신의 while 루프의 두 번째 매개 변수를 제한 할 수 있습니다, 연관 및 숫자 인덱스를 모두 제공 @sonusindhu로 mysql_fetch_row을 사용하여 숫자 키만 가져 오거나 mysql_fetch_assoc을 사용하여 연관 키만 가져올 수도 있습니다.

업데이트

mysql_xxx() 함수 대신() 함수를 mysqli_xxx을 사용하는 것이 좋습니다 사용되지. 주제와 http://php.net/manual/en/mysqli-result.fetch-array.php