Foros del Web » Programando para Internet » PHP »

Ayuda con While

Estas en el tema de Ayuda con While en el foro de PHP en Foros del Web. Muy buenas, saludos a todos. Estoy haciendo un fromualrio web, los campo se llenan y luego se envia, lo que quiero hacer antes des enviar ...
  #1 (permalink)  
Antiguo 27/01/2009, 13:41
 
Fecha de Ingreso: enero-2009
Mensajes: 13
Antigüedad: 15 años, 3 meses
Puntos: 0
Ayuda con While

Muy buenas, saludos a todos.

Estoy haciendo un fromualrio web, los campo se llenan y luego se envia, lo que quiero hacer antes des enviar la informacion, en uno de los campos tener una opcion de que llene ese mismo campo pero con otra informacion sin perder la anterior

aqui esta el codigo
<html>
<head>
<title>Llenar el formulario</title>
</head>
<fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;">
<body>

<p>
<!-- llamada del formulario -->
</p>
<form action="copia de inserta_formulario.php" method="post">

<!-- llenar el formulario -->


<?

echo '<html>
<body>
<h3><fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;"><legend>PARTICIPANTES</legend> Nombre <input type= text name= nombre/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apellido <input type= text name= "apellido"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;<input type=submit name= otra value = "Desea introducir otra" /> &nbsp;&nbsp;&nbsp;<input type= submit name= "quitar" value = Eliminar > </fieldset></h3><br>
</body>
</html>';

while ( $_POST['otra'] == "Desea introducir otra" )
{
echo '<html>
<body>
<h3><fieldset><legend>Datos</legend> Nombre <input type= text name= nombre/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apellido<input type= text name= "apellido"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <input type=submit name= otra value = "Desea introducir otra" /> &nbsp;&nbsp;&nbsp;<input type= submit name= "quitar" value = Eliminar > </fieldset></h3><br>
</body>
</html>';
}

?>

</form>

<?
?></fieldset>
</body>
</html>

cuando le doy introducir otro, me empiezan a salir que pocoton de los campos, solo quiero que salga 1 y tengo que cerrar la ventana, se que es por el while,pero no se que mas hacer para cada vez que le de agregar otro me salga solo 1.

Gracias.
  #2 (permalink)  
Antiguo 27/01/2009, 13:47
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Ayuda con While

pues yo digo que con un break basta si no en lugar de while if, antes de cerrar el while ponle un break; si no pues como dije utiliza el if jeje espero sirva =)
  #3 (permalink)  
Antiguo 27/01/2009, 14:02
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Ayuda con While

Recuerda que el ciclo while necesita parametros de inicio, el proceso y el de termino (el clasico while (i=0, i++, i<=x)) que quiere decir que esta variable se inicializa a cero, si es menor o igual a 'x' aumenta uno, si es mayor ya no cumple la condicion y se sale del ciclo.
Lo que estas haciendo es solo darle el valor de inicio, y como siempre se va a cumplir si aceptas se metera en un bucle infinito, asi que deberias de ponerle un identificador con paramentros para saber cuando hacer el ciclo y cuando salir de este (se me ocurre pque podrias ponerle una id al boton introducir otra, y con esta que solo acepte tantas veces que aprieten este boton o algo por el estilo.
  #4 (permalink)  
Antiguo 27/01/2009, 14:16
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda con While

Cita:
el clasico while (i=0, i++, i<=x)
While no soporta esa sintaxis. (Se parece a for, pero desordenado :P)

La sintaxis de while es:
Código PHP:
while(true) { //mientras ese valor sea true, se ejecuta lo que esta dentro
  //esto

Usando:
Código PHP:
while ( $_POST['otra'] == "Desea introducir otra" 
El bucle es infinito, ya que si la variable llega a tener ese valor, esta nunca llegara a tener otro valor diferente.

Y tambien imprimes TODO el html de nuevo dentro de tus bucles, etc. Imprimes etiquetas <html>, <body>, etc...
  #5 (permalink)  
Antiguo 27/01/2009, 15:50
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 3 meses
Puntos: 27
Respuesta: Ayuda con While

Te puedo dar un ejemplo de como hacer, (lo he probado y funciona a la perfeccion)

Primero lo que hice fue crear una tabla en la base de datos (seguro ya lo tienes)

con el nombre: bucle_while ( )

y como campos: nombre, apellido

Ahora crearemos nuestra conexion a la BD:
Nombre: mysql.php

Código PHP:
<?php
class MySQL{  
private 
$conexion;  
private 
$total_consultas;  
public function 
MySQL(){  
if(!isset(
$this->conexion)){  
$this->conexion = (mysql_connect("localhost","usuario","no_te_la_digo")) or die(mysql_error());  
mysql_select_db("NOMBRE_DE_TU_BD",$this->conexion) or die(mysql_error());  
}  
}  
public function 
consulta($consulta){  
$this->total_consultas++;  
$resultado mysql_query($consulta,$this->conexion);  
if(!
$resultado){  
echo 
'MySQL Error: ' mysql_error();  
exit;  
}  
return 
$resultado;   
}  
public function 
fetch_array($consulta){   
return 
mysql_fetch_array($consulta);  
}  
public function 
num_rows($consulta){   
return 
mysql_num_rows($consulta);  
}  
public function 
getTotalConsultas(){  
return 
$this->total_consultas;  
  }  
}
?>
Luego el siguiente paso crear mi formulario html para pedir los datos: (sacado del que posteaste pero arreglado, pues tenia ciertas falencias, compara con el que te paso para que veas en que partes)

Nombre del HTML = bucle_while_carga_mas_valores.html (aunque no uso el while pero le di ese nombre puesto que use como referencia tu post )

Código HTML:
<html>
<head>
<title>Llenar el formulario</title>
</head>
<fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;">
<body>
<p>
<!-- llamada del formulario -->
</p>
<form action="guardar_datos_bucle.php" method="post">
<!-- llenar el formulario -->
<h3><fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;"><legend>PARTICIPANTES</legend> 
Nombre <input type="text" name="nombre"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apellido <input type="text" name="apellido"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;<input type="submit" name="otra" value="Guardar Datos" /> &nbsp;&nbsp;&nbsp;<input type="reset" name="reset" value="Resetear Valor" /></fieldset></h3><br>
</form>
</fieldset>
</body>
</html> 
luego el siguiente paso es crear un php que inserte los datos en la BD y te pida si queres insertar otro.

Nombre = guardar_datos_bucle.php

Código PHP:
<?php

//llamaremos a nuestra conexion y crearemos una nueva consulta SQL
include("mysql.php");  
$db = new MySQL();  

//ahora capturaremos las datos enviados

$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];

//controlaremos que los valores no vengan vacios

if (!$nombre=='' && !$apellido=='')
{

$db->consulta("INSERT INTO bucle_while(nombre, apellido) VALUES ('$nombre', '$apellido')");

echo 
'<html>
<head>
<title>Llenar el formulario</title>
</head>
<fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;">
<body>
<p>
</p>
<form>
<h3><fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;"><legend>Mensaje Base de Datos</legend> 
<center>Datos Guardados con Exito</center>
</fieldset></h3><br>
</form>
<form action="bucle_while_carga_mas_valores.html">
<h3><fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;"><legend>Desea cargar mas datos?</legend> 
<input type=submit name=si value=Si /> &nbsp;&nbsp;&nbsp;<a href="http://www.google.com.py"><input type="button" name="no" value="No" /></a></fieldset></h3><br>
</form>
</fieldset>
</body>
</html>'
;

}else{

echo 
'
<form>
<h3><fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;"><legend>Mensaje Base de Datos</legend> 
<center>A ocurrido un error y no se ha guardado nada en la Base de datos</center>
</form>
<form action="bucle_while_carga_mas_valores.html">
<h3><fieldset style="border-color:#0066FF;padding-right:left;border-style:solid;"><legend>Desea Volver a intentar?</legend> 
<input type="submit" name="si" value="Si" /> &nbsp;&nbsp;&nbsp;<a href="http://www.google.com.py"><input type="button" name="no" value="No" /></a></fieldset></h3><br>
</form>
</fieldset></h3><br/>
'
;
}
?>
Eso es todo, lo unico que deberias programar a tu criterio, seria si ya no quiere insertar mas datos, o sea el boton NO, ahora con este ejemplo te redirecciona a google

ojala te sirva...

salu2
  #6 (permalink)  
Antiguo 28/01/2009, 08:19
 
Fecha de Ingreso: enero-2009
Mensajes: 13
Antigüedad: 15 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Ayuda con While

Primero que nada muchas a todos por responder, bueno vicram10 muchas gracias por tomarte el tiempo en responder, el codgo que hiciste funciono a la perfeccion, eso es lo que quiero hacer, pero metiendo los datos una sola vez, lo que quiero decir es que cuando digo desea introducir otro y tecleo que si, me parezca el cuadro anterior con lo que habia introducido e introduzco lo otro y cuando ya termino de introducir todo le doy ok y entonces que lo meta en la base de datos. Saludos y muchas gracias
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 09:54.