Foros del Web » Programando para Internet » PHP »

Problema al insertar

Estas en el tema de Problema al insertar en el foro de PHP en Foros del Web. Hola amigos, este es mi primer post en este foro... espero puedan ayudarme y yo darme a entender jajaja... no soy muy buena en esto ...
  #1 (permalink)  
Antiguo 22/04/2007, 14:13
 
Fecha de Ingreso: abril-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Problema al insertar

Hola amigos, este es mi primer post en este foro... espero puedan ayudarme y yo darme a entender jajaja... no soy muy buena en esto así que aqui voy

Hice una forma, donde los usuarios se registran(nombre, proyecto, integrantes, etc) son varios campos, pero queda un campo de esa tabla que se llama Estado que el usuario no llena, sino el administrador lo llena después ya que el administrador comprueba que todo está bien... yo hice lo siguiente, pero ya lo intente de muchas formas, movi casi todo y no logro que el adminstrador pueda insertar el dato...

Código PHP:

       <?php   
    
     $link 
mysql_connect("localhost""root");   
    
     
mysql_select_db("diseno"$link);   
    
    
    
     
$sql "SELECT * FROM upload WHERE Estado <> 'Completo'";   
    
     
$result mysql_query($sql$link);   
    
     if (
$row mysql_fetch_array($result)){   
    
        echo 
"<center><form method=post><table border = '1'> \n";   
    
    
    
 echo 
"<td> No. de Cuenta </td>";   
 echo 
"<td> Nombre </td>";   
 echo 
"<td> Integrantes </td>";   
 echo 
"<td> Nombre del Proyecto </td>";   
 echo 
"<tdEstado </td>";   
 echo 
"<td>Generacion </td>";   
    
 echo 
"</tr> \n";   
    
 do {   
    
 echo 
"<tr> \n";   
    
echo 
"<td>".$row["NoCuenta"]."</td> \n";
echo 
"<td>".$row["Nombre"]."</td> \n";
echo 
"<td>".$row["Integrantes"]."</td> \n";
echo 
"<td>".$row["NombreProyecto"]."</td> \n";
echo 
"<td><input name=Estado type=text></td> \n";
echo 
"<td>".$row["Generacion"]."</td> \n";
    
    
           
$estado=$_POST["Estado"];   
    
    
           
$qry "INSERT INTO upload VALUES   
            ('$estado')" 
;   
           
// mysql_query($query) or die(mysql_error());   
            
mysql_query($qry);   
    
    
 echo 
"<tr> \n";   
    
    
 echo 
"</tr> \n";   
    
    
    
    
 } while (
$row mysql_fetch_array($result));   
    
    
echo 
"</table></center> \n";   
 echo 
"<input type=submit value=Enviar>"   
    
    
 
?>   
    
    
 <?php   
 
} else {   
    
 echo 
"<p>¡No se ha encontrado ningún registro!</p>\n";   
    
    
    
    
 }   
    
 
?>
Espero puedan ayudarme, gracias!
  #2 (permalink)  
Antiguo 22/04/2007, 14:49
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: Problema al insertar

Código PHP:
<?php
           $qry 
"INSERT INTO upload VALUES   
            ('$estado')" 
;   
           
// mysql_query($query) or die(mysql_error());   
            
mysql_query($qry);  
?>
Justamente la linea que tenes comentada te podria ayudar mucho a detectar el error. Te mostrara por pantalla si hay un error con la consulta SQL:

Código PHP:
<?php
           $qry 
"INSERT INTO upload VALUES ('$estado')";
            
mysql_query($qry) or die(mysql_error());  
?>
Esa consulta yo la haria asi:

"INSERT INTO upload (Estado) VALUES('$estado')"

Además, verifica que los campos como Estado, esten realmente en tu tabla y con el mismo formato, es decir con la primer letra en mayúscula.

Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 22/04/2007, 14:59
 
Fecha de Ingreso: abril-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Problema al insertar

Hol, gracias por responderme... mira, hice lo que me comentas, quite lo que tenía como comentario... y ahora no me sale el botón de enviar, me despliega solo el primer registro de la información, pero los demás registros ni el botón... y no me da mensaje de error ni nada así.
  #4 (permalink)  
Antiguo 22/04/2007, 15:03
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: Problema al insertar

Coloca el codigo que puse en el lugar donde debe ir. La linea comentada tenia un pequeño error.

Código PHP:
<?php
           $qry 
"INSERT INTO upload (Estado) VALUES('$estado')";
            
mysql_query($qry) or die(mysql_error());  
?>
INSERT en un manual de MySQL

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #5 (permalink)  
Antiguo 22/04/2007, 15:07
 
Fecha de Ingreso: abril-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Problema al insertar

Sigue desplegandome solamente un registro sin el botón y ahora me dice esto...

Column count doesn't match value count at row 1
  #6 (permalink)  
Antiguo 22/04/2007, 15:10
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: Problema al insertar

Revisa los campos de tu tabla, como te comente mas arriba.

Column count doesn't match value count at

Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #7 (permalink)  
Antiguo 22/04/2007, 15:14
 
Fecha de Ingreso: abril-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Problema al insertar

Me dijiste que me fijara si en mi tabla declaré con mayúscula Estado, y así lo hice, tengo Estado.

Pero deja checo si hay alguna letra que se me haya pasado.


Oye, pero por ejemplo ya vez que yo solamente quiero agregar ese campo (Estado) al formulario que ya tengo... si estoy utilizando bien lo de INSERT?

porque mi tabla upload ya tiene algunos valores que como había dicho, ya los habia insertado el usuario, pero ahora el administrador debe insertar este valor en la misma tabla...

Última edición por Mads14; 22/04/2007 a las 15:33
  #8 (permalink)  
Antiguo 22/04/2007, 15:33
 
Fecha de Ingreso: abril-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Problema al insertar

Ammm ya pude arreglar ese problema...

Solo puse

Código PHP:
$qry "INSERT INTO upload(Estado) VALUES ('$estado')";
 
mysql_query($qry) or die(mysql_error()); 
Ahora si me aparecen todos los registros y el botón, pero sigo sin poder guardar ese campo
  #9 (permalink)  
Antiguo 22/04/2007, 16:02
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema al insertar

¿No deberìas usar la funciòn UPDATE en vez de la funciòn INSERT?

Quiero decir, los usuarios se estan registrando (Funciòn INSERT), pero el administrador actualiza ese registro y asigna un valor a la columna estado (Función UPDATE)

Es mi pequeño aporte, aunque no sé si sea lo que buscas...

Un saludo,
  #10 (permalink)  
Antiguo 22/04/2007, 16:09
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: Problema al insertar

Esta muy entreverado tu codigo y estas cometiendo errores, uno es que repites la sentencia de insertar por cada registro que tenes cuando aun no se ha enviado el formulario. Tambien, se me hace que no deberia ser un insert sino un update, ya que intentas modificar un campo de un registro existente, o me equivoco?

Los pasos que debes hacer son:

1- Pintar, mostrar todos tus registros dentro del formulario con su input correspondiente. Los inputs deben estar relacionados con el registro que van a modificar. Una manera podria ser relacionarlo con el numero de cuenta NoCuenta:

Código PHP:
<?php
echo "<td><input name=estado_" $row["NoCuenta"] . " type=text></td> \n";
?>
Cuando envies el formulario, recibiras un arreglo asi:

Código PHP:
<?php
$_POST
['estado_1234'] = valor;
$_POST['estado_1235'] = valor;
$_POST['estado_1236'] = valor;
$_POST['estado_1237'] = valor;
//etc.
?>
2- Cuando el usuario presiona el Submit, se envi ael formulario y ahi es cuando realizas el update. Recorres el array $_POST para modificar cada una de tus "cuentas".

Código PHP:
<?php
foreach($_POST as $llave => $valor)
{
        
$noCuenta str_replace("estado_"""$llave);
        
$qry "UPDATE upload set Estado= '$valor' WHERE NoCuenta = '$noCuenta'";
        
mysql_query($qry) or die(mysql_error());  
}
?>

No es un codigo terminado, es solo una idea que tambien puede tener sus errores.


Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #11 (permalink)  
Antiguo 22/04/2007, 16:11
 
Fecha de Ingreso: abril-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Problema al insertar

Precisamente eso estaba intentando y si salió :D Muchas gracias a los 2 por ayudarme...

Código PHP:

        $estado
=$_POST["Estado"];

 
$qry "UPDATE upload SET Estado='".$estado."'";
 
mysql_query($qry) or die(mysql_error()); 
Así es como quedo por si a alguien le sirve. Saludos!
  #12 (permalink)  
Antiguo 22/04/2007, 16:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema al insertar

Espera, hay un error...

Haciéndolo así actualizaràs todos los registros de tu tabla, cuando en realidad solo quieres actualizar uno. Debes usar un WHERE en tu cláusula UPDATE:

Código PHP:
//Yo usare la columna NoCuenta para identificar cada registro, pero 
//si dispones de un campo tipo id (un identificador unico de cada 
//registro), seria mejor que uses ese
$qry "UPDATE upload SET Estado='".$estado."' WHERE NoCuenta = '".$row["NoCuenta"]."'"
Un saludo,
  #13 (permalink)  
Antiguo 22/04/2007, 16:19
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema al insertar

Mmmm... la verdad, aun no acano de entender bien tu codigo

Un saludo,
  #14 (permalink)  
Antiguo 22/04/2007, 16:26
 
Fecha de Ingreso: abril-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Problema al insertar

Cita:
Iniciado por okram Ver Mensaje
Mmmm... la verdad, aun no acano de entender bien tu codigo

Un saludo,
Jajajaja soy un despapaye, lo sé! Tengo mucho que aprender y mejorar...

Ammmm si, ya vi, tenía 2 registros y solamente corregi uno, o sea escribi completo y el otro lo deje como incompleto.. y me guardo los 2, chetos... sigo aqui todavía...
  #15 (permalink)  
Antiguo 22/04/2007, 23:29
 
Fecha de Ingreso: abril-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Problema al insertar

Hola, fijate que hice lo que me dijiste, inclui el Where, pero le vale chetos jejejeje... sigue guardando todos en lugar de guardar solamente el que le estoy indicando...

Código PHP:

$qry 
"UPDATE upload SET Estado='".$estado."' WHERE NoCuenta = '".$row["NoCuenta"]."'"
según yo lo puse así...
  #16 (permalink)  
Antiguo 24/04/2007, 04:55
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema al insertar

Espera, hay algo que no me cuadra... Cual es el destino del formulario???

Código:
<form method=post> 


El while que usas es para displayar el formulario, pero no para hacer las actualizaciones. Que codigo procesarà este formulario una vez que lo hayas enviado? En ese codigo es en el que debes poner el UPDATE

Un saludo,
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 22:08.