foreach imprime apenas o último resultado - problema no loop
Eu criei um código que faz o seguinte:
Ele pega siglas de uma tabela de dados e apresenta apenas as siglas constantes entre as variáveis $origem e $destino.
Depois eu faço um explode e pesquiso cada sigla em outra tabela, procurando o que significa aquela sigla.
Faço um foreach e dentro do foreach um select na tabela que tem o significado de cada sigla (tabela cidades)
peço para imprimir na tela, mas imprime só o último resultado. Onde como faço para aparecer todos?
if ($_COOKIE['user'] == 0) {
?>
<!-- parte que vaia aparecer quando o usuário não estiver logado -->
<?php
}
elseif ($_COOKIE['user'] > 0 && $origem == " " && $destino == " ")
{
?>
<!-- Esta parte vai aparecer só quando o usuário estiver logado. vAI CRIAR UM FORMULÁRIO DE BUSCA-->
<section id='about' class="s-about">
<div class="row section-header has-bottom-sep" data-aos="fade-up">
<div class="col-full">
<h3 class="subhead subhead--dark">PROCURAR CARONAS</h3>
<h1 class="display-1 display-1--light">Você está procurando uma carona</h1>
</div>
</div> <!-- end section-header -->
<div class="row about-desc" data-aos="fade-up">
<div class="col-full">
<p>
No formulário abaixo selecione as cidades de origem e de destino - O sistema vai identificar qual a direção em que você está pretendendo ir e vai listar as rotas possíveis.
</p>
<p align="center">
<?php
$sql = 'SELECT id, sigla, cidade FROM cidades order by cidade';
$result = $conn->query($sql);
echo '<form method=get action="#about"><SELECT name="origem" style="font-size: 25px; font-weight: bold; display: inline-block;">';
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo '<OPTION value="' . $row["sigla"]. '">' . $row["cidade"] . '</option>';
}} else {
echo "0 results";
}
echo '</select> | ';
$result = $conn->query($sql);
echo '<SELECT name="destino" style="font-size: 25px; font-weight: bold; display: inline-block;">';
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo '<OPTION value="' . $row["sigla"]. '">' . $row["cidade"] . '</option>';
}} else {
echo "0 results";
}
echo '</select> <Input type="submit" value="Procurar"> </form>';
?>
</div>
</div> <!-- end about-desc -->
<!-- end about-stats -->
<div class="about__line"></div>
</section> <!-- end s-about -->
</p>
<!-- Final da parte de procurar caronas -->
<?php
}
elseif (!empty($_GET['origem']) && !empty($_GET['destino'])) {
<!-- ESTA PARTE É O RESULTADO DA BUSCA FEITA PELO FORMUÁRIO -->
$origem = $_GET['origem'];
$destino = $_GET['destino'];
$sql = "SELECT * FROM rotas WHERE rota LIKE '%$origem%$destino%' limit 2";
$result = $conn->query($sql);
echo utf8_encode('<section id=about" class="s-about"> <div class=col-full> <P>A descrição do trajeto abaixo apresenta TODA A LINHA. Para escolher a melhor linha, observe a partir do seu ponto de partida. Caso queira, você pode ainda clicar em cada rota para ver por onde cada rota passa</p>');
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo '<p style="background-color: #000000; color: #FFFFFF;">' . utf8_encode($row['descricao']) . ' - ';
$rotatotal = $row['rota'];
$positioni = mb_strpos($rotatotal, $origem);
$positionf = mb_strpos($rotatotal, $destino);
$totalstr = mb_strlen($rotatotal);
$rotaescol = mb_substr($rotatotal, $positioni, $positionf - $positioni + 2);
$rotarray = explode(' ', $rotaescol);
foreach($rotarray as $ct);
{
$sql2 = "SELECT * FROM cidades WHERE sigla = '$ct'";
$rescit = $conn->query($sql2);
if ($rescit->num_rows > 0) {
while($row2 = $rescit->fetch_assoc()) {
echo ' - '. $row2['cidade'];
}}
else{
echo '';
}
}}}
} else {
echo '<section id="about" class="s-about">0 resultsNão era para estar aparecendo isto."</section>';
}
echo '</div></section> | ';
<!-- FINAL DO SCRIPT -->
Discussão (0)
Carregando comentários...