Foros del Web » Programando para Internet » PHP »

problema con formulario y consuta mysql

Estas en el tema de problema con formulario y consuta mysql en el foro de PHP en Foros del Web. tengo un formulario para cargar los datos de los CLIENTES y tengo dos dudas al respecto: *este script tiene un error, resulta que inserta en ...
  #1 (permalink)  
Antiguo 19/07/2006, 13:32
 
Fecha de Ingreso: junio-2006
Mensajes: 166
Antigüedad: 11 años, 6 meses
Puntos: 3
problema con formulario y consuta mysql

tengo un formulario para cargar los datos de los CLIENTES y tengo dos dudas al respecto:

*este script tiene un error, resulta que inserta en la base de datos nada mas que los valores domicilio y nombre, y los de mas datos que son numericos no me los inserta, por que sera?

*otra cosa que te queria consultar, donde dice informacion introducida, me gustaria agregarle al lado el numero de "clientes" cargados ej: usted ha cargado x clientes...


<?

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

if(($_POST[numero] == '') or
($_POST[nombre] == '') or
($_POST[cuit] == '') or
($_POST[domicilio] == '') or
($_POST[telefono] == '') or
($_POST[cp] == '') ) {
echo 'complete con los datos de sus clietes...';

}else{

$sql = "INSERT INTO clientes (numero,nombre, cuit, domicilio, telefono, cp) VALUES
('($_POST[numero])','($_POST[nombre])', '($_POST[cuit])', '($_POST[domicilio])', '($_POST[telefono])', '($_POST[cp])')";
$result = mysql_query($sql);

echo "Información introducida.\n";

}

?>
<form method="post" action="tt.php">
Numero:<input type="Text" name="numero"><br>
Nombre:<input type="Text" name="nombre"><br>
cuit:<input type="Text" name="cuit"><br>
domicilio:<input type="Text" name="domicilio"><br>
telefono:<input type="Text" name="telefono"><br>
cp:<input type="Text" name="cp"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
  #2 (permalink)  
Antiguo 19/07/2006, 13:40
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Cita:
Iniciado por sabruchi
tengo un formulario para cargar los datos de los CLIENTES y tengo dos dudas al respecto:

*este script tiene un error, resulta que inserta en la base de datos nada mas que los valores domicilio y nombre, y los de mas datos que son numericos no me los inserta, por que sera?
Normalmente los valores numéricos no deben llevar las comillas simples en la consulta.

Cita:
Iniciado por sabruchi
*otra cosa que te queria consultar, donde dice informacion introducida, me gustaria agregarle al lado el numero de "clientes" cargados ej: usted ha cargado x clientes...
Los q ha dado de alta o el total q existe?

P.D.: 100 mensajes... q corto se me ha hexo...
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 19/07/2006, 13:46
 
Fecha de Ingreso: junio-2006
Mensajes: 166
Antigüedad: 11 años, 6 meses
Puntos: 3
En Cuanto A La Insercion De Datos, Cuando Saco Las Comillas Me Tira "error".
Y En Cuanto Al Contador, Quiero Que Cuente Los Que Se Van Dando De Alta En El Momento Pense En Usar <hidden.... Pero No Tengo Idea Como.
  #4 (permalink)  
Antiguo 19/07/2006, 13:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Consejo:

No sé por qué pones tantos parentesis .. sólo se usa para separar en SQL los "(valor,valor,valor)" ....

No está de más que apliquees algún pre-filtrado a esas variables .. desde chequeos de tipo de dato: si esperas un numero .. que no sea una letra ... si está en tal rango .. que no sea superado. Y validación en general de los caracteres intruducidos que podrían darte problemas usando:

mysql_real_escape_string($_POST['variable'])
(sólo lo voy a poner en una variable de ejemplo .. usalo en el resto).

OJO .. concatena tus variables, escribes más "Código" pero se hace mejor su lectura e identificación de problemas.

Si hay un error a nivel de SQL o de conexión no lo veras .. a no ser que uses mysql_error() .. Recuerda que mysql_query() devuelve "true" si se ejecuta correctamente y sino .. "false" .. Usalo en un IF() ..

(El @ sólo ocualta los mensajes de error de PHP .. pero ya los capturamos con mysql_error()) ...


Código PHP:
$sql "INSERT INTO clientes (numero,nombre, cuit, domicilio, telefono, cp) VALUES 
('"
.$_POST['numero']."','".$_POST['nombre']."','".$_POST['cuit']."','".mysql_real_escape_string($_POST['domicilio'])."','".$_POST['telefono']."','".$_POST['cp']."')";

if (@
mysql_query($sql)){
   
// no es bueno que dejes aquí la ejecución del script .. fijate que pasa si recargas esta página en este punto ..
   
echo "Información introducida.\n";
   
// Lo ideal es redireccionar a otra página donde realmente allá muestres tu mensaje de exito_
   
header ("Location: pagina_mensajes.php");
   exit;

} else {
   echo 
"<br>Error: Mysql Dice: ".mysql_error();



Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 19/07/2006, 13:51
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Pues sobre lo de la consulta:

Código PHP:
$sql "INSERT INTO clientes (numero,nombre, cuit, domicilio, telefono, cp) VALUES 
('"
.$_POST['numero']."','".$_POST['nombre']."', '".$_POST['cuit']."', '".$_POST['domicilio']."', '".$_POST['telefono']."', '".$_POST['cp']".')";
//Tambien he visto usar pero no lo he probado:
$sql "INSERT INTO clientes (numero,nombre, cuit, domicilio, telefono, cp) VALUES 
('{$_POST[numero]}','{$_POST[nombre]}', '{$_POST[cuit]}', '{$_POST[domicilio]}', '{$_POST[telefono]}', '{$_POST[cp]}')"

Aún así me extraña q te dé error la consulta si es de tipo numérico el campo a introducir y le pones las comillas...

P.D: El maestro jedi Cluster se me adelantó. Q mákina es el joio.
__________________
La muerte es un camino que todos debemos recorrer...

Última edición por djreficul; 19/07/2006 a las 14:02
  #6 (permalink)  
Antiguo 19/07/2006, 14:38
 
Fecha de Ingreso: junio-2006
Mensajes: 166
Antigüedad: 11 años, 6 meses
Puntos: 3
cluster
es algo tan facil lo que quiero hacer, es tan basico, pero aun no lo puedo conseguir... cluster probe tu sugerencia, nose si era esto lo que me decias que prueba pero no probe y no funciono. me tira error en la ultima lineaque seria </form>

djreficul ahora hoy a probar tu sugerencia, espero encontrar una solucion estoy re trabada conesto. la tabla fue bien creada los numeros contipo de dato "int"

<?


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

if(($_POST['id_cliente'] == '') or
($_POST[id_empresa] == '') or
($_POST[nombre_apellido] == '') or
($_POST[cuit] == '') or
($_POST[domicilio] == '') or
($_POST[telefono] == '') or
($_POST[cp] == '') ) {
echo 'complete con los datos de sus clietes...';

}else{


$sql = "INSERT INTO clientes (id_cliente, id_empresa,nombre_apellido, cuit, domicilio, telefono, cp)

values('".$_POST['id_cliente']."','".$_POST['id_empresa']."','".$_POST['nombre_apellido']."','".$_POST['cuit']."','".$_POST['domicilio']."','".$_POST['telefono']."','".$_POST['cp']."','".mysql_real_escape_string
($_POST['id_cliente'])."','".$_POST['id_empresa']."','".$_POST['nombre_apellido']."','".$_POST['cuit']."','".$_POST['domicilio']."','".$_POST['telefono']."','".$_POST['cp']."')";

if (@mysql_query($sql)){
echo "Información introducida.\n";
header ("Location: tt.php");
exit;

} else {
echo "<br>Error: Mysql Dice: ".mysql_error();
}


?>
<form method="post" action="tt.php">
Nro cliente:<input type="Text" name="id_cliente"><br>
Nombre empresa:<input type="Text" name="id_empresa"><br>
nombre cliente:<input type="Text" name="nombre_apellido"><br>
cuit:<input type="Text" name="cuit"><br>
domicilio:<input type="Text" name="domicilio"><br>
telefono:<input type="Text" name="telefono"><br>
cp:<input type="Text" name="cp"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
  #7 (permalink)  
Antiguo 19/07/2006, 14:59
 
Fecha de Ingreso: junio-2006
Mensajes: 166
Antigüedad: 11 años, 6 meses
Puntos: 3
EN HORABUENA!!!!!!!!!!!!!!!!!!!!!! LO HE LOGRADO!!
HICE UNA PRUEBA SIMPLE, SIMPLE SOLO PARA VER SI SE ME CARGABAN LOS NUMEROS Y LO CONSEGUI, PROBE LA MISMA SUGERENCIA QUE ME DIERON LOS 2
$link = mysql_connect("localhost","root");
mysql_select_db("IVA",$link);



$sql = "INSERT INTO clientes (id_cliente, id_empresa,nombre_apellido, cuit, domicilio, telefono, cp)

values('".$_POST['id_cliente']."','".$_POST['id_empresa']."','".$_POST['nombre_apellido']."','".$_POST['cuit']."','".$_POST['domicilio']."','".$_POST['telefono']."','".$_POST['cp']."')";
$result = mysql_query($sql);
echo "Información introducida.\n";


?>

<form method="post" action="jaa.php">
Nro cliente:<input type="Text" name="id_cliente"><br>
Nombre empresa:<input type="Text" name="id_empresa"><br>
nombre cliente:<input type="Text" name="nombre_apellido"><br>
cuit:<input type="Text" name="cuit"><br>
domicilio:<input type="Text" name="domicilio"><br>
telefono:<input type="Text" name="telefono"><br>
cp:<input type="Text" name="cp"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
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 07:05.