Foros del Web » Programando para Internet » PHP »

Post y get

Estas en el tema de Post y get en el foro de PHP en Foros del Web. Hola buenas, tengo un problema al modificar los datos de la tabla clientes. trate de buscar soluciones pero no las encuentro. Muchas gracias, al que ...
  #1 (permalink)  
Antiguo 17/01/2015, 16:00
 
Fecha de Ingreso: enero-2015
Mensajes: 11
Antigüedad: 9 años, 3 meses
Puntos: 0
Editar datos (update)

Hola buenas, tengo un problema al modificar los datos de la tabla clientes.
trate de buscar soluciones pero no las encuentro.
Muchas gracias, al que pueda ayudarme



Modificar:
$sql = "SELECT * FROM clientes WHERE Idcliente = '".$_GET['idcliente'] ."'";
$resul = $conn->query($sql);
while ($row=$resul->fetch_array()){
$nombre=$row["nombre"];
$apellido=$row["apellido"];
$Idcliente=$row["Idcliente"];
}
<form action="actualizar.php" method="post" class="registro">
<input type="hidden" name="Id"></div>
<div><label>Nombre:</label>
<input type="text" name="nombre"></div>
<div><label>Apellido:</label>
<input type="text" name="apellido"></div>
<input type="submit" name="enviar" value="modificar"></div>
</form>



Actualizar:
$id=$_POST['idcliente'];
$valor1=$_POST['nombre'];
$valor2=$_POST['apellido'];
if($_POST['enviar']=="modificar")
{
$sql="update [clientes set nombre='$valor1', apellido='$valor2', where IDcliente]='$id'";
$resul = $conn->query($sql);
echo "Actualizado correctamente";
}
else
{
header("Location: modificar.php");
}
  #2 (permalink)  
Antiguo 17/01/2015, 16:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Editar datos (update)

¿Qué base de datos usas?
¿Por qué están esos corchetes dentro de la query?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/01/2015, 16:27
 
Fecha de Ingreso: enero-2015
Mensajes: 11
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Editar datos (update)

uso mysql.
los corchetes esos son parentesis ()
  #4 (permalink)  
Antiguo 17/01/2015, 18:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Editar datos (update)

Cita:
Iniciado por dany97 Ver Mensaje
uso mysql.
los corchetes esos son parentesis ()
Bueno, pues los corchetes de este código están MAL. No se usan corchetes en ninguna sentencia de MySQL:
Código SQL:
Ver original
  1. UPDATE [clientes SET nombre='$valor1', apellido='$valor2',
  2. WHERE IDcliente]='$id'
Además, si miras con cuidado, tienes una coma antes del WHERE, que no corresponde. Las comas separan las asignaciones campo-valor, y nada mas que eso. Esa coma implicaría que hay una asignación faltante o que hiciste un copy+paste incorrecto.

En cualquier caso, como mínimo debes quitar los corchetes, y si son paréntesis tambien debes quitarlos, porque generan un error des sintaxis en MySQL.
Código SQL:
Ver original
  1. UPDATE clientes
  2. SET nombre='$valor1',
  3. apellido='$valor2'
  4. WHERE IDcliente='$id'

Adicionalmente, no estás verificando si MySQL devolvió o no un error, que es una validación mínima que debes hacer, incluso aunque la query estuviese bien escrita (ver MYSQLI: errores ).

Código PHP:
Ver original
  1. $sql = "SELECT * FROM clientes WHERE Idcliente = '" . $_GET['idcliente'] . "'";
  2. $resul = $conn->query($sql);
  3. if (!$conn->error) {
  4.     while ($row = $resul->fetch_array()) {
  5.         $nombre = $row["nombre"];
  6.         $apellido = $row["apellido"];
  7.         $Idcliente = $row["Idcliente"];
  8.     }
  9. }
  10.  
  11.  
  12. $id = $_POST['idcliente'];
  13. $valor1 = $_POST['nombre'];
  14. $valor2 = $_POST['apellido'];
  15. if ($_POST['enviar'] == "modificar") {
  16.     $sql = "UPDATE clientes SET nombre='$valor1', apellido='$valor2' WHERE IDcliente='$id'";
  17.     $resul = $conn->query($sql);
  18.     if (!$conn->error) {
  19.         echo "Actualizado correctamente";
  20.     } else {
  21.         echo "Error al ejecutar la consulta:" . $conn->error;
  22.         return;
  23.     }
  24. } else {
  25.     header("Location: modificar.php");
  26. }
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 17/01/2015 a las 19:42
  #5 (permalink)  
Antiguo 18/01/2015, 11:12
 
Fecha de Ingreso: enero-2015
Mensajes: 11
Antigüedad: 9 años, 3 meses
Puntos: 0
Problema con update!ayuda

Hola buenas, tengo un problema cuando quiero modificar algo de la tabla clientes.
Cuando modifico algun dato sea nombre o apellido (De la idcliente), me dice el error: Undefined index:Get idcliente(el subrayado). La consulta anda, ya que al cambiar el Get idcliente por cualquier numero, se modifico en la tabla.Ayuda, muchas gracias.
Get idcliente lo paso dessde otra pagina php a modifica.php

<form action="modificar.php" method="post" class="registro">
<div><label>Nombre:</label>
<input type="text" name="nombre"></div>
<div><label>Apellido:</label>
<input type="text" name="apellido"></div>
<input type="submit" name="enviar" value="Registrar"></div>
</form>
<?php

if(isset($_POST['enviar']))//para saber si el botón registrar fue presionado.
{
$sql = "UPDATE clientes SET nombre='".$_POST['nombre'] . "', apellido='".$_POST['apellido'] . "' WHERE Idcliente='".$_GET['idcliente'] . "'"; $resul=$conn->query($sql);
}
?>
  #6 (permalink)  
Antiguo 18/01/2015, 11:38
Avatar de eluna90  
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Problema con update!ayuda

Hola

El error esta $_GET['idcliente'] porque en la url del form action deberia ser modificar.php?id=1

en donde 1 es id del cliente te falta enviarlo o, puedes poner un hidden en el form con el codigo del cliente y enviarlo via $_POST

Saludos
  #7 (permalink)  
Antiguo 18/01/2015, 12:38
 
Fecha de Ingreso: enero-2015
Mensajes: 11
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema con update!ayuda

Muchas gracias, pero..
sigo con el problema.
$id = $_GET['idcliente']
<input type="hidden" name="<?php echo $id;?>" class="form-input" /></div>

Como lo recibo por post esto?
en general lo recibo asi: $id=$_POST['id']; pero como ya es una variable, nose.
Muchas gracias eluna
  #8 (permalink)  
Antiguo 18/01/2015, 13:37
 
Fecha de Ingreso: enero-2015
Mensajes: 11
Antigüedad: 9 años, 3 meses
Puntos: 0
Post y get

Hola buenas.
Estoy teniendo problemas al pasar una variable hidden por post.
$id = $_GET['idcliente']
<input type="hidden" name="<?php echo $id;?>" class="form-input" /></div>

al pasarla por post nose como pasarla, intente asi: $id = $row["id"];
Pregunto esto porque:
if ($_POST['enviar'] == "modificar")
$sql = "UPDATE clientes SET nombre='$valor1',Idcliente= apellido='$valor2' WHERE Idcliente='$id'";
$resul = $conn->query($sql);

el $id no me lo reconoce.
Pero no me deja, nose me ocurre una posibilidad, ¿alguna idea?
Gracias,
  #9 (permalink)  
Antiguo 18/01/2015, 13:49
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Post y get

y de donde salio $row? porque no usas $_POST
  #10 (permalink)  
Antiguo 18/01/2015, 13:53
 
Fecha de Ingreso: enero-2015
Mensajes: 11
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Post y get

PERDON seria asi:

$id = _POST["id"];

pero $id ya tiene grabado un numero.
WHERE Idcliente='$id'";
y cuando uso el where no me reconocec el id que esta en el name del hidden
  #11 (permalink)  
Antiguo 18/01/2015, 14:04
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Post y get

$sql = "UPDATE clientes SET nombre='$valor1',Idcliente= apellido='$valor2' WHERE Idcliente='$id'";
  #12 (permalink)  
Antiguo 18/01/2015, 16:33
 
Fecha de Ingreso: enero-2015
Mensajes: 11
Antigüedad: 9 años, 3 meses
Puntos: 0
Update,problema en mi codigo

Buenas tengo un problema al hacer la consulta update.
Paso de una pagina a modificar.php(la del codigo) por get el idcliente.

$id = $_GET['idcliente']

<form action="modificar.php" method="post" class="registro">
<div><label>Nombre:</label>
<input type="text" name="nombre"></div>
<div><label>Apellido:</label>
<input type="text" name="apellido"></div>
<div><label>Idcliente:</label>
<input type="hidden" name="<?php echo $id;?>" class="form-input" /></div>
<input type="submit" name="enviar" value="modificar"></div>
</form>
if(isset($_POST['enviar'])){
$sql = "UPDATE clientes SET nombre='" . $_POST['nombre'] . "',apellido='" . $_POST['apellido'] . "' WHERE Idcliente='$id'";
$resul = $conn->query($sql);
var_dump("$sql");
if (!$conn->error) {
echo "Actualizado correctamente";
} else {
echo "Error al ejecutar la consulta:" . $conn->error;
return;
}
}

Cuando entro a la pagina modificar.php me reconoce el idcliente(que viene de get, y lo llame despues $id), pero al apretar el boton enviar, (if isset), me dice que no lo reconoce, y no puedo terminar la consulta de update con (WHERE Idcliente='$id'";) el $id no me reconoce. Porfavor alguna ayuda.
  #13 (permalink)  
Antiguo 18/01/2015, 17:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Update,problema en mi codigo

Esto está mal:
Cita:
<input type="hidden" name="<?php echo $id;?>" class="form-input" />
Eso no creará la variable $id al recibir el formulario, debes hacerlo así:
Cita:
<input type="hidden" name="id" value="<?php echo $id;?>" class="form-input" />
Y al leerlo con PHP así:
Código PHP:
Ver original
  1. $id = $_POST['id'];

¿Se entiende?

Por favor lee un manual: http://www.php.net/variables.external
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 18/01/2015, 17:50
 
Fecha de Ingreso: enero-2015
Mensajes: 11
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Update,problema en mi codigo

Entiendo pero $id ya tiene grabado un numero que lo pase por get
  #15 (permalink)  
Antiguo 18/01/2015, 18:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Update,problema en mi codigo

Cita:
Iniciado por dany97 Ver Mensaje
Entiendo pero $id ya tiene grabado un numero que lo pase por get
Si, pero se pierde porque cambias el método del formulario a post, y por lo tanto la URL pierde dicho valor. ¿O tal vez no te has dado cuenta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: post, registro, select, sql, tabla, variable
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:23.