Foros del Web » Programando para Internet » PHP »

Ayuda php y mysql

Estas en el tema de Ayuda php y mysql en el foro de PHP en Foros del Web. Tengo 2 tablas MYSQL Tabla1: Perros Campos: ID,Nombre,nombre_usuario Tabla2: Usuarios Campo Nombre Lo que pasa que cuando quiero borrar un registro en la tabla perros, ...
  #1 (permalink)  
Antiguo 10/12/2009, 05:53
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Ayuda php y mysql

Tengo 2 tablas MYSQL

Tabla1:
Perros
Campos:
ID,Nombre,nombre_usuario

Tabla2:
Usuarios
Campo
Nombre

Lo que pasa que cuando quiero borrar un registro en la tabla perros, no se como comprobar que el que le da a borrar es el que a anunciado el perro.
mysql_query("delete from perros where id='$_REQUEST[id]'",$conexion) or
die("Problemas en el select:".mysql_error());
Uso eso, pero por ejemplo el usuario Angel, puede borrar lo que a escrito el usuario Juan...
Tengo este codigo

<?php
$sql2=mysql_query("select * from comentario order by id DESC",$conexion) or die("Problemas en el select:".mysql_error());
while ($row2=mysql_fetch_array($sql2))
{
if ($row2[nombre]==$row[nombre])
{
echo '<table width="547" border="0" cellpadding="0" cellspacing="0" bordercolor="#000000" class="tablesample"><tr><td width="547" height="131" bgcolor="#AE2F96"><p align="center" class="Estilo17"><a href="misanuncios.php?borrar=1&id=';
echo nl2br(htmlspecialchars($row2['id']));
echo '">BORRAR</a></p></td></tr></table>';
}}
if ($_REQUEST["borrar"]==1)
{
mysql_query("delete from perros where id='$_REQUEST[id]'",$conexion) or
die("Problemas en el select:".mysql_error());
}?>
  #2 (permalink)  
Antiguo 10/12/2009, 06:03
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: Ayuda php y mysql

¿Y donde esta la contraseña de cada usuario? Es como si llego al banco Espiritu Santo y les pido todo el dinero de Cristiano Ronaldo, sin identificarme de ninguna forma!!

Te aconsejo que tus tablas sean asi:

PERROS (id, nombre, id_usuario)
USUARIOS (id, nombre, clave)


Cuando alguien quiera borrar un perro, tendran que facilitar tanto la id del perro, como la clave del usuario, y borramos de la siguiente forma:

mysql_query("delete from perros where exists (select * from usuarios where usuarios.clave='$_REQUEST[clave]' and usuarios.id=perros.id_usuario) and perros.id='$_REQUEST[id]'");
  #3 (permalink)  
Antiguo 10/12/2009, 06:12
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Ayuda php y mysql

Si, si tengo el campo de pass seme a olvidao ponerlos sorry.
Soy muy noob en esto, si me puedes explicar que significa
exists (select * from usuarios where usuarios.clave='$_REQUEST[clave]' and usuarios.id=perros.id_usuario)
Lo siento pero no me entero :(
  #4 (permalink)  
Antiguo 10/12/2009, 06:18
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: Ayuda php y mysql

¿quieres borrar un perro de un usuario no? hay que "enlazarlo" de alguna forma, con ese SELECT buscamos al usuario cuyo ID sea el ID_USUARIO del perro al que hemos seleccionado (ver el otro WHERE), pero ademas no nos vale con que concuerde las ID, sino tambien envie la clave correcta de dicho usuario (where usuarios.clave='$_REQUEST[clave]' )

El EXISTS es valido (true) si encuentra al menos un registro o invalido (false) si no encuentra ningun registro en usuarios que cumpla las condiciones.

Son liosos los DELETE cuya condicion depende de otra tabla x_X
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 04:01.