Использование данных формы в качестве известного значения ключа при отображении многомерного массива - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть php-скрипт, который принимает отдельные символы, введенные в форму, в качестве входных данных для запроса mysql, а затем перебирает результирующий массив с foreach, чтобы отобразить одно изображение произведения искусства, представляющее каждый из этих символов (то есть шесть изображений для цветка).

Но как мне создать второе эхо в том же foreach, чтобы следующий div после каждой введенной буквы заполнялся всем портфелем только этой буквы (например, шесть записей изображений для буквы «r» вдБ).Как у меня сейчас есть, каждый div заполняется портфелями всех введенных символов.Как мне получить так, чтобы в div после буквы r было всего шесть изображений буквы «r»?

Спасибо за любую помощь!Я новичок во всех этих сценариях за последние несколько недель, так что будьте спокойны со мной.Я действительно ценю любое понимание.

$lettertype = str_split($lettertype);  
$lettertype = "'" . implode("','", $lettertype) . "'";       
$query = "SELECT * FROM Photos WHERE letter IN ($lettertype)"; 
$result = mysqli_query($cxn, $query) 
  or    die ("No good");    
$alpharray = array(); 
while($row = mysqli_fetch_assoc($result)){
    $alpharray[$row['letter']][] = $row; 
}
foreach(str_split($_POST['search_term']) as $alpha){          
    echo "<img class='clickable' img src='../Letterproject/images/{$alpharray[$alpha][0]['photoPath']}' width='100' height='140'></src>";          
    echo '<div class="editimages">';                     
    foreach ($alpharray as $tempvar){                   
        foreach($tempvar as $oneletter){                       
            echo "<img class='editable' img src='../Letterproject/images/{$oneletter['photoPath']}' width='100' height='140'></src>";                                      
        }
    }              
    echo '</div>';         
}

1 Ответ

1 голос
/ 11 ноября 2011

Скажите, если это работает.Я изменил последний foreach, чтобы сделать foreach для каждой существующей буквы.(предполагается, что по запросу для каждой буквы возвращаются несколько результатов)

"SELECT * FROM Photos WHERE letter IN ($lettertype)"; 

В любом случае, вот оно.

$lettertype = str_split($lettertype);  
$lettertype = "'" . implode("','", $lettertype) . "'";       
$query = "SELECT * FROM Photos WHERE letter IN ($lettertype)"; 
$result = mysqli_query($cxn, $query) 
  or    die ("No good");    
$alpharray = array(); 
while($row = mysqli_fetch_assoc($result)){
    $alpharray[$row['letter']][] = $row; 
}
foreach(str_split($_POST['search_term']) as $alpha){          
    echo "<img class='clickable' img src='../Letterproject/images/{$alpharray[$alpha][0]['photoPath']}' width='100' height='140'></src>";          
    echo '<div class="editimages">';                     
    foreach ($alpharray[$alpha] as $tempvar){                                      
            echo "<img class='editable' img src='../Letterproject/images/{$tempvar['photoPath']}' width='100' height='140'></src>";                                      
    }              
    echo '</div>';         
}
...