2011-07-05 10 views
0

나는 이것을 이해할 수 없다는 이유로 엄청나게 바보 같다고 생각하지만, 그게 Stackoverflow가 무엇인지에 대한 것입니다. 누군가 제가 도움이되는 자료를 가르쳐 주거나이 문제를 해결하는 방법을 설명해 주면 매우 감사하게 생각합니다.열을 기준으로 mysql 결과 열을 인쇄하십시오.

기본적으로 테이블에서 몇 행을 가져 오는 중이며 각 행의 필드 값을 출력하고 다른 필드의 각 행 값을 출력 할 수 있어야합니다. . 설명하기는 어렵지만 예를 들어 설명해 드리겠습니다.

id-name-url의 세 필드가있는 테이블이 있다고 가정 해 보겠습니다. 위해 내 쿼리의 결과를 통해 내가 루프 이것을 달성하기 위해 어떻게

1 
2 
3 
John 
Steven 
Patrick 
http://google.com/ 
http://stackoverflow.com/ 
http://php.net/ 

: 지금은이 순서로 결과를 출력 할 수 있도록하려면?

답변

3

그럼 당신은 배열을 만든 다음 그것을 밖으로 분출한다 :

$ids = array(); 
$names = array(); 
$urls = array(); 
while($row = ...){ 
    $ids[] = $row['id']; 
    $names[] = $row['name']; 
    $urls[] = $row['url'];  
} 

foreach($ids as $id) { 
    echo $id . PHP_EOL; 
} 
//do the same for the other 2 
+0

미친 우아함이 아니더라도 작동하며 매우 간단합니다. 고맙습니다! –

+0

@ 토미, 환영합니다^_ ^ – Neal

0

당신은 union를 통해이 작업을 수행 할 수 있습니다. 유일한 까다로운 부분은 모든 필드를 공통 데이터 유형 (이 경우 텍스트)으로 변환하는 것입니다. 또한 각 하위 쿼리는 순서에 따라 일관성이 있는지 확인하기 위해 ID로 정렬됩니다.

select id::text 
from table 
order by id 
union 
select name::text 
from table 
order by id 
union 
select url::text 
from table 
order by id 
0
$result = mysql_query("SELECT id, name, url FROM yourtable") or die(mysql_error()); 
$data = array() 
while($row = mysql_fetch_asssoc($result)) { 
    $data[] = $row; 
} 
foreach(array('id', 'name', 'url') as $key) { 
    foreach($data as $idx => $val) { 
     echo $val[$key], "\n"; 
    } 
} 
0

가장 간단한 방법은

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $ids[] = $row['id']; 
    $names[] = $row['names']; 
    $wwws[] = $row['website']; 
} 

는 그런 다음 세 가지 배열을 반복합니다. 이것을하기위한 확실한 방법이 있습니다!

관련 문제