Foros del Web » Programando para Internet » PHP »

no me toma los datos de varios whiles ??(form)

Estas en el tema de no me toma los datos de varios whiles ??(form) en el foro de PHP en Foros del Web. HOla foro tengo una duda???? por que la forma no me toma los valores qu estan dentro de varios whiles???, me los toma ya cuando ...
  #1 (permalink)  
Antiguo 23/08/2004, 08:28
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 1 mes
Puntos: 0
no me toma los datos de varios whiles ??(form)

HOla foro tengo una duda????

por que la forma no me toma los valores qu estan dentro de varios whiles???, me los toma ya cuando meto el form dentro el primer while
aqui pongo una parte del codigo(son 6 whiles los demas los omiti)

Código PHP:

///no me toma los valores con el form afuera del while pricipal

<form method=GET>

while ($row=mysql_fetch_row($resx)){ 
echo "<tr><td  bgcolor='#9999CC'>";
?>
<td>
 <select>
<?
while ($row=mysql_fetch_row($res1)){ 
$id_materia=$row[0];
 echo 
"<option value=$row[0] id=$id_grado_grupo style=BACKGROUND:#00ccff;COLOR:black>$row[1]";
}
?>
<select>
<?
while ($row=mysql_fetch_row($res1)){ 
$id_materia=$row[0];
 echo 
"<option value=$row[0] id=$id_grado_grupo style=BACKGROUND:#00ccff;COLOR:black>$row[1]";
}

}
</
form>
  #2 (permalink)  
Antiguo 23/08/2004, 08:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La ejecución de funciones del grupo _fetch_ (mysql_fetch_row() por ejemplo ..) lo que hacen es obtener Un registro y mueven el puntero una posición hacia adelante en el "record-set" (resultados obtenidos) ...

SI quieres volver a reusar tu $res1 (resultado de mysql_query() ...) para otro mysql_fetch_xxx() .. debes devolver el puntero de la consulta al principio con la función:
mysql_data_seek()
www.php.net/mysql_data_seek

Usalo despues de cada wihile(){...} aquí .. y luego el siguiente while(){...} ....

Código PHP:
mysql_data_seek($res1,0); 
Un saludo,
  #3 (permalink)  
Antiguo 23/08/2004, 08:50
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 1 mes
Puntos: 0
OK gracias cluster
  #4 (permalink)  
Antiguo 03/03/2005, 11:41
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Hola a todos!!!
Yo necesito algo parecido, pero como no me funciona esta opción debe ser diferente a la vez en algo:
Recorro el recordset hasta el final mostrando opciones. Una vez que se selecciona una, se va a un menú que recarga la página en si misma y vuelve a mostrar todas las opciones, y además de las opciones, debe imprimir una fila determinada (la seleccionada) del recordset que ya fue recorrido anteriormente.
El tema es que cuando coloco mysql_data_seeck($Rscate,0); al imprimir el $row_Rscate['NOMBRE']; no muestra nada. Obviamente que algo estoy haciendo mal, pero en verdad que no me doy cuenta.

Muchas gracias a todos por su atención!!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #5 (permalink)  
Antiguo 03/03/2005, 12:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
verinchi
Deberías hacer tu pregunta en un tema nuevo adjuntando el código que usas .. Pero, si mencionas que "recargas la página" .. un "mysql_data_seeck()" si no realizas una nueva consulta a tu BD .. De hecho .. ante tu "recarga" de tu página .. lo que debes hacer (o lo que se hace normalmente) es pasarle a tu script (aunque sea si mimo) una variable de control .. la cual usaras para filtrar tu nueva consulta SQL a ejecutar tipo:

nose.php?id_registro=1

y haces una consulta "condicional" tipo:

Código PHP:
// conectas a tu BD .. etc ...
$sql="SELECT * FROM tabla WHERE id_registro='".$_GET['id_registro']."'";
$resultado=mysql_query($sql) or die (mysql_Error());
if (
mysql_num_rows($resultado) == 1){
   
$row=mysql_fetch_row($resultado);
   echo 
$row['nombre_campo1'];
   echo 
$row['nombre_campoetc'];
} else {
   echo 
"No existe registro ID: ".$_GET['id_registro'];

Un saludo,
  #6 (permalink)  
Antiguo 03/03/2005, 13:12
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Ok, el tema es este: De todas formas ya creo que estaría solucionado aunque tal vez un poco precariamente.
Hago una consulta que recorro con un while para mostrar los datos.
Luego, en la parte inferior de la misma pagina, quiero mostrar los detalles de la opción elegida en la primer recorrida de la consulta.
Obviamente que en la consulta traigo todos los datos y solo muestro el nombre que los identifica, al elegir uno, se deben mostrar sus detalles.
Para esto, lo que hago es enviar la página sobre si misma con una variable que indica el ID de la opción seleccionada.
Pero ahí no termina la cosa, porque al mostrar los detalles el usuario puede querer cambiar de opción, por lo que los nombres representativos vuelven a listarse en la parte superior y en la parte inferior de la pagina aparecen los detalles de la opción seleccionada. (Las opciones se seleccionan con un radio button que aparece chequeado cuando muestra detalles, en la opción que se eligió).
Así, cuando cambia de opción, se recarga nuevamente la página sobre si misma para mostrar los detalles de la nueva opción seleccionada.
Para esto recorrí el recordset con un do ... while. Al terminar de recorrerlo coloqué el mysql_data_seeck($Rscate,0) y en el sector de muestra de detalles coloqué un nuevo do .... while que muestra solamente la opción que llega como seleccionada (con un if). Y ya!! hace lo que necesito.
Lo que me pregunto ahora (Notese con esto que laburo mas en ASP que en PHP) Cuál es la sintaxis del equivalente a un breack de vbscript en PHP???
No puedo encontrarlo.
Lo pregunto porque como recorro nuevamente todo el recordset, estaría bueno que salga del recorrido cuando encuentra el único dato del que mostrará detalles.
Si existe, no quiero hacerlo con banderas porque la pagina maneja realmente una gran cantidad de variables por envío y como que se me hace bastante engorroso laburarlas todas juntas.
Muchas gracias por tu respuesta y hasta pronto!!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
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:58.