2013-08-19 8 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']; 
    } 
} 

Затем пропустите этот массив 2d, захватив имя из ключа в результатах массива.

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 />"; 
    } 
}