Foros del Web » Programando para Internet » PHP »

Editar-Eliminar registros en Mysql desde consulta de php

Estas en el tema de Editar-Eliminar registros en Mysql desde consulta de php en el foro de PHP en Foros del Web. Buenas noches, tengo una tabla en mysql "empleado" con la siguiente estructura codigo, nombre, telefono, direccion. hago una consulta con php y muestro el resultado ...
  #1 (permalink)  
Antiguo 19/08/2010, 22:24
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Editar-Eliminar registros en Mysql desde consulta de php

Buenas noches,

tengo una tabla en mysql "empleado" con la siguiente estructura codigo, nombre, telefono, direccion. hago una consulta con php y muestro el resultado en un <table> bien organizado algo asi

nombres telefono direccion acciones
nombre1 tel1 dir1 editar eliminar
nombre2 tel2 dir2 editar eliminar
nombre3 tel3 dir3 editar eliminar
nombre4 dir4 editar eliminar

mi idea es que al dar clic en editar ó eliminar se ejecute determinada accion, el problema es que no como decirle a mysql cual es el registro que enrealidad voy a eliminar/editar ya que los datos mostrados anteriormente son el resultado de una consulta.

Los campos que quiero mostrar al usuaro son: nombre-telefono-direccion.

Por favor quiero saber si esta es la forma como se trabaja y si no me gustaria me explicaran como.

ya que despues de solucionado esto, quiero que cuando la persona de clic en "editar" los campos anteriores se combiertan en cajas de texto para poder ser editadas.

gracias
  #2 (permalink)  
Antiguo 19/08/2010, 23:38
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

tendrías que ponerle al los links el id de la entrada, por ejemplo si tenés una entrada con
nombre----juan
telefono---555 5555
direccion----peron 555

tambien deberías tener una id, por ejemplo

id----1
nombre----juan
telefono---555 5555
direccion----peron 555

cada entrada debería tener su id, la id se usa para identificar una entrada,
asi sabrás de quien son los datos, por ejemplo la id 1 pertenece a juan, la id 2 a pedro y asi sucesivamente, entonces

<a href="archivo.php?id=<?php echo $resultado['id'];?>">eliminar</a>


ahí le estás pasando el numero de id por el metodo get, al archivo php que lo eliminará, en ese archivo recibes la id asi: $id=$_GET['id'];


entonces generas tu consulta sobre esa id, pero CUIDADO porque el metodo GET pasa las variables por la url ej. el usuario verá el la barra de direccion algo asi:

http://www.tuweb.com/archivo.php?id=1

y si el user es malicioso y coloca esto

http://www.tuweb.com/archivo.php?id=2

entonces se borrará la entrada que contenga el numero 2 en el campo id de la tabla de la base de datos.


Se recomienda pasar ese tipo de variables por POST o sinó hacer otras comprovaciones antes de borrar, por ejemplo si el nombre de usuario es XXX entonces borrar , sinó no... bueno eso lo decidís vos
__________________
la la la
  #3 (permalink)  
Antiguo 20/08/2010, 06:52
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

Cita:
Iniciado por truman_truman Ver Mensaje

cada entrada debería tener su id, la id se usa para identificar una entrada,
asi sabrás de quien son los datos, por ejemplo la id 1 pertenece a juan, la id 2 a pedro y asi sucesivamente, entonces

<a href="archivo.php?id=<?php echo $resultado['id'];?>">eliminar</a>


ahí le estás pasando el numero de id por el metodo get, al archivo php que lo eliminará, en ese archivo recibes la id asi: $id=$_GET['id'];
Como te habia comentado solo quiero mostrar los datos basicos y no los codigos a los usuarios, por otra parte la variable $resultado['id']; si obtiene el resultado de cada registro consultado al momento de dar clic en cualquiera de estos ?

es decir si el resultado es

id nom
1 nom1
5 nom2
7 nom3
8 nom4
9 nom7

si doy clic en el registro 2 $resultado['id']; es 5 ?
o si cliqueo en el registro 3 $resultado['id']; devuelve 7 ?


gracias.
  #4 (permalink)  
Antiguo 20/08/2010, 07:04
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

Basandome en esto..:
Cita:
id nom
1 nom1
5 nom2
7 nom3
8 nom4
9 nom7

si doy clic en el registro 2 $resultado['id']; es 5 ?
o si cliqueo en el registro 3 $resultado['id']; devuelve 7 ?
Si das click en el id 5, te aparece nom2. Si das en la id 7, aparece nom3.

Saludos,
  #5 (permalink)  
Antiguo 20/08/2010, 07:14
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

gracias,
cuando hablo de id me refiero al codigo del empleado mas no al identificador de la etiqueta. supongo que el resultado es el mismo asi como devuelve nom1 puede devolver el codigo (id) por favor me corrigen.

entonces en definitiva queda asi ?

<a href="archivo.php?id=<?php echo $resultado['id'];?>">eliminar</a>.

de todas formas lo voy a probar y les cuento.

recuerden que no quiero mostrar el codigo al usuario final, entonces cual codigo paso en $resultado['id'] ?

hay otra forma de hacer esto ?
  #6 (permalink)  
Antiguo 20/08/2010, 09:20
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

buenas!!

en mi poca experiencia y hablando de seguridad cuando eh tenido que pasar variables por GET y no deseo que me hagan lo que menciona el compañero Truman, lo que hago es codificarlo con base64 y al recibirlo de des-encripto y asunto arreglado

aunque el usuario vea por url la direccion y aunque le cambie no podra atinarle al encriptamiento correcto y obvio que marcara error, ahi es donde implementas ya tus validaciones correspondientes y asunto arreglado

espero haberte ayudado

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #7 (permalink)  
Antiguo 20/08/2010, 09:54
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

No logro dar con esto.

lo que me quieren decir es que le asigne como nombre de la etiqueta el codigo de cada registro consultado ?

Asi ?

cod-nom
1 - nom1 - <a id=$rowEmp['cod'] onclick='xajax_mifuncion(nombreid)>eliminar</a>

5 - nom2 - <a id=$rowEmp['cod'] onclick='xajax_mifuncion(nombreid)>eliminar</a>
7 - nom3 - <a id=$rowEmp['cod'] onclick='xajax_mifuncion(nombreid)>eliminar</a>

es asi, porque no he podido pasar el valor de esta manera $resultado['id'];

disculpen mi ignorancia.

gracias
  #8 (permalink)  
Antiguo 20/08/2010, 10:22
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

no mira...

en tu tabla tienes que crear el campo ID que sera el que relacione tu base
por ejemplo

ID, Nombre, Direccion, etc....

ahora al hacer la modificacion o eliminacion vas a compara el ID por ejemplo asi

if (ID == $resultado['id']; ) {
// aqui pones lo que quieres que haga
}

ahora al pasar el ID por GET y para que no se vea lo encriptas con base64
por ejemplo asi:
$id_a_modificar_eliminar = base64_encode($resultado['id']; )

y en donde recibes asi:
$id_a_modificar_eliminar = base64_decode($resultado['id']; )

obviamente tienes que validar y todo lo correspondiente a tu seguridad de la base de datos

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #9 (permalink)  
Antiguo 20/08/2010, 10:40
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

SerÍa bueno que postees el codigo que haz hecho para que lo veamos
__________________
la la la
  #10 (permalink)  
Antiguo 20/08/2010, 10:54
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

Cita:
Iniciado por HalconVigia Ver Mensaje
no mira...

en tu tabla tienes que crear el campo ID que sera el que relacione tu base
por ejemplo

ID, Nombre, Direccion, etc....

ahora al hacer la modificacion o eliminacion vas a compara el ID por ejemplo asi

if (ID == $resultado['id']; ) {
// aqui pones lo que quieres que haga
}

ahora al pasar el ID por GET y para que no se vea lo encriptas con base64
por ejemplo asi:
$id_a_modificar_eliminar = base64_encode($resultado['id']; )

y en donde recibes asi:
$id_a_modificar_eliminar = base64_decode($resultado['id']; )

obviamente tienes que validar y todo lo correspondiente a tu seguridad de la base de datos

un saludo!!
muchas gracias amigo HalconVigia por el interes,

Entiendo toda la parte de encriptar y desencriptar la informacion por la seguridad, pero en mi caso no tengo problemas porque yo la informacion la voy a enviar a una funcion xajax en el mismo documento. El problema aqui es que no se pasar el parametro a la funcion xajax del campo o el codigo del registro que voy a eliminar suponiendo que este codigo este una celda generada anteriormente por una consulta.

que hace exactamente la variable $resultado['id'] ?
ese ['id'] a que hace referencia ?
$resultado es una variable cualquiera ?

como les dije no voy a pasar los valores por url si no a una funcion xajax en el mismo documento.

les agradezco enormemente su ayuda.

gracias quedo atento a sus respuestas.
  #11 (permalink)  
Antiguo 20/08/2010, 11:00
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

Ya te lo dijimos, el id es el campo que identifica a una entrada, una entrada es cuando elguien se registra por ejemplo, untroduce un nombre de usuario, un mail y una contraseña, entonces en esa entrada tenés, por ejemplo

nombre juan
email [email protected]
contraseña 123456

ahora como haces para encontrar la emtrada de juan? muy facil agregando un campo a la tabla, que se llama id, este campo es autoincrementable, es decir que si juan tiene el numero 1, el proximo que se registre tendrá el numero 2.

Como tenés hecha la tabla de tu base?
__________________
la la la
  #12 (permalink)  
Antiguo 20/08/2010, 11:13
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

Cita:
Iniciado por truman_truman Ver Mensaje
Ya te lo dijimos, el id es el campo que identifica a una entrada, una entrada es cuando elguien se registra por ejemplo, untroduce un nombre de usuario, un mail y una contraseña, entonces en esa entrada tenés, por ejemplo

nombre juan
email [email protected]
contraseña 123456

ahora como haces para encontrar la emtrada de juan? muy facil agregando un campo a la tabla, que se llama id, este campo es autoincrementable, es decir que si juan tiene el numero 1, el proximo que se registre tendrá el numero 2.

Como tenés hecha la tabla de tu base?
muchas gracias amigo, que pena pero parece que no me estoy explicando bien, mi tabla en mysql esta bien diseñada tiene codigo, nombre, direccion como lo dije en un principio, este codigo es el que identifica a cada quien es autoincrem y adenas llave primaria, el problema no esta alli.

yo en php hago una consulta a esa tabla (empleado), y muestro el resultado al usuario en un <table>....</table> y lo que quiero es que el usuario cuando de clic en uno de los registros de la consulta (<table>....</table>), se ejecute un evento que enive a una funcion que tengo en xajax el codigo para poder eliminar el registro de la tabla de mysql a partir del parametro recibido.

espero que ahora si halla sido claro.

gracias.
  #13 (permalink)  
Antiguo 20/08/2010, 11:22
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

OK ahora entiendo, osea que el id sería el codigo del usuario, bueno ese codigo es el que tenés que enviarle a la funcion, $resultado['codigo'] ;

habría que ver esa funcion, pero seguramente debería buscar el el registro que sea igual al codigo enviado en $resultado['codigo'] ;... asique no se entonces cual es el problema.
__________________
la la la
  #14 (permalink)  
Antiguo 20/08/2010, 12:09
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

ok gracias, ahora me explique bien, como ley un dia en uno de estos foros la calidad de las respuestas dependen de la calidad de las preguntas. jeje


Bueno, el resultado de la consulta se la muestro al usuario final en etiquetas <table>....</table> aqui me muestra un listado como este


codigo nombre etc acciones
00001 nom1 ....... eliminar
00002 nom7 ....... eliminar
00003 nom3 ....... eliminar
00004 nom6 ....... eliminar
00005 nom9 ....... eliminar

lo que esta en rojo son <td><a href='#' onclick="xajax_mifuncion(codigo)">eliminar</a></td> que he agregado al lado de cada registro que me ha arrojado la consulta con un vinculo "eliminar" como lo ven.

la idea es que cuando el usuario de clic en eliminar, en este mismo evento "onclick" se envie a la funcion que tengo en xajax el codigo(parametro) del <tr>...</tr> mostrado al usuario. como les dije todo esto lo hago en el mismo documento por ende no uso el _GET.

mi problema es que no se como pasar el codigo a la funcion por ejemplo algo asi

en html
<a href='#' onclick="xajax_mifuncion(codigo)">eliminar</a> cada uno de los registros que me mostro la consulta le agrego uno <a> como este.

en xajax

function mifuncion($cod){
pregunto si existe el codigo en mysql y elimino.
}

basicamente es eso.

muchas gracias.
  #15 (permalink)  
Antiguo 20/08/2010, 12:13
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

será asi?

<a href='#' onclick="xajax_mifuncion(<?php echo $resultado['codigo']; ?>)">eliminar</a> cada uno de los registros que me mostro la consulta le agrego uno <a>
__________________
la la la
  #16 (permalink)  
Antiguo 20/08/2010, 12:17
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

ya pruebo y te comento. gracias
  #17 (permalink)  
Antiguo 20/08/2010, 12:54
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

no he logrado pasar el parametro del <td></td>, pero si escribo el codigo manualmente en la funcion si me elimina el registro en mysql, el problema sigue siendo el mismo como paso el parametro.

por eso mi pregunta arriba.
$resultado['codigo']; quien es codigo ? el nombre del <td> ? o el atributo en la tabla mysql ? porque en ninguno de los dos casos me pasa el parametro. tengo lo siguiente para que me entiendan.
.
.
.
.
while ($rowEmp = mysql_fetch_assoc($resEmp)) {

echo" <tr id='Treg'>";
echo" <td>".$rowEmp['CODIGO']."</td>";
echo" <td>".$rowEmp['NOMBRE']."</td>";
echo" <td>".$rowEmp['DIRECCION']."</td>";
echo" <td><a href='javascript: void(0);' onClick='xajax_mifuncion(".$resultado['codigo'].")'>Eliminar</a></td>";

}
  #18 (permalink)  
Antiguo 20/08/2010, 13:02
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

OK ya voy entendiendote mejor, vos estás confundiendo la tabla de la base de datos con la <table>, no tienen nada que ver una con la otra, son dos cosas distintas, la tabla de la base de datos se le llama a por ejemplo:

tabla USUARIOS

Campo 1 : CODIGO
Campo 2 : NOMBRE
Campo 3 : DIRECCION

entonces tenemos tabla que es la general y los campos , que son los datos que guardás, Entrada es una "guardada de datos" por llamarlo asi, osea el conjunto de datos de JUAN es una entrada.

Ahora esto <table> no tiene nada que ver con la base de datos.



Lo que antes llamabamos $resultados['codigo'] ahora se llama $rowEmp['CODIGO'] .

creo que tendrías que haber mandado antes ese codigo, pa que lo veamos



EDITO : Creo que tendrias que usar mysql_fetch_array en lugar de mysql_fetch_assoc , pero no estoy muy seguro de eso
__________________
la la la
  #19 (permalink)  
Antiguo 20/08/2010, 13:19
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

gracias de nuevo.

tengo claro que es diferente <table> qeu es una etiqueta que uso para mostrar la informacion tabulada de la consulta de la tabla de mysql.

Yo probe con $rowEmp['CODIGO'] pero no me funciona ya que el usuario final ve el listado completo tabulado en la etiqueta <table> y cuando da clic en cualquier registro de esos en ese momento $rowEmp['CODIGO'] no tiene nada. porque este va cambiando amedida que va mostrando los registros en el <table> con el while.

gracias.
  #20 (permalink)  
Antiguo 20/08/2010, 13:23
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

tendrias que postear todo el codigo que tengas para analizarlo, yo por lo menos no entiendo bien en donde esta el error , si pones aca el codigo lo vemos

cambiá esto : mysql_fetch_assoc , por esto mysql_fetch_array,
a ver que pasa
__________________
la la la
  #21 (permalink)  
Antiguo 20/08/2010, 13:31
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

Cita:
Iniciado por JAI_ME Ver Mensaje
gracias de nuevo.

tengo claro que es diferente <table> qeu es una etiqueta que uso para mostrar la informacion tabulada de la consulta de la tabla de mysql.

Yo probe con $rowEmp['CODIGO'] pero no me funciona ya que el usuario final ve el listado completo tabulado en la etiqueta <table> y cuando da clic en cualquier registro de esos en ese momento $rowEmp['CODIGO'] no tiene nada. porque este va cambiando amedida que va mostrando los registros en el <table> con el while.

gracias.
como q codigo no tiene nada?? el codigo deberia de mostrarte cada uno de los codigos de los registros asi como te muestra los nombres y direccion

Cita:
while ($rowEmp = mysql_fetch_assoc($resEmp)) {

echo" <tr id='Treg'>";
echo" <td>".$rowEmp['CODIGO']."</td>";
echo" <td>".$rowEmp['NOMBRE']."</td>";
echo" <td>".$rowEmp['DIRECCION']."</td>";
echo" <td><a href='javascript: void(0);' onClick='xajax_mifuncion(".$resultado['codigo'].")'>Eliminar</a></td>";

}
aki si te fijas pones la respuesta de manera diferente arriba colocas $rowEmp['CODIGO'] y en la funcion onclick colocas $resultado['codigo'] cual de los dos es correcto??
xq esto
$resultado['codigo'] no es igual a esto $rowEmp['CODIGO'] o si??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #22 (permalink)  
Antiguo 20/08/2010, 16:06
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

si siñores muchas gracias, es tan facil como orientado a objetos, $rowEmp['CODIGO'] enviandolo como parametro me funciono, problema estaba en como estaba enviandolo. la sintaxis.

gracias.
  #23 (permalink)  
Antiguo 20/08/2010, 19:07
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Editar-Eliminar registros en Mysql desde consulta de php

Cita:
Iniciado por JAI_ME Ver Mensaje
si siñores muchas gracias, es tan facil como orientado a objetos, $rowEmp['CODIGO'] enviandolo como parametro me funciono, problema estaba en como estaba enviandolo. la sintaxis.

gracias.
obvio sino estabas mandando el resultado q era pero bueno el echo es q gracias a dios lo resolviste pero por experiencia revisa tu codigo y veras q los errores mas complicados son los mas sencillos era simplemente una variable mal llamada suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: mysql, registros
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 05:59.