Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wellington Guedes

Preencher Inputs com resultado da consulta

Recommended Posts

Boa tarde,

 

Estou com uma dúvida, tenho a seguinte consulta:

 


        $sql = mysql_query("SELECT hora, data FROM aluno WHERE id = 2");                  while($array = mysql_fetch_array($sql)){             $hora = $array['hora'];             $data = $array['data'];         } 

 

Retorna:

 

Sábado - 10:00

Segunda - 11:00

 

 

Meu HTML possui 2 campos, Data e Hora, um Chekbox e um Text.

 

Não estou conseguindo criar um array para inserir nos campos:

 

 

 

                                <td> <input type="checkbox" name="data" id="data"/>Sábado<input type="text" name="hora" id="hora" value="<?php ?>"></td>
                                
                                <td><input type="checkbox" name="data" id="data"/>Domingo<input type="text" name="hora"id="hora" value="<?php ?>"></td>  
                                
                                <td><input type="checkbox" name="data" id="data"/>Segunda<input type="text" name="hora" id="hora" value="<?php ?>"></td>

 

No caso Sábado e Segunda deveriam estar checkado, com seus horários.

 

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai precisar de uma condição:

 

$hora = !empty($array['hora']) ? 'checked="checked"' : '';

 

 

<td><input type="checkbox" name="data" id="data"/>Sábado<input type="text" name="hora" id="hora" value="<?php echo $hora; ?>"></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inicia o array fora do while.

 

$hora = array();
$data = array();
while($array = mysql_fetch_array($sql)){
    $data = $array['data'];
    $hora = $array['hora'];
}
echo $hora;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alex, Fiz isso que você recomendou, mas fora do WHILE ele só retorna um registro, ao invés de 2 ou 3, tem algum erro?

 

Segue o código que fiz:

 

 

 

                <?php
                        $sql = ("Select data, hora from aluno where id =" . $id);
                        $resultado = mysql_query($sql);
                        
                        $hora = array();
                        $data = array();


                        while($array = mysql_fetch_array($resultado)){
                            $hora = $array['hora'];
                            $data = $array['data'];
                        }
                       ?>
                                <td><input type="checkbox" name="data" id="data"<?php if($data=='SABADO'){echo ' checked';}?>/>
                                  SÁBADO
                                <input type="text" name="hora"  id="hora" value="<?php echo $hora; ?>">
                                </td>
                                <td><input type="checkbox" name="data" id="data"<?php if($data=='DOMINGO'){echo ' checked';}?>/>
                                  DOMINGO
                                <input type="text" name="hora"  id="hora" value="<?php echo $hora; ?>">
                                </td>                                   
<td><input type="checkbox" name="data" id="data"<?php if($data=='SEGUNDA'){echo ' checked';}?>/>
                                  SEGUNDA
                                <input type="text" name="hora"  id="hora" value="<?php echo $hora; ?>">
                                </td>                                

 

Vinicius, não deixei dentro do Laço porque ele retorna vários checkbox, dependendo do resultado.

 

Obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alex, Agora funcionou, Mas uma dúvida, dei um var_dump($data) e me retornou um array:

 

array(2) { [0]=> string(5) "SABADO" [1]=> string(5) "DOMINGO" }

 

 

Tentei fazer um foreach para varrer o array, mas não funcionou, como vou fazer a comparação para ver se está checkado e com a hora certa:

 

 

 

<input type="checkbox" name="data" id="data" <?php if($data=='SEGUNDA'){echo ' checked';}?>/>SÁBADO
<input type="text" name="hora" id="hora" value="<?php echo $hora; ?>">
Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Excelente Alex, Boa idéia, fiz da seguinte maneira:

 

 

                foreach ($data as $dia=>$d){
                    if($d =='SABADO'){$s = ' checked';}
                    if($d =='DOMINGO'){$do = ' checked';}
                    if($d =='SEGUNDA'){$seg = ' checked';}
                }

Agora eles estão checkando certinho, porém não estou conseguindo exibir o horário certo

 

Vou ter que fazer outro Foreeach indexando o Dia? Qual a melhor forma de fazer isso?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

So uma ideia pq nao criar um array unico e checar se o valor existe nesse array!

 

Ex:

$hora = array();
$data = array();
while($array = mysql_fetch_array($sql)){
    $data[] = $array['data'];
    $hora[] = $array['hora'];
}

 

 

e no HTML


 <td>
 <input type="checkbox" name="data" id="data" 
    <?php if(in_array("SABADO", $data)){echo ' checked';}?> />
                                  SÁBADO
    <input type="text" name="hora"  id="hora" 
 <?php if(in_array("11:00", $hora)){echo ' checked';}?>value="<?php echo $hora; ?>">
                                </td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fábio, obrigado.

Mais simples do que fazer o foreach.

 

Só não entendi o porque disso: if(in_array("11:00", $hora)).

 

Ao invés do 11:00, como coloco o valor de array['hora'];

 

No campo value="<?php echo $hora; ?> está imprimindo vazio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.