Jump to content
Fórum Script Brasil
  • 0

Recuperar Valor Do Db Em Menu De Lista


juliano.ma
 Share

Question

Bom dia amigos!

tenho o seguinte script:

<?php 
include("../config.php");

echo "<select name=\"cidade\">";

$sql=mysql_query("SELECT * FROM cidades ORDER BY cidade ASC");

while($linha=mysql_fetch_array($sql)) {

echo"<option value=\"$linha[1]\">$linha[1]</option>";

}

echo "</select>";

?>

Eu tenho uma tabela "CIDADES" e uso ela na hora de cadastrar um cliente.

Como faço para recuperar a cidade pré-cadastrada (deixar ela selecionada na combo) quando eu for editar os dados do cliente?

Dei uma lida sobre if e else mas não consegui implementar.

Edited by juliano.ma
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Faz um select antes de exibir o combobox, e nele você coloca o valor retornado:

<?php

    $pegaCliente = mysql_query("SELECT * FROM clientes WHERE id = '" . $id . "'") or die ("ERRO!");

$dados = mysql_fetch_array($pegaCliente);
$cidade = $dados["cidade"];

$seleciona = "SELECT cidade FROM cidades";
    $seleciona_ = mysql_query($seleciona) or die ("<font color=\"#ff0000\">Erro!</font>");

        echo "<select name=\"cidade\" id=\"cidade\">";
            echo "<option value=\"" . $cidade . "\">" . $cidade . "</option>";
                while (list($cidade_) = mysql_fetch_array($seleciona_)) {
                    echo "<option value=\"" . $cidade_ . "\">" . $cidade_ . "</option>";
                        } 
                        echo "</select> ";
?>

Edited by Gutto
Link to comment
Share on other sites

  • 0

Gutto, obrigado por ter respondido.

Então, desta forma como você passou ele funciona certinho o combo com as cidades, mas ainda não fica pré-selecionada a cidade do cliente que está o DB.

Tentei assim também, mas não deu...

<?php 
include("../config.php");

$pegaCliente = mysql_query("SELECT * FROM clientes WHERE id = '" . $id . "'") or die ("ERRO!");

$dados = mysql_fetch_array($pegaCliente);

$cidade = $dados["cidade"];


echo "<select name="cidade">";

$sql=mysql_query("SELECT * FROM cidades ORDER BY cidade ASC");

while($linha=mysql_fetch_array($sql)) {

     if ($linha[1] == $cidade) {

          echo"<option value="$linha[1]" selected>$linha[1]</option>";

          } else {

               echo"<option value="$linha[1]">$linha[1]</option>";
     }
}
echo "</select>";
?>

Link to comment
Share on other sites

  • 0

Tentei assim:

<?php
include("../config.php");
     $sql = mysql_query("SELECT cidade FROM clientes");
     $aux = mysql_fetch_array($sql);
     $cidade_cliente = $aux["cidade"];

     echo "<select name=\"cidade\">";
     $sql_cidade = mysql_query("SELECT * FROM cidades ORDER BY cidade ASC");
     while($linha=mysql_fetch_array($sql_cidade)) {
          if ($linha[1] == $cidade_cliente) {
               echo"<option value=\"$linha[1]\" selected>$linha[1]</option>";
               } else {
                    echo"<option value=\"$linha[1]\">$linha[1]</option>";
          }
     }
     echo "</select>";
?>

na verdade funcionou, mas ele seleciona a cidade do primeiro cliente do BD no caso o que tem a ID mai baixa...

Por que será?

Meu banco esta assim:

Tabela "CLIENTES"

-> id

-> nome

-> cidade

-> etc etc

Tabela "CIDADES"

-> id

-> cidade

Grande abraço!

Link to comment
Share on other sites

  • 0

resolvido.

<select name="cidade">

<?php
include("../config.php");
  // para começar, voce precisa do id de algum cliente para mostrar a sua cidade em particular
  
  // Abaixo a query para saber a cidade dele
  $query_cidade = "SELECT cidade FROM clientes WHERE id='$_GET[id]'";
  $result_cidade = mysql_query($query_cidade);
  $cidadeCliente = mysql_fetch_array($result_cidade);
  // Abaixo a query pra mostrar todas as cidades
  $result_cidades = mysql_query("SELECT * FROM cidades ORDER BY cidade ASC");
  // Agora o while, note eu deixei ele aberto para por o codigo html fora dos echos
  while($cidades = mysql_fetch_array($result_cidades))
    {
?>

 <option value="<?php echo $cidades[id]; ?>" <?php if($cidades[cidade] == $cidadeCliente['cidade']) { echo "SELECTED";}; ?>> <?php echo $cidades[cidade]; ?> </option>

<?php
   // Aqui eu fecho o while
    };
?>


</select>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...