Foros del Web » Programando para Internet » PHP »

Ayuda con formulario

Estas en el tema de Ayuda con formulario en el foro de PHP en Foros del Web. Hola, soy nuevo por aquí. Venía a pedir un poco de ayuda. Resulta que me he iniciado hace poco en esto de php y tengo ...
  #1 (permalink)  
Antiguo 01/07/2006, 21:34
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Ayuda con formulario

Hola, soy nuevo por aquí. Venía a pedir un poco de ayuda. Resulta que me he iniciado hace poco en esto de php y tengo una duda.
He hecho un formulario que te pida que selecciones 2 opciones de una lista. Al elegir una u otra, hace una consulta a la base de datos segun la etiqueta name y obtiene los datos. El problema es que para que ésto funcione, los nombres de las tablas no tienen que tener espacios en blanco porque si no da error al abrir la página. Me explico. Se eligen 2 equipos de mi formulario y uno de ellos es el atlético. Si la tabla de la base de datos se llama atletico de madrid, me dará error, mientras que si se llama atletico o atletico_de_madrid por ejemplo, me irá perfecto.

¿Hay alguna cosa para que al consultar la tabla atletico_de_madrid (lo pongo con un ejemplo), pueda mostrar yo Atlético de Madrid en mi página php? Es decir, la tabla de la bbdd seguirá llamándose atlético_de_madrid, pero yo al hacer la consulta, mostraré Atlético de Madrid por pantalla.

Perdonar por la explicación tan liosa :s
  #2 (permalink)  
Antiguo 01/07/2006, 21:37
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
al momento de hacer la consulta... hazle esto a los datos enviados por el select...

$club = $_POSt['club'];
$club = str_replace(" ", "_", $club); // lo que hace, es convertir los espacios en blanco por guiones bajos ( _ ). Ten cuidado con que no hayan espacios ni al principio ni al final...

// para evitar espacios al principio y al final, hazle esto...

$club = trim($club); // se supone que solo afecta a los espacios del principio y final de la cadena :)

$query = mysql_query("........... WHERE club='$club'") or die(mysql_error());

supongo que debería funcionar :)

nos vemos :)
  #3 (permalink)  
Antiguo 01/07/2006, 21:51
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Gracias por contestar tan rápido!

No me va. He probado y sigue saliéndome con guión bajo. No hay manera de que pueda seleccionar tablas de la bbdd que tengan espacios en blanco?

Un saludo!
  #4 (permalink)  
Antiguo 02/07/2006, 05:58
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Bueno ya lo he conseguido. Hoy con la mente despejada volví a hacerlo y ya funciona. Muchas gracias de nuevo!
  #5 (permalink)  
Antiguo 02/07/2006, 07:17
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Que bueno que lo solucionaste... una cosa... si logras solucionarlo, menciona como lo hiciste, así podrías ayudar a otros... :)
  #6 (permalink)  
Antiguo 02/07/2006, 07:29
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Hice lo que me dijiste, lo que pasa que lo hacía en un lugar equivocado.

Alguien sabe por qué no me hace el último insert (a la bbdd)? Pongo el código:

Código:
<?php

$link = mysql_connect("localhost", "root");

mysql_select_db("pes3", $link);

$result = mysql_query("SELECT equipo FROM liga order by equipo", $link);

while ($row = mysql_fetch_array($result)){
    $equipos.="<option>".$row['equipo'];
}

if (!$enviar){
    $c.= "<br><center><span class=\"genmed\">Notificar resultados<br><br>".
    "<form action=\"probando.php\" method=\"post\"><select name=\"equipo[1]\">$equipos</select> - <select name=\"equipo[2]\">$equipos</select>".
    "<br><br><input type=\"text\" name=\"gol1\" size=\"5\"> - <input type=\"text\" name=\"gol2\" size=\"5\"><br><br><input type=submit name=\"enviar\" class=\"liteoption\" value=\"Introducir resultado\"></form></center>";
    echo $c;
    die();
}

$result = mysql_query("SELECT jugador FROM $equipo[1]", $link);

while ($row = mysql_fetch_array($result)){
$jugadores.="<option>".$row['jugador'];

}

$result2 = mysql_query("SELECT jugador FROM $equipo[2]", $link);

while ($row = mysql_fetch_array($result2)){
$jugadores2.="<option>".$row['jugador'];

}
$equipo[1] = str_replace("_"," ", $equipo[1]); // Cambiar _ por un espacio en blanco
$equipo[1] = ucwords(strtolower($equipo[1])); //  Poner a mayuscula la primera letra de una palabra
$equipo[2] = str_replace("_"," ", $equipo[2]); // Cambiar _ por un espacio en blanco
$equipo[2] = ucwords(strtolower($equipo[2])); //  Poner a mayuscula la primera letra de una palabra
if (!$enviargol){
	echo "<form action=\"probando.php\" method=\"post\"><center><br><br><br><br><br><br><br><br><br><br>Elige los goleadores<br><br><table><tr><td>Goles del $equipo[1]</td></tr>";
	for($i=1;$i<=$gol1;$i++){
		echo "<tr><td><center><select name=\"gl[i]\">$jugadores</select></center></td></td></tr>";
        
	}
	echo "</table><table><tr><td>Goles del $equipo[2]</td></tr>";
	for($i=1;$i<=$gol2;$i++){
		echo "<tr><td><center><select name=\"gv[i]\">$jugadores2</select></td></tr>";
        
	}
	echo "</table><input type=submit name=\"enviargol\" class=\"liteoption\" value=\"Introduce goleadores\"></form></center>";
	
}
$tiempo=time();

$sql="insert into partidos (local,visitante,gollocal,golvisitante,fecha,gl1,gl2,gl3,gl4,gl5,gl6,gl7,gl8,gl9,gv1,gv2,gv3,gv4,gv5,gv6,gv7,gv8,gv9) values ('$equipo[1]','$equipo[2]','$gol1','$gol2','$tiempo','$gl[1]','$gl[2]','$gl[3]','$gl[4]','$gl[5]','$gl[6]','$gl[7]','$gl[8]','$gl[9]','$gv[1]','$gv[2]','$gv[3]','$gv[4]','$gv[5]','$gv[6]','$gv[7]','$gv[8]','$gv[9]')";
$result = mysql_query($sql);

$c.= "<br><center><span class=\"genmed\">Has introducido los datos.</center><br>";
echo $c;
?>

Última edición por Tommy22; 02/07/2006 a las 08:05
  #7 (permalink)  
Antiguo 02/07/2006, 08:07
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Código PHP:
$sql="insert into partidos (gl1,gl2,gl3,gl4,gl5,gl6,gl7,gl8,gl9,gv1,gv2,gv3,gv4,gv5,gv6,gv7,gv8,gv9) values ('$gl[1]','$gl[2]','$gl[3]','$gl[4]','$gl[5]','$gl[6]','$gl[7]','$gl[8]','$gl[9]','$gv[1]','$gv[2]','$gv[3]','$gv[4]','$gv[5]','$gv[6]','$gv[7]','$gv[8]','$gv[9]')";
$result mysql_query($sql); 
Supongo que ese es el último insert... agrégale esto a $result

Código PHP:
$result mysql_query($sql) or die(mysql_error()); 
así sabrás que error te causa...

otra cosa... para evitarte estas lineas tan largas

Código PHP:
$sql="insert into partidos (gl1,gl2,gl3,gl4,gl5,gl6,gl7,gl8,gl9,gv1,gv2,gv3,gv4,gv5,gv6,gv7,gv8,gv9) values ('$gl[1]','$gl[2]','$gl[3]','$gl[4]','$gl[5]','$gl[6]','$gl[7]','$gl[8]','$gl[9]','$gv[1]','$gv[2]','$gv[3]','$gv[4]','$gv[5]','$gv[6]','$gv[7]','$gv[8]','$gv[9]')"
Prueba haciéndolo así...
Código PHP:
for($i 1$i <= 9$i++)
{
$sql "insert into partidos (gl".$i.", gv".$i.") VALUES ('$gl[".$i."]', '$gv[".$i."]')";
$result mysql_query($sql) or die(mysql_error());

Pruébalo así... solo pruébalo... pude equivocarme... nos vemos :)
  #8 (permalink)  
Antiguo 02/07/2006, 08:26
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Hola de nuevo y aunque sea pesado, gracias nuevamente.

Me da error (Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING) en esta línea:

Código PHP:
$sql "insert into partidos (gl".$i.", gv".$i.") VALUES ('$gl[".$i."]', '$gv[".$i."]')"
  #9 (permalink)  
Antiguo 02/07/2006, 08:37
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Cambié un poco el código, hice un sólo insert al final del código:

Código PHP:
$sql="insert into partidos (local,visitante,gollocal,golvisitante,fecha,gl1,gl2,gl3,gl4,gl5,gl6,gl7,gl8,gl9,gv1,gv2,gv3,gv4,gv5,gv6,gv7,gv8,gv9) values ('$equipo[1]','$equipo[2]','$gol1','$gol2','$tiempo','$gl[1]','$gl[2]','$gl[3]','$gl[4]','$gl[5]','$gl[6]','$gl[7]','$gl[8]','$gl[9]','$gv[1]','$gv[2]','$gv[3]','$gv[4]','$gv[5]','$gv[6]','$gv[7]','$gv[8]','$gv[9]')";
$result mysql_query($sql);$result mysql_query($sql) or die(mysql_error()); 
Inserta todo menos gl1,gl2,...,gv1,gv2,etc

Puede ser que sea problema de haber 2 formularios en la misma página?
  #10 (permalink)  
Antiguo 02/07/2006, 08:38
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
prueba con esta...

Código PHP:
$sql "insert into partidos (gl$i, gv$i) VALUES ('$gl[$i]', '$gv[$i]')"
  #11 (permalink)  
Antiguo 02/07/2006, 08:52
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Tiene que ser cosa de los 2 formularios a la vez porque insertar me inserta, pero valores en blanco. Las variables gl[$i] y gv[$i] no guardan nada al parecer.
  #12 (permalink)  
Antiguo 02/07/2006, 09:34
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Sigo dándole vueltas al tema. El problema es que no almacena nada en las variables gl[1],gl[2], etc. Lo he comprobado poniéndo por defecto el valor NULL en la base de datos. Al mandar el formulario borra el valor NULL, por tanto el problema es que la variable no almacena los datos.

alguna sugerencia?
  #13 (permalink)  
Antiguo 02/07/2006, 10:42
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Intentaste con la linea que tú tenías???... te ingresa algo???...

pon el código del formulario, para ver como llamas a los campos...
  #14 (permalink)  
Antiguo 02/07/2006, 11:08
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Alllá va el código. Me estoy comiendo la cabeza Gracias por el interés!

Código PHP:
<?php

$link 
mysql_connect("localhost""root");

mysql_select_db("pes3"$link);

$result mysql_query("SELECT equipo FROM liga order by equipo"$link);

while (
$row mysql_fetch_array($result)){
    
$equipos.="<option>".$row['equipo'];
}

if (!
$enviar){
    
$c.= "<br><center><span class=\"genmed\">Notificar resultados<br><br>".
    
"<form action=\"probando.php\" method=\"post\"><select name=\"equipo[1]\">$equipos</select> - <select name=\"equipo[2]\">$equipos</select>".
    
"<br><br><input type=\"text\" name=\"gol1\" size=\"5\"> - <input type=\"text\" name=\"gol2\" size=\"5\"><br><br><input type=\"submit\" name=\"enviar\" class=\"liteoption\" value=\"Introducir resultado\"></form></center>";
    echo 
$c;
    die();
}

$result mysql_query("SELECT jugador FROM $equipo[1]"$link);

while (
$row mysql_fetch_array($result)){
$jugadores.="<option>".$row['jugador'];

}

$result2 mysql_query("SELECT jugador FROM $equipo[2]"$link);

while (
$row mysql_fetch_array($result2)){
$jugadores2.="<option>".$row['jugador'];

}
$equipo[1] = str_replace("_"," "$equipo[1]); // Cambiar _ por un espacio en blanco
$equipo[1] = ucwords(strtolower($equipo[1])); //  Poner a mayuscula la primera letra de una palabra
$equipo[2] = str_replace("_"," "$equipo[2]); // Cambiar _ por un espacio en blanco
$equipo[2] = ucwords(strtolower($equipo[2])); //  Poner a mayuscula la primera letra de una palabra
if (!$enviargol){
    echo 
"<form action=\"probando.php\" method=\"post\"><center><br><br><br><br><br><br><br><br><br><br>Elige los goleadores<br><br><table><tr><td>Goles del $equipo[1]</td></tr>";
    for(
$i=1;$i<=$gol1;$i++){
        echo 
"<tr><td><center><select name=\"gl[i]\">$jugadores</select></center></td></td></tr>";
        
    }
    echo 
"</table><table><tr><td>Goles del $equipo[2]</td></tr>";
    for(
$i=1;$i<=$gol2;$i++){
        echo 
"<tr><td><center><select name=\"gv[i]\">$jugadores2</select></td></tr>";
        
    }
    echo 
"</table><input type=submit name=\"enviargol\" class=\"liteoption\" value=\"Introduce goleadores\"></form></center>";
    
}
$tiempo=time();

$sql="insert into partidos (local,visitante,gollocal,golvisitante,fecha,gl1,gl2,gl3,gl4,gl5,gl6,gl7,gl8,gl9,gv1,gv2,gv3,gv4,gv5,gv6,gv7,gv8,gv9) values ('$equipo[1]','$equipo[2]','$gol1','$gol2','$tiempo','$gl[1]','$gl[2]','$gl[3]','$gl[4]','$gl[5]','$gl[6]','$gl[7]','$gl[8]','$gl[9]','$gv[1]','$gv[2]','$gv[3]','$gv[4]','$gv[5]','$gv[6]','$gv[7]','$gv[8]','$gv[9]')";
$result mysql_query($sql);

?>
Me inserta todos los campos menos los de gl[1],gl[2],etc.
  #15 (permalink)  
Antiguo 03/07/2006, 09:56
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
Bueno he avanzado un poco más. En el segundo formulario he cambiado en action para que se procese en formulario2.php. El caso es que ahora me hace 2 insercciones cuando yo quiero que sólo me haga 1 :(
  #16 (permalink)  
Antiguo 04/07/2006, 09:18
 
Fecha de Ingreso: julio-2006
Mensajes: 11
Antigüedad: 17 años, 9 meses
Puntos: 0
una ayudita por favor :(
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 12:59.