Foros del Web » Programando para Internet » PHP »

problema al modificar daos en mysql!!

Estas en el tema de problema al modificar daos en mysql!! en el foro de PHP en Foros del Web. hola. Que en vez de modificarme un registro entero(todos sus campos o los que yo cambie no tienen por que ser todos) no me modifica ...
  #1 (permalink)  
Antiguo 08/07/2010, 13:05
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
problema al modificar daos en mysql!!

hola.

Que en vez de modificarme un registro entero(todos sus campos o los que yo cambie no tienen por que ser todos) no me modifica ese registro si no que me lo duplica con los cambios...pongo el codigo para que me digais que estoy haciendo mal..

(será por que no e usado el where en la sentencia mysql en el php?).


el proceso es el siguiente.

1º selecciono un distribuidor para que me carge los datos en el formulario

2º modifico lo que quiera del formulario para modificar ese distribuidor

3º le doy al boton enviar del formu y entonces se me deberia de cambiar ese distribuidor.
Código:
<div id=capaexpansion3>
<h2>Modificar Distribuidor</h2>
<form method="post" action="">


<ul>
<li>Selecciona un Distribuidor :
<?php
//la sintaxis de sql varia de como estes conectándote a la base de datos
$conexion= mysql_connect("localhost", "root", "");

mysql_select_db("abcerotica", $conexion);
$SQL = "SELECT nombre FROM distribuidor ORDER BY nombre ASC";
$RES = mysql_query($SQL,$conexion);

//abres el select
echo "<select name='distribuidor' id='proveedor'><option value=''>Seleccione un distribuidor</option>";

while($row = mysql_fetch_row($RES)){
	//por cada proveedor que encuentre lo muestra en la lista desplegable
	echo "<option value='". $row[0] ."'>". $row[0] . "</option>";
	
}
//cierras el select
echo "</select>"; 
?>
</li>

<li><input type="submit" name="enviarmodificacion" value="Enviar" id="boton">

</li>
</ul>
</form>
<?php if (isset($_POST["enviarmodificacion"])) {
	$dato=$_POST['distribuidor'];
	$conexion= mysql_connect("localhost", "root", "");
	
	mysql_select_db("abcerotica", $conexion);
	
	
	$SQL = "select * from distribuidor where nombre like '%".$dato."%'";
	$RES = mysql_query($SQL,$conexion);
	
	while ($fila= mysql_fetch_assoc($RES)){
		$campo1=$fila['nombre']; 
		$campo2=$fila['email']; 
		$campo3=$fila['telefono']; 
		$campo4=$fila['comentario']; 
		
	}
}
?>

<form method="post" action="">
<ul>

<li>	Nombre: <input type="text" name="nombre" id="nombre3" value="<?php echo $campo1?>" size="40"></li>
	
	<li>Email: <input type="text" name="email" id="email3"  value="<?php echo $campo2?>" size="40"></li>
	
	
	<li>Telefono: <input type="text" name="telefono" id="telefono3" value="<?php echo $campo3?>" size="9"></li>


<li>Comentarios:

<textarea cols="30" rows="7" name="comentario" id="comentarios3"> <?php echo $campo4?></textarea>	
</li>


<li>

<input type="submit" name="enviar1" value="Enviar"id="enviar3">
</li>
</ul>
</form>
<?php if (isset($_POST["enviar1"])) {
	$nombre=$_POST['nombre'];
	$email=$_POST['email'];
	$telefono=$_POST['telefono'];
	$comentario=$_POST['comentario'];
	
	
	$conexion= mysql_connect("localhost", "root", "");
	
	mysql_select_db("abcerotica", $conexion);
	
	$sql = "UPDATE distribuidor SET nombre='$nombre', email='$email',".
		"telefono='$telefono', comentario='$comentario'";
	$result = mysql_query($sql);
}else{
	echo "no se a modificado nada";
}

	?>
</div>
  #2 (permalink)  
Antiguo 08/07/2010, 13:25
 
Fecha de Ingreso: octubre-2009
Mensajes: 53
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: problema al modificar daos en mysql!!

debe ser por que lo que dices, no usas where, deberias poner el update para verlo...
  #3 (permalink)  
Antiguo 08/07/2010, 13:33
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

$sql = "UPDATE distribuidor SET nombre='$nombre', email='$email',".
"telefono='$telefono', comentario='$comentario'";
  #4 (permalink)  
Antiguo 08/07/2010, 13:52
 
Fecha de Ingreso: octubre-2009
Mensajes: 53
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: problema al modificar daos en mysql!!

clarin ! where nombre ='$nombre', deberia de funcionar siempre y cuando no tengas repetido el nombre este sea un campo unico en tu tabla osi no, ahi entrara en conflicto.

y si quieres updatear un solo registro de la tabla solo le dices cual...

Código SQL:
Ver original
  1. $sql = "UPDATE distribuidor SET nombre='$nombre' where nombre='$nombre' ";
  #5 (permalink)  
Antiguo 08/07/2010, 14:24
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

gracias por responder gastronemen pero me sigue duplicando el distribuidor. me realiza cambios pero me duplica el registro (con todos sus campos).......... ya he incluido el where pero ni con esas me funciona bien el modificar registros ....
  #6 (permalink)  
Antiguo 08/07/2010, 14:30
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

El problema es que si modificás el Nombre en el formulario no vas a encontrar el registro.
Lo que te conviene hacer es:

1) agregar un campo id (PRIMARY KEY, autoincremental) en la tabla.
2) poner en el formulario un input tipo hidden con este valor.
3) usar en el UPDATE un WHERE con el id. Sería así:

Código PHP:
$sql="UPDATE distribuidor SET nombre='$nombre', ... WHERE id=$id" 
__________________
Saludos.

Gustavo
  #7 (permalink)  
Antiguo 08/07/2010, 14:40
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

el campo id incremental ya lo tengo puesto en la tabla mysql pero ponerlo en el formulario como? un input hidden ke es?
  #8 (permalink)  
Antiguo 08/07/2010, 14:46
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

Primero:

Código PHP:
$campo0=$fila['id']; 
Después:

Código HTML:
<input type="hidden" name="id" value="<?php echo $campo0; ?>" /> 
Edito:
Un campo "hidden" funciona como un campo text pero el usuario no lo puede ver ni modificar.
__________________
Saludos.

Gustavo
  #9 (permalink)  
Antiguo 08/07/2010, 14:52
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

gracias tio pero me lo sigue duplicando ya le e metido el input hidden y la variable id ke recoge le campo id incremental....a lo mejor estoy haciendo algo mas malamente en todo el proceso!!!
  #10 (permalink)  
Antiguo 08/07/2010, 14:56
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

Agregaste primero: $id=$_POST['id']; y luego "WHERE id=$id" en el UPDATE?

Si querés pegá el código como te quedó hasta ahora y vemos.
__________________
Saludos.

Gustavo
  #11 (permalink)  
Antiguo 08/07/2010, 15:02
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

Código PHP:
<?php if (isset($_POST["enviar1"])) {
    
$id=$_POST['id_distri'];
    
$nombre=$_POST['nombre'];
    
$email=$_POST['email'];
    
$telefono=$_POST['telefono'];
    
$comentario=$_POST['comentario'];
    
    
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    
$sql "UPDATE distribuidor SET  email='$email',".
        
"telefono='$telefono', comentario='$comentario' where nombre='$id'";
    
$result mysql_query($sql);
}else{
    echo 
"no se a modificado nada";
}

    
?>
  #12 (permalink)  
Antiguo 08/07/2010, 15:26
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

Donde dice where nombre='$id' poné: id_distri='$id' o como se llame el campo autoincremental.
__________________
Saludos.

Gustavo
  #13 (permalink)  
Antiguo 08/07/2010, 15:52
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

ya e cambiado eso...no me habia dado cuenta de ese fallo!!!! pero me sigue DUPLICANDO!!!!! joder que coño estaré haciendo mal!!!!
  #14 (permalink)  
Antiguo 08/07/2010, 16:03
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

me e dado cuenta de una cosa cuando le doy a seleccionar el menu modificar se me abren los dos formularios el de seleccionar el distri para cargar los datos a modificar y el formulario mismo donde se cargan los datos que voy a modificar..y en el script de php donde tengo el codigo para moficiar tengo un else echo "no se a modificado nada o algo asi" pues se me ejecuta tambien si haberle dado aun al boton enviar del formu para realizar los cambios..

es decir se me ejecuta todo el bloque de codigo de la seccion enviar al pulsar en el checkbox del menu para elegir la opcion cambiar.......será esto lo que me hace que se me duplique el distribuidor?
  #15 (permalink)  
Antiguo 08/07/2010, 16:03
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

No puede ser, ¿Estás seguro que no tenés dos registros con el mismo id de antemano? esto no se debería suceder si el campo id está definido como PRIMARY KEY.

Otra cosa, en la primer parte del código donde tenés el select para seleccionar el proveedor deberías usar como value el id y luego cuando haces la consulta para mostrar el formulario volvé a utilizar el WHERE con el id.

Modificá esto y pegá todo el código completo si querés.
__________________
Saludos.

Gustavo
  #16 (permalink)  
Antiguo 08/07/2010, 16:14
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

Código PHP:
<?php
//la sintaxis de sql varia de como estes conectándote a la base de datos
$conexionmysql_connect("localhost""root""");

mysql_select_db("abcerotica"$conexion);
$SQL "SELECT id_distri FROM distribuidor ORDER BY id_distri ASC";
$RES mysql_query($SQL,$conexion);

//abres el select
echo "<select name='distribuidor' id='proveedor'><option value=''>Seleccione un distribuidor</option>";

while(
$row mysql_fetch_row($RES)){
    
//por cada proveedor que encuentre lo muestra en la lista desplegable
    
echo "<option value='"$row[0] ."'>"$row[0] . "</option>";
    
}
//cierras el select
echo "</select>"
?>
Código PHP:
<?php if (isset($_POST["enviarmodificacion"])) {
    
$dato=$_POST['distribuidor'];
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    
    
$SQL "select * from distribuidor where id_distri like '%".$dato."%'";
    
$RES mysql_query($SQL,$conexion);
    
    while (
$filamysql_fetch_assoc($RES)){
        
$campo0=$fila['id_distri']; 
        
$campo1=$fila['nombre']; 
        
$campo2=$fila['email']; 
        
$campo3=$fila['telefono']; 
        
$campo4=$fila['comentario']; 
        
    }
}
?>

Código PHP:
<?php if (isset($_POST["enviar1"])) {
    
$id=$_POST['id_distri'];
    
$nombre=$_POST['nombre'];
    
$email=$_POST['email'];
    
$telefono=$_POST['telefono'];
    
$comentario=$_POST['comentario'];
    
    
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    
$sql "UPDATE distribuidor SET  email='$email',".
        
"telefono='$telefono', comentario='$comentario' where id_distri='$id'";
    
$result mysql_query($sql);
}else{
    echo 
"no se a modificado nada";
}

    
?>

aqui tienes el codigo pero ya te digo me lo sigue haciendo
  #17 (permalink)  
Antiguo 08/07/2010, 16:29
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

Te voy a corregir varias cositas, pero nada de esto es lo que genera el problema.
Chequea los registros de la base de datos, tiene que haber un problema ahí.
También faltaría ver como quedó el código de los formularios pero no creo que el problema esté ahí.

Código PHP:
<?php
//la sintaxis de sql varia de como estes conectándote a la base de datos
$conexionmysql_connect("localhost""root""");

mysql_select_db("abcerotica"$conexion);
$SQL "SELECT id_distri, nombre FROM distribuidor ORDER BY id_distri ASC";
$RES mysql_query($SQL,$conexion); //Corrección aquí!!!

//abres el select
echo "<select name='distribuidor' id='proveedor'><option value=''>Seleccione un distribuidor</option>";

while(
$row mysql_fetch_row($RES)){
    
//por cada proveedor que encuentre lo muestra en la lista desplegable
    
echo "<option value='"$row['id_distri'] ."'>"$row['nombre'] . "</option>"//Corrección aquí!!!
    
}
//cierras el select
echo "</select>"
?>
Código PHP:
<?php if (isset($_POST["enviarmodificacion"])) {
    
$dato=$_POST['distribuidor'];
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    
    
$SQL "select * from distribuidor where id_distri='$dato'"//Corrección aquí!!!
    
$RES mysql_query($SQL,$conexion);
    
    while (
$filamysql_fetch_assoc($RES)){
        
$campo0=$fila['id_distri']; 
        
$campo1=$fila['nombre']; 
        
$campo2=$fila['email']; 
        
$campo3=$fila['telefono']; 
        
$campo4=$fila['comentario']; 
        
    }
}
?>
Código PHP:
<?php if (isset($_POST["enviar1"])) {
    
$id=$_POST['id_distri'];
    
$nombre=$_POST['nombre'];
    
$email=$_POST['email'];
    
$telefono=$_POST['telefono'];
    
$comentario=$_POST['comentario'];
    
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    
$sql "UPDATE distribuidor SET nombre='$nombre', email='$email',".
        
"telefono='$telefono', comentario='$comentario' where id_distri='$id'"//Corrección aquí!!!
    
$result mysql_query($sql);
}else{
    echo 
"no se a modificado nada";
}
    
?>
__________________
Saludos.

Gustavo
  #18 (permalink)  
Antiguo 08/07/2010, 17:20
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

como chequeo los registros de la base de datos???.

paso a ponerte el codigo del formulario para ver si el fallo esta ahi.

Código:
<form method="post" action="">
<ul>
<li><input type="hidden" name="id" value="<?php echo $campo0; ?>" >                             </li>
<li>	Nombre: <input type="text" name="nombre" id="nombre3" value="<?php echo $campo1?>" size="40"></li>
	
	<li>Email: <input type="text" name="email" id="email3"  value="<?php echo $campo2?>" size="40"></li>
	
	
	<li>Telefono: <input type="text" name="telefono" id="telefono3" value="<?php echo $campo3?>" size="9"></li>


<li>Comentarios:

<textarea cols="30" rows="7" name="comentario" id="comentarios3"> <?php echo $campo4?></textarea>	
</li>


<li>

<input type="submit" name="enviar1" value="Enviar"id="enviar3">
</li>
</ul>
</form>
  #19 (permalink)  
Antiguo 08/07/2010, 17:34
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

El formulario parece estar bien.
Para ver la db usá phpMyAdmin, si instalaste XAMPP o WAMPP deberías tenerlo.
__________________
Saludos.

Gustavo
  #20 (permalink)  
Antiguo 09/07/2010, 06:15
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

ah ya se a lo ke te refieres. sisi , tengo instalado el wamp y ya e comprobao que la base de datos funciona........ese no es problema...
  #21 (permalink)  
Antiguo 09/07/2010, 08:38
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

Yo lo que te digo es que revises los registros de la base de datos para ver si no tienes registros duplicados.

¿Cómo sabes que se te duplica el registro?

¿Se crea un registro con otra id?
__________________
Saludos.

Gustavo
  #22 (permalink)  
Antiguo 09/07/2010, 13:13
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

si se me crea un registro con otra id pero con los valores ke yo le alla cambiado en el formulario cambiados.......
  #23 (permalink)  
Antiguo 09/07/2010, 13:16
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

Eso es imposible que pase con el código que mostraste aquí hasta ahora.
Tiene que haber en alguna otra parte del código que no aparece aquí, en algún archivo que esté como include, alguna consulta MySQL con un INSERT.
__________________
Saludos.

Gustavo
  #24 (permalink)  
Antiguo 09/07/2010, 13:19
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: problema al modificar daos en mysql!!

paso a ponerte el codigo entero de la pagina index.php

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>abc erotica</title>
<link href="index.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
	background-color:#ffd68e;
 	
}

-->
</style>

<script>
function expandir_formulariox(){
if (document.f2.personas.value == "0"){
	xDisplay('capaexpansionx', 'none')
	xDisplay('capaexpansion2x', 'none')
	xDisplay('capaexpansion3x', 'none')
	xDisplay('capaexpansion4x', 'none')
	xDisplay('capaexpansion5x', 'none')
 }
if (document.f2.personas.value == "1"){
	xDisplay('capaexpansionx', 'block')
	xDisplay('capaexpansion2x', 'none')
	xDisplay('capaexpansion3x', 'none')
	xDisplay('capaexpansion4x', 'none')
	xDisplay('capaexpansion5x', 'none')
 }



 if (document.f2.personas.value == "2"){
	xDisplay('capaexpansionx', 'block')
	xDisplay('capaexpansion2x', 'block')
	xDisplay('capaexpansion3x', 'none')
	xDisplay('capaexpansion4x', 'none')
	xDisplay('capaexpansion5x', 'none')
 }
 if (document.f2.personas.value == "3"){
	xDisplay('capaexpansionx', 'block')
	xDisplay('capaexpansion2x', 'block')
	xDisplay('capaexpansion3x', 'block')
	xDisplay('capaexpansion4x', 'none')
	xDisplay('capaexpansion5x', 'none')
 }
 if (document.f2.personas.value == "4"){
	xDisplay('capaexpansionx', 'block')
	xDisplay('capaexpansion2x', 'block')
	xDisplay('capaexpansion3x', 'block')
	xDisplay('capaexpansion4x', 'block')
	xDisplay('capaexpansion5x', 'none')
 }
 if (document.f2.personas.value == "5"){
	xDisplay('capaexpansionx', 'block')
	xDisplay('capaexpansion2x', 'block')
	xDisplay('capaexpansion3x', 'block')
	xDisplay('capaexpansion4x', 'block')
	xDisplay('capaexpansion5x', 'block')
 }

}



    </script>

<script type='text/javascript' src='formexp.js'></script>
<script>
function expandir_formulario(){
 if (document.f1.expandir.checked){
	xDisplay('capaexpansion', 'block')
 }else{
	xDisplay('capaexpansion', 'none')
 }

}

</script>
<script>
function expandir_formulario2(){
 if (document.f1.expandir2.checked){
	xDisplay('capaexpansion2', 'block')
 }else{
	xDisplay('capaexpansion2', 'none')
 }

}

</script>

<script>
function expandir_formulario3(){
 if (document.f1.expandir3.checked){
	xDisplay('capaexpansion3', 'block')
 }else{
	xDisplay('capaexpansion3', 'none')
 }

}

</script>



</head>

<body>

<div id="contenedor">
<div id="logo">
</div>
<div id="menu">
<ul>
<li><a href="index.php">Distribuidores</a></li>
<li><a href="seccionproveedor.php">Proveedores</a></li>
<li><a href="seccionpresupuesto.php">Gastos</a></li>
<li><a href="index.php">Ingresos</a></li>
</ul>
</div>
<div id="contenido">
<div id="menucheck">
<form name=f1>
<ul>
<li  class="menucheked">Distribuidor(insertar):<input type="checkbox" name="expandir" value="1" onClick="expandir_formulario()"></li>
<li class="menucheked">Distribuidor(Buscar):<input type="checkbox" name="expandir2" value="1" onClick="expandir_formulario2()"></li>
<li class="menucheked">Distribuidor(Modificar):<input type="checkbox" name="expandir3" value="1" onClick="expandir_formulario3()"></li>
<li class="menucheked">Distribuidor(Borrar):<input type="checkbox" name="expandir4" value="1" onClick="expandir_formulario4()"></li>
</ul>
</form>

<div id=capaexpansion>
<h2>Añadir Distribuidor</h2>
<form method="post" action="">
<ul>

<li>	Nombre: <input type="text" name="nombre" id="nombre" size="40"></li>
	
	<li>Email: <input type="text" name="email" id="email" size="40"></li>
	
	
	<li>Telefono: <input type="text" name="telefono" id="telefono" size="9"></li>


<li>Comentarios:

<textarea cols="30" rows="7" name="comentario" id="comentarios"> </textarea>	
</li>


<li>

<input type="submit" name="enviar1" value="Enviar"id="enviar">
</li>
</ul>
</form>
<?php if (isset($_POST["enviar1"])) {
	
	
	$ssql = "insert into distribuidor (nombre, email, telefono, comentario) values ('" . $_POST["nombre"]."','" . $_POST["email"]."','" . $_POST["telefono"]."','" . $_POST["comentario"]."' )";
	$conexion= mysql_connect("localhost", "root", "");
	
	mysql_select_db("abcerotica", $conexion);
	
	if (mysql_query($ssql, $conexion)){
		echo "sentencia ingresada!";
	}else{
		echo "no inserte nada!" ;
	}
	
	
	
	
	
}

?>

</div>
<div id=capaexpansion2>
<form   method="post">

<ul>
<li>Selecciona un Distribuidor :
<?php
//la sintaxis de sql varia de como estes conectándote a la base de datos
$conexion= mysql_connect("localhost", "root", "");

mysql_select_db("abcerotica", $conexion);
$SQL = "SELECT nombre FROM distribuidor ORDER BY nombre ASC";
$RES = mysql_query($SQL,$conexion);

//abres el select
echo "<select name='distribuidor' id='proveedor'><option value=''>Seleccione un distribuidor</option>";

while($row = mysql_fetch_row($RES)){
	//por cada proveedor que encuentre lo muestra en la lista desplegable
	echo "<option value='". $row[0] ."'>". $row[0] . "</option>";
	
}
//cierras el select
echo "</select>"; 
?>
</li>

<li><input type="submit" name="enviar" value="Enviar" id="boton">
</li>
</ul>
</form>

<?php if (isset($_POST["enviar"])) {
	
	$dato=$_POST['distribuidor'];
	$conexion= mysql_connect("localhost", "root", "");
	
	mysql_select_db("abcerotica", $conexion);
	
	
		$SQL = "select * from distribuidor where nombre like '%".$dato."%'";
		$RES = mysql_query($SQL,$conexion);
		
	while ($fila= mysql_fetch_assoc($RES)){
			
			echo "<ul><li><b>Nombre:</b></li>" .$fila['nombre'];
			echo "<li><b>email:</b></li>" .$fila['email'];
			echo "<li><b>telefono:</b></li>" .$fila['telefono'];
			echo "<li><b>comentarios:</b></li></ul>" .$fila['comentario'];
			
			echo "<p>";
		}
		
		
		
		
	}

?> 
</div>
<div id=capaexpansion3>
<h2>Modificar Distribuidor</h2>
<form method="post" action="">


<ul>
<li>Selecciona un Distribuidor :
<?php
//la sintaxis de sql varia de como estes conectándote a la base de datos
$conexion= mysql_connect("localhost", "root", "");

mysql_select_db("abcerotica", $conexion);
$SQL = "SELECT id_distri FROM distribuidor ORDER BY id_distri ASC";
$RES = mysql_query($SQL,$conexion);

//abres el select
echo "<select name='distribuidor' id='proveedor'><option value=''>Seleccione un distribuidor</option>";

while($row = mysql_fetch_row($RES)){
	//por cada proveedor que encuentre lo muestra en la lista desplegable
	echo "<option value='". $row[0] ."'>". $row[0] . "</option>";
	
}
//cierras el select
echo "</select>"; 
?>
</li>

<li><input type="submit" name="enviarmodificacion" value="Enviar" id="boton">

</li>
</ul>
</form>
<?php if (isset($_POST["enviarmodificacion"])) {
	$dato=$_POST['distribuidor'];
	$conexion= mysql_connect("localhost", "root", "");
	
	mysql_select_db("abcerotica", $conexion);
	
	
	$SQL = "select * from distribuidor where id_distri like '%".$dato."%'";
	$RES = mysql_query($SQL,$conexion);
	
	while ($fila= mysql_fetch_assoc($RES)){
		$campo0=$fila['id_distri']; 
		$campo1=$fila['nombre']; 
		$campo2=$fila['email']; 
		$campo3=$fila['telefono']; 
		$campo4=$fila['comentario']; 
		
	}
}
?>

<form method="post" action="">
<ul>
<li><input type="hidden" name="id" value="<?php echo $campo0; ?>" >                             </li>
<li>	Nombre: <input type="text" name="nombre" id="nombre3" value="<?php echo $campo1?>" size="40"></li>
	
	<li>Email: <input type="text" name="email" id="email3"  value="<?php echo $campo2?>" size="40"></li>
	
	
	<li>Telefono: <input type="text" name="telefono" id="telefono3" value="<?php echo $campo3?>" size="9"></li>


<li>Comentarios:

<textarea cols="30" rows="7" name="comentario" id="comentarios3"> <?php echo $campo4?></textarea>	
</li>


<li>

<input type="submit" name="enviar1" value="Enviar"id="enviar3">
</li>
</ul>
</form>
<?php if (isset($_POST["enviar1"])) {
	$id=$_POST['id_distri'];
	$nombre=$_POST['nombre'];
	$email=$_POST['email'];
	$telefono=$_POST['telefono'];
	$comentario=$_POST['comentario'];
	
	
	$conexion= mysql_connect("localhost", "root", "");
	
	mysql_select_db("abcerotica", $conexion);
	
	$sql = "UPDATE distribuidor SET  email='$email',".
		"telefono='$telefono', comentario='$comentario' where id_distri='$id'";
	$result = mysql_query($sql);
}else{
	echo "no se a modificado nada";
}

	?>
</div>
</div>
</div>
</div>

</body>
</html>
  #25 (permalink)  
Antiguo 09/07/2010, 13:26
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: problema al modificar daos en mysql!!

Sí!!!!!!!!!!!!!!! ahí está el error:

Te está entrando a este if que está al principio y ahí se crea el registro:

Código PHP:
<?php if (isset($_POST["enviar1"])) {
    
    
    
$ssql "insert into distribuidor (nombre, email, telefono, comentario) values ('" $_POST["nombre"]."','" $_POST["email"]."','" $_POST["telefono"]."','" $_POST["comentario"]."' )";
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    if (
mysql_query($ssql$conexion)){
        echo 
"sentencia ingresada!";
    }else{
        echo 
"no inserte nada!" ;
    }
    
    
    
    
    
}
?>
Ahora sí, estoy seguro que con esto lo solucionas.
__________________
Saludos.

Gustavo
  #26 (permalink)  
Antiguo 12/07/2010, 13:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 4
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: problema al modificar daos en mysql!!

Rufus, fíjate que tienes dos 'inputs' con el mismo nombre (name), que son éste al principio:

<input type="submit" name="enviar1" value="Enviar"id="enviar">


...y éste al final:

<input type="submit" name="enviar1" value="Enviar"id="enviar3">


Como ves, en ambos pones: name="enviar1"

Por eso, lo que parece estar ocurriendo, tal y como dice Gustavo, es que cuando haces if (isset($_POST["enviar1"])) no se hace UPDATE sino INSERT, y por eso te duplica el registro en la BD.

La solución sería cambiar uno de estos nombres, y actualizarlo en su 'if' correspondiente.

Etiquetas: modificar, mysql
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 02:11.