Foros del Web » Programando para Internet » PHP »

Ayuda Con Select en Php

Estas en el tema de Ayuda Con Select en Php en el foro de PHP en Foros del Web. Hola que tal, les cuento: tengo un problema con una consulta en php para que me genere un select, tengo la siguiente tabla: beneficios=id,rut,beneficio, estado, ...
  #1 (permalink)  
Antiguo 04/04/2008, 11:41
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Ayuda Con Select en Php

Hola que tal, les cuento:
tengo un problema con una consulta en php para que me genere un select, tengo la siguiente tabla:

beneficios=id,rut,beneficio, estado, fecha

hago la consulta

Código PHP:
echo     "<td width='20%' style='vertical-align:top'>";
echo     
"<select name='estado'>";
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado");
while(
$rew=mysql_fetch_array($result)) {

echo     
"<option value=\"".$row['estado']."\ selected>".$row['estado']."</option>";
}
echo     
"</select></td>"
me devuelve el estado, en este caso es pendiente o solucionado,
lo que me cabezeado es como puedo generar un select que si en la tabla el estado es pendiente ademas me cree otro option con el valor solucionado y si es solucionado me cre abajo un option con el valor pendiente.

he intendado asi pero no me resulta:
Código PHP:
echo     "<td width='20%' style='vertical-align:top'>";
echo     
"<select name='estado'>";
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado");
while(
$rew=mysql_fetch_array($result)) {
if(
$result=="Pendiente")
$estado="Pendiente";
echo     
"<option value=\"".$row['estado']."\ selected>".$row['estado']."</option>";
echo 
"<option value='Solucionado'>Solucionado</option>";
}
echo     
"</select></td>"
nose si me entendieron, ojala puedan ayudarme.
  #2 (permalink)  
Antiguo 04/04/2008, 11:47
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Re: Ayuda Con Select en Php

Saludos


Prueba de la siguiente manra:

Código PHP:
echo     "<td width='20%' style='vertical-align:top'>";
echo     
"<select name='estado'>";
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado");
while(
$rew=mysql_fetch_array($result)) {
$estado=$rew['estado'];
//Modifique el if
if($estado=="Pendiente"){
echo     
"<option value=\"".$estado."\ selected>".$estado."</option>";
echo 
"<option value='Solucionado'>Solucionado</option>";
}
//cerrar el if
}//cerrar el while
echo     "</select></td>"
mmm si pienso que ese es el error. DEbes fijarte en los nombres de las variables ya que estabas asignando $rew el arreglo que se genera en respuesta a la consulta y lo estas llamando en los option como $row.


Prueba y si algo lo comentas.

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 04/04/2008 a las 11:54
  #3 (permalink)  
Antiguo 04/04/2008, 11:53
 
Fecha de Ingreso: noviembre-2005
Mensajes: 222
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: Ayuda Con Select en Php

Código PHP:
echo     "<td width='20%' style='vertical-align:top'>"
echo     
"<select name='estado'>"
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado"); 
while(
$row=mysql_fetch_array($result)) { 
if(
$result=="Pendiente") {
$estado="Pendiente"
echo 
"<option value=$row['estado'] selected>$row['estado']</option>"
echo 
"<option value='Solucionado'>Solucionado</option>"; }
if(
$result=="Solucionado") {
$estado="Solucionado"
echo 
"<option value= 'Solucionado' selected>Solucionado</option>"
echo 
"<option value=$row['estado']>$row['estado']</option>"; }

echo     
"</select></td>"
Creo que te refieres a esto
  #4 (permalink)  
Antiguo 04/04/2008, 13:19
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Re: Ayuda Con Select en Php

Cita:
Iniciado por jovendigital Ver Mensaje
Código PHP:
echo     "<td width='20%' style='vertical-align:top'>"
echo     
"<select name='estado'>"
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado"); 
while(
$row=mysql_fetch_array($result)) { 
if(
$result=="Pendiente") {
$estado="Pendiente"
echo 
"<option value=$row['estado'] selected>$row['estado']</option>"
echo 
"<option value='Solucionado'>Solucionado</option>"; }
if(
$result=="Solucionado") {
$estado="Solucionado"
echo 
"<option value= 'Solucionado' selected>Solucionado</option>"
echo 
"<option value=$row['estado']>$row['estado']</option>"; }

echo     
"</select></td>"
Creo que te refieres a esto
ME sale el siguiente error:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in E:\wamp\www\consulta.php on line 132
  #5 (permalink)  
Antiguo 04/04/2008, 13:44
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Re: Ayuda Con Select en Php

Cita:
Iniciado por jovendigital Ver Mensaje
Código PHP:
echo     "<td width='20%' style='vertical-align:top'>"
echo     
"<select name='estado'>"
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado"); 
while(
$row=mysql_fetch_array($result)) { 
if(
$result=="Pendiente") {
$estado="Pendiente"
echo 
"<option value=$row['estado'] selected>$row['estado']</option>"
echo 
"<option value='Solucionado'>Solucionado</option>"; }
if(
$result=="Solucionado") {
$estado="Solucionado"
echo 
"<option value= 'Solucionado' selected>Solucionado</option>"
echo 
"<option value=$row['estado']>$row['estado']</option>"; }

echo     
"</select></td>"
Creo que te refieres a esto
Código PHP:
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado");
while(
$rew=mysql_fetch_array($result)) {
$estado=$rew['estado'];
if(
$estado=="Pendiente"){
echo 
"<select name='estado'>";
echo 
"<option value=\"".$estado."\ selected>".$estado."</option>";
echo 
"<option value='Solucionado'>Solucionado</option>";
echo 
"</select></td>";
}
if(
$estado=="Solucionado"){
echo 
"<select name='estado'>";
echo 
"<option value=\"".$estado."\ selected>".$estado."</option>";
echo 
"<option value='Pendiente'>Pendiente</option>";
echo 
"</select></td>";
}

me funciona pero si tengo un rut con un estado pendiente y otro solucionado , me crea los dos select pero sólo toma el valor último "solucionado".

Otro punto si sólo hay un registro me deforma la tabla y en el select no sale nada.

ayuda porfavor.

pd gracias por las respuestas anteriores
  #6 (permalink)  
Antiguo 04/04/2008, 13:52
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Re: Ayuda Con Select en Php

Esta es la tabla completa:
Código PHP:
$sql "select * from beneficios where rut = '".mysql_escape_string($_POST['caja1'])."'";
$sql mysql_query($sql) or die(mysql_error());
echo     
"<table width='700'  border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'> \n";
echo     
"<td width='10%' bgcolor='BBBBBB'><b>FECHA:</b></td>";
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>SOLICIT&Oacute;:</b></td>";
echo     
"<td WIDTH='50%' bgcolor='BBBBBB'><b>OBSERVACIONES:</b></td>";
echo     
"<td WIDTH='20%' bgcolor='BBBBBB'><b>ESTADO:</b></td>";
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>ATENDIDO POR:</b></td>";
echo     
"</table>\n";
while(
$row mysql_fetch_array($sql)){
echo     
"<table width='700' height='30' border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'> \n";
echo     
"<tr><td width='10%' height='30' style='vertical-align:top'>".$row['fecha']."</td>";
echo     
"<td width='10%' style='vertical-align:top'>".$row['solicita']."</td>";
echo     
"<td width='50%' style='vertical-align:top'>".$row['beneficio']."</td>";
echo     
"<td width='20%' style='vertical-align:top'>";
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."'");
while(
$rew=mysql_fetch_array($result)) {
$estado=$rew['estado'];
if(
$estado=="Pendiente"){
echo 
"<select name='estado'>";
echo 
"<option value=\"".$estado."\ selected>".$estado."</option>";
echo 
"<option value='Solucionado'>Solucionado</option>";
echo 
"</select></td>";
}
if(
$estado=="Solucionado"){
echo 
"<select name='estado'>";
echo 
"<option value=\"".$estado."\ selected>".$estado."</option>";
echo 
"<option value='Pendiente'>Pendiente</option>";
echo 
"</select></td>";
}
}

echo     
"<td width='10%' style='vertical-align:top'>".$row['usuario']."</td>";
echo     
"</table>\n";

  #7 (permalink)  
Antiguo 04/04/2008, 14:14
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Re: Ayuda Con Select en Php

Saludos

Prueba de la siguiente manera

Código PHP:
echo     "<td width='20%' style='vertical-align:top'>";
echo     
"<select name='estado'>";
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado");
while(
$rew=mysql_fetch_array($result)) {
$estado=$rew['estado'];
echo     
"<option value=\"".$estado."\ selected>".$estado."</option>";
if(
$estado=="Pendiente"){
echo 
"<option value='Solucionado'>Solucionado</option>";
}
else if (
$estado=="Solucionado"){
echo 
"<option value='Pendiente'>Pendiente</option>";
}
}
echo     
"</select></td>"
Espero te halla servido.

Un saludo
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #8 (permalink)  
Antiguo 04/04/2008, 14:15
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
De acuerdo

.................Perdon se me fue el msj dos veces y me toco editarlo jejeeje
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 04/04/2008 a las 14:25
  #9 (permalink)  
Antiguo 04/04/2008, 14:54
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Re: Ayuda Con Select en Php

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos

Prueba de la siguiente manera

Código PHP:
echo     "<td width='20%' style='vertical-align:top'>";
echo     
"<select name='estado'>";
$result mysql_query("Select estado From beneficios where rut = '".mysql_escape_string($_POST['caja1'])."' order BY estado");
while(
$rew=mysql_fetch_array($result)) {
$estado=$rew['estado'];
echo     
"<option value=\"".$estado."\ selected>".$estado."</option>";
if(
$estado=="Pendiente"){
echo 
"<option value='Solucionado'>Solucionado</option>";
}
else if (
$estado=="Solucionado"){
echo 
"<option value='Pendiente'>Pendiente</option>";
}
}
echo     
"</select></td>"
Espero te halla servido.

Un saludo
Me sigue devolviendo solo el ultimo valor de estado.

ej:

si el día 01/04 tiene estado solucionado y el día 02/04 tiene pendiente me queda de la siguiente manera:
dia estado
dia 01/04 pendiente --------------->deberia ser solucionado
dia 02/04 pendiente --------------->deberia ser pendiente

entrega el ultimo valor agregado

ayuda porfavor

Última edición por hasc; 04/04/2008 a las 15:05 Razón: falto...
  #10 (permalink)  
Antiguo 04/04/2008, 15:11
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Re: Ayuda Con Select en Php

Saludos
Por que no lo haces todo dentro del mismo query
Código PHP:
$sql "select * from beneficios where rut = '".mysql_escape_string($_POST['caja1'])."'";
$sql mysql_query($sql) or die(mysql_error());
echo     
"<table width='700'  border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'> \n";
echo     
"<td width='10%' bgcolor='BBBBBB'><b>FECHA:</b></td>";
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>SOLICIT&Oacute;:</b></td>";
echo     
"<td WIDTH='50%' bgcolor='BBBBBB'><b>OBSERVACIONES:</b></td>";
echo     
"<td WIDTH='20%' bgcolor='BBBBBB'><b>ESTADO:</b></td>";
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>ATENDIDO POR:</b></td>";
echo     
"</table>\n";
echo     
"<table width='700' height='30' border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'> \n";
while(
$row mysql_fetch_array($sql)){
echo     
"<tr><td width='10%' height='30' style='vertical-align:top'>".$row['fecha']."</td>";
echo     
"<td width='10%' style='vertical-align:top'>".$row['solicita']."</td>";
echo     
"<td width='50%' style='vertical-align:top'>".$row['beneficio']."</td>";
echo     
"<td width='20%' style='vertical-align:top'>";
echo     
"<select name='estado'>";
$estado=$row['estado'];
echo     
"<option value=\"".$estado."\ selected>".$estado."</option>";
if(
$estado=="Pendiente"){
echo 
"<option value='Solucionado'>Solucionado</option>";
}
else if (
$estado=="Solucionado"){
echo 
"<option value='Pendiente'>Pendiente</option>";
}
echo     
"</select></td>"
echo     
"<td width='10%' style='vertical-align:top'>".$row['usuario']."</td>";
}
 
echo     
"</table>\n"
mmmmm.......... por ahi es el asunto
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #11 (permalink)  
Antiguo 04/04/2008, 15:18
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Re: Ayuda Con Select en Php

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos
Por que no lo haces todo dentro del mismo query
Código PHP:
$sql "select * from beneficios where rut = '".mysql_escape_string($_POST['caja1'])."'";
$sql mysql_query($sql) or die(mysql_error());
echo     
"<table width='700'  border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'> \n";
echo     
"<td width='10%' bgcolor='BBBBBB'><b>FECHA:</b></td>";
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>SOLICIT&Oacute;:</b></td>";
echo     
"<td WIDTH='50%' bgcolor='BBBBBB'><b>OBSERVACIONES:</b></td>";
echo     
"<td WIDTH='20%' bgcolor='BBBBBB'><b>ESTADO:</b></td>";
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>ATENDIDO POR:</b></td>";
echo     
"</table>\n";
echo     
"<table width='700' height='30' border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'> \n";
while(
$row mysql_fetch_array($sql)){
echo     
"<tr><td width='10%' height='30' style='vertical-align:top'>".$row['fecha']."</td>";
echo     
"<td width='10%' style='vertical-align:top'>".$row['solicita']."</td>";
echo     
"<td width='50%' style='vertical-align:top'>".$row['beneficio']."</td>";
echo     
"<td width='20%' style='vertical-align:top'>";
echo     
"<select name='estado'>";
$estado=$row['estado'];
echo     
"<option value=\"".$estado."\ selected>".$estado."</option>";
if(
$estado=="Pendiente"){
echo 
"<option value='Solucionado'>Solucionado</option>";
}
else if (
$estado=="Solucionado"){
echo 
"<option value='Pendiente'>Pendiente</option>";
}
echo     
"</select></td>"
echo     
"<td width='10%' style='vertical-align:top'>".$row['usuario']."</td>";
}
 
echo     
"</table>\n"
mmmmm.......... por ahi es el asunto
Gracias por tu tiempo NANO, pero ahora solo me muestra el primer registro de la fila beneficio y el ultimo de la fila estado, nose si me explico...
  #12 (permalink)  
Antiguo 04/04/2008, 15:28
 
Fecha de Ingreso: noviembre-2005
Mensajes: 222
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: Ayuda Con Select en Php

perdon x mi codigo, te lo he escrito mientras hablaba por telefono y desde luego te iba a ir mal. voy a verlo bien ahora
  #13 (permalink)  
Antiguo 04/04/2008, 15:33
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Re: Ayuda Con Select en Php

mmm por ahi es el asunto como te decia..., Prueba solo imprimiendo el estado sin un combobox o select option en un td si te salen los estados que deberia responder la consulta entonces el problema esta en la etiqueta select ahi pienso que deberias colocar una variable que inicialice antes del while
$i=0
while........{

<select name="estado$i .....
$i++;
}//cierra while

mm has esta prueba y si algo lo comentas....
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #14 (permalink)  
Antiguo 04/04/2008, 15:54
 
Fecha de Ingreso: noviembre-2005
Mensajes: 222
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: Ayuda Con Select en Php

a ver, sino me equivoco necesitas esto:
Código PHP:
$sql "select * from beneficios where rut = '".mysql_escape_string($_POST['caja1'])."'"
$sql mysql_query($sql) or die(mysql_error()); 
echo     
"<table width='700'  border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'> \n"
echo     
"<td width='10%' bgcolor='BBBBBB'><b>FECHA:</b></td>"
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>SOLICIT&Oacute;:</b></td>"
echo     
"<td WIDTH='50%' bgcolor='BBBBBB'><b>OBSERVACIONES:</b></td>"
echo     
"<td WIDTH='20%' bgcolor='BBBBBB'><b>ESTADO:</b></td>"
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>ATENDIDO POR:</b></td>"
echo     
"</table>\n"
while(
$row mysql_fetch_array($sql)){ 
echo     
"<table width='700' height='30' border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'>"
echo     
"<tr><td width='10%' height='30' style='vertical-align:top'>".$row['fecha']."</td>"
echo     
"<td width='10%' style='vertical-align:top'>".$row['solicita']."</td>"
echo     
"<td width='50%' style='vertical-align:top'>".$row['beneficio']."</td>"
echo     
"<td width='20%' style='vertical-align:top'>"
$estado=$row['estado']; 
if(
$estado=="Pendiente"){ 
echo 
"<select name='estado'>"
echo 
"<option value=$estado selected>$estado</option>"
echo 
"<option value='Solucionado'>Solucionado</option>"
echo 
"</select>"

if(
$estado=="Solucionado"){ 
echo 
"<select name='estado'>"
echo 
"<option value=$estado selected>$estado</option>"
echo 
"<option value='Pendiente'>Pendiente</option>"
echo 
"</select>"

echo     
"</td><td width='10%' style='vertical-align:top'>".$row['usuario']."</td>"
echo 
"</tr>";
echo     
"</table>\n"

  #15 (permalink)  
Antiguo 05/04/2008, 12:46
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Re: Ayuda Con Select en Php

Cita:
Iniciado por jovendigital Ver Mensaje
a ver, sino me equivoco necesitas esto:
Código PHP:
$sql "select * from beneficios where rut = '".mysql_escape_string($_POST['caja1'])."'"
$sql mysql_query($sql) or die(mysql_error()); 
echo     
"<table width='700'  border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'> \n"
echo     
"<td width='10%' bgcolor='BBBBBB'><b>FECHA:</b></td>"
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>SOLICIT&Oacute;:</b></td>"
echo     
"<td WIDTH='50%' bgcolor='BBBBBB'><b>OBSERVACIONES:</b></td>"
echo     
"<td WIDTH='20%' bgcolor='BBBBBB'><b>ESTADO:</b></td>"
echo     
"<td WIDTH='10%' bgcolor='BBBBBB'><b>ATENDIDO POR:</b></td>"
echo     
"</table>\n"
while(
$row mysql_fetch_array($sql)){ 
echo     
"<table width='700' height='30' border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#999999'>"
echo     
"<tr><td width='10%' height='30' style='vertical-align:top'>".$row['fecha']."</td>"
echo     
"<td width='10%' style='vertical-align:top'>".$row['solicita']."</td>"
echo     
"<td width='50%' style='vertical-align:top'>".$row['beneficio']."</td>"
echo     
"<td width='20%' style='vertical-align:top'>"
$estado=$row['estado']; 
if(
$estado=="Pendiente"){ 
echo 
"<select name='estado'>"
echo 
"<option value=$estado selected>$estado</option>"
echo 
"<option value='Solucionado'>Solucionado</option>"
echo 
"</select>"

if(
$estado=="Solucionado"){ 
echo 
"<select name='estado'>"
echo 
"<option value=$estado selected>$estado</option>"
echo 
"<option value='Pendiente'>Pendiente</option>"
echo 
"</select>"

echo     
"</td><td width='10%' style='vertical-align:top'>".$row['usuario']."</td>"
echo 
"</tr>";
echo     
"</table>\n"

Asi me resulta muchas gracias compadre.. te las mandaste, gracias a los demas igual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:32.