2013-08-19 4 views
0

다른 폴더에 저장된 div 3 축소판을 표시하려고합니다.
내 bd에서 (값 "1"로) 어떤 기록에 사진이 있는지가 결정되었습니다.PHP 배열 값을 필터링하는 방법

+------+----------------+---------+--------+--------+ 
| ID | BRAND   | PHP | RUBY | JAVA | 
+------+----------------+---------+--------+--------+ 
| 1 | ford   | 1 | 0 | 0 | 
+------+----------------+---------+--------+--------+ 
| 2 | seat   | 1 | 1 | 1 | 
+------+----------------+---------+--------+--------+ 
| 3 | fiat   | 1 | 1 | 0 | 
+------+----------------+---------+--------+--------+ 
| 4 | toyota   | 1 | 0 | 0 | 
+------+----------------+---------+--------+--------+ 
| 5 | vw    | 1 | 0 | 1 | 
+------+----------------+---------+--------+--------+ 

레코드 선택 :

$result = mysqli_query($connecDB,"SELECT * FROM brands WHERE php = '1' OR ruby = '1' OR java = '1' ORDER BY id ASC"); 


while($row = mysqli_fetch_assoc($result)){ 
    $new_array[] = $row; 
} 

하지만 내 문제가 : 나는 값을 선택할 수있는 방법이 "1"어떻게 어떤 이는 알고 그래서 내 데시벨은?
아마도 사용할 수 있습니다 : $row['php'] $row['java'] $row['ruby']하지만 "0"값을 필터링하는 방법?

+3

'if' 문? – Jon

+1

팁 : 'WHERE 1 IN (PHP, RUBY, JAVA)'를 사용하여 쿼리를 단순화하십시오. –

+0

if ($ row [ 'ruby'])로 각 루프를 반복하면 ... 하나 인 경우 어떻게하고 싶습니까? – cwhelms

답변

1

PHP, Java 및 Ruby로 배열을 분할하려는 것처럼 보입니다. 아래는 단지 당신에게 아이디어를주기위한 것입니다.

$resultsArray = array(); 
while($row = mysqli_fetch_assoc($result)){ 
    if($row['php'] == 1) { 
     $resultsArray['php'][] = $row['id']; 
    } 
    if($row['java'] == 1) { 
     $resultsArray['java'][] = $row['id']; 
    } 
    if($row['ruby'] == 1) { 
     $resultsArray['ruby'][] = $row['id']; 
    } 
} 

그런 다음 resultsArray의 키에서 이름을 가져 와서 해당 2 차원 배열을 반복합니다.

foreach($resultsArray as $language => $array) { 
    foreach($array as $id) { 
     echo "url/".$language."/".$id; 
     echo "<br>"; 
    } 
} 
+0

이게 뭐니? 'foreach ($ resultsArray as $ key => $ val) {print_r ($ val);}' – santyas

+0

내 편집을보세요. print_r은 개별 언어의 배열 만 가져올 것입니다. – cwhelms

+0

다시 안녕하세요, 완벽하게 작동합니다. 나는이 방법으로 단일 foreach와 id를 사용한다 :'echo "url /".$ language."/ ". $ row [ 'id'];'나는 당신에게 다른 것을 물어볼 수있다? 확실히 당신은 그 개념을 이해하고 오랫동안 새로운 지위를 재 형성하는데 오래 걸립니다. 내가 가지고있는 디렉토리에'opendir'을 어떻게 사용할 수 있습니까? 고마워요! – santyas

0
foreach($resultsArray as $language => $array){ 
    foreach(array_slice(glob('work/'.$language.'/'.$rowtest['id'].'/*.jpg'),0,1) as $image){  
     echo $image . "<br />"; 
    } 
} 
관련 문제