PHP - Grilla pasajeros con input text (php y mysql)

   
Vista:
Imágen de perfil de GastonHernandez

Grilla pasajeros con input text (php y mysql)

Publicado por GastonHernandez gastonhernandez1995@gmail.com (12 intervenciones) el 10/08/2016 08:41:47
Buenas noches programadores, acá uno nuevo en la comunidad tratando de aprender y sumar un poco más a altas horas de la madrugada...
La idea de la web es hacer una "grilla" (o como le quieran llamar) donde se crea un nuevo viaje en el que se especifica el nombre del viaje y la cantidad de pasajeros.. al crear el viaje, tomo la cantidad de pasajeros y creo una tabla de datos para cada viaje dentro de la db en la que tiene X cantidad de pasajeros con su id, butaca y nombre, al crear esta tabla, su nombre está vacio, hasta acá todo perfecto.

Ahora quiero que la gente que ingrese a la web, pueda entrar a la grilla de los viajes y que aparezca la cantidad de butacas, con sus respectivos pasajeros o vacias con input text, así en estas pueden escribir nombre del pasajero, dar click a guardar y que se ocupen las butacas, obviamente las butacas ocupadas estaran en input text disabled .

(Adjunto una imagen para que sea de más facil comprensión)
SvAP1g

Por lo que hice un grilla.php en el que con el while recorro toda la consulta y voy mostrando en pantalla las butacas con sus respectivos pasajeros, o vacias.

La idea del modificar.php es que al dar click en guardar, los nuevos pasajeros que se escribieron en los campos vacios, sean añadidos o modificados en la base de datos, por lo que hice un while que recorra toda la consulta y vaya comprobando los datos y actualizando la tabla, el problema que tengo es que me toma unicamente el ultimo pasajero que se ingreso y me rellena la tabla en los espacios null con el nombre del ultimo pasajero.

Creo que el problema está en que todos los input, tienen el nombre de "pasajero" por lo que se va sobrescribiendo siempre la variable $persona hasta recibir el ultimo resultado.. De ser este el problema, espero que me ayuden a solucionarlo..

Desde ya muchisimas gracias, saludos !!

grilla.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE HTML>
<html>
	<head><meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
 
<title>Taiyo Viajes - Grilla</title>
 
<link href='https://fonts.googleapis.com/css?family=Euphoria+Script' rel='stylesheet' type='text/css'>
<link href="login.css" rel="stylesheet" type="text/css">
 
</head>
 
<body bgcolor="#003399">
<form action="modificar.php" method="post">

<?
	//Conexion con base de datos y servidor
	$link = mysql_connect ("localhost", "root", "") or die ("<h2>No se encuentra el servidor</h2>");;
	$db = mysql_select_db ("basededatos", $link) or die ("<h2>Error de Conexion</h2>");
 
	//Obtenemos valores del viaje
	$nombreViajeO = $_POST['nombreViaje'];
	$tabla = str_replace(' ','_', $nombreViajeO);
 
	$sql = "SELECT * FROM pasajeros ORDER BY butaca";
 
	$rs = mysql_query ($sql,$link);
 
	while ($row = mysql_fetch_row($rs))
	{
			if ($row[2] != NULL){
				$type = "disabled";
 
			}else{
				$type = "enabled";
				}
				echo '#';
				echo $row[1];
				echo '&nbsp';
				echo "<input type='text' name='pasajero' value='$row[2]' $type />";
 
	}
?>
 
  <button type="submit" name="boton_guardar" value= "Aceptar">Guardar</button>
  <button type="reset">Limpiar</button>
    </form>
 
    </div>
 
</body>
</html>

modificar.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
	//Conexion con base de datos y servidor
	$link = mysql_connect ("localhost", "root", "") or die ("<h2>No se encuentra el servidor</h2>");;
	$db = mysql_select_db ("basededatos", $link) or die ("<h2>Error de Conexion</h2>");
 
	//Obtenemos valores del viaje
	$nombreViajeO = $_POST['nombreViaje'];
	$tabla = str_replace(' ','_', $nombreViajeO);
 
	$sql = "SELECT * FROM pasajeros ORDER BY butaca";
	$sql2 = "UPDATE pasajeros SET nombre='$persona'";
 
	$rs = mysql_query ($sql,$link);
 
	while ($row = mysql_fetch_row($rs))
	{
	$persona = $_POST['pasajero'];
			if ($row[2] == NULL){
				mysql_query ($sql2, link);
				echo '<script>alert ("Se han guardado correctamente las butacas deseadas")</script>' ;
			}
	}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Gaston

Grilla pasajeros con input text (php y mysql)

Publicado por Gaston (12 intervenciones) el 10/08/2016 20:44:16
Pude avanzar bastante y diferenciar las cajas de texto cambiandole el name por una variable y esa variable va cambiando concatenando strings.. De esta manera

grilla.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$iname = "pasajeroVacio";
	while ($row = mysql_fetch_row($rs))
	{
			if ($row[2] != NULL){
				$type = "disabled";
 
			}else{
				$type = "enabled";
				}
				echo '#';
				echo $row[1];
				echo '&nbsp';
				echo "<input type='text' name='$iname' value='$row[2]' $type />";
				$iname = $iname."a";
 
	}

modificar.php
1
2
3
4
5
6
7
8
9
10
11
12
$inputname = "pasajeroVacio";
	while ($row = mysql_fetch_row($rs))
	{
		$persona = $_POST[$inputname];
		echo "$persona";
		//Actualizacion de los nombres de la tabla mediante la variable persona
		$sql2 = "UPDATE pasajeros SET nombre='$persona'";
			if ($row[2] == NULL){
				mysql_query ($sql2, $link);
			}
		$inputname = $inputname."a";
	}

Ahora el problema que estoy teniendo, es que me inserta todo en blanco en la base de datos y no puedo descifrar el porqué.
En el código uso un echo de $persona, para descartar que el problema sea que la variable está vacia (efectivamente, la variable NO esta vacia y contiene los datos correctos pero aún así en la columna name de la tabla me inserta valores en blanco)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gaston

Grilla pasajeros con input text (php y mysql)

Publicado por Gaston (12 intervenciones) el 11/08/2016 02:10:34
Solucionado gente, despues de horas de pensar, tocar, dar vueltas e investigar, lo pude lograr con una condicion en el update a la tabla y que vaya moviendo el auxiliar asi siempre coincide

modificar.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$inputname = "pasajeroVacio";
$aux= 1;
	while ($row = mysql_fetch_row($rs))
	{
		$persona = $_POST[$inputname];
		echo "$persona";
		echo "$aux";
		//Actualizacion de los nombres de la tabla mediante la variable persona
		$sql2 = "UPDATE pasajeros SET nombre='$persona' WHERE id='$aux'";
			if ($row[2] == NULL){
				mysql_query ($sql2, $link);
			}
		$inputname = $inputname."a";
		$aux+=1;
	}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

Grilla pasajeros con input text (php y mysql)

Publicado por Diego (1 intervención) el 11/08/2016 16:38:59
Eres insistente eh!!! jajajaj.
Esa era la respuesta que te iba a dar.
Saludos y +bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar