uiLhian 1 Denunciar post Postado Março 28, 2013 Bom o que acontece é o seguinte, tenho um BD tres tabelas Obras - Fotos - Usuarios ae o que acontece quando eu clico em "DELETAR ALBUM/OBRA" ele deleta as fotos do da pasta e tbm deleta os dados da tabela "Obras" mas não apaga os dados refente da tabela "Fotos" que no caso seria as fotos referente ao album/obra deletada. o comando é esse... if ( isset( $_GET['delete'] ) && !empty( $_GET['delete'] ) ) { $obra_id = $_GET['delete']; $db->query( "SELECT * FROM fotos WHERE foto_album = $obra_id;" )->fetchAll(); if ( $db->rows >= 1 ) { foreach ( $db->data as $foto ) { $f = ( object ) $foto; $file = "../fotos/$f->foto_url"; if ( file_exists( $file ) ) { @unlink( $file ); } } } $db->query( "DELETE FROM obras WHERE obra_id = $obra_id" ); $db->query( "DELETE FROM fotos WHERE foto_album = $obra_id" ); header( "Location: album.php" ); } não apresenta erro nenhum nada... Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Saraiva 84 Denunciar post Postado Março 28, 2013 Dei olhada rapida no seu código é num vi nenhum erro. Pode ser que o erro esteja em sua consulta sql verifique se os dados $obra_id realmente é o paramentro correto para se passar na consulta. $db->query( "DELETE FROM fotos WHERE foto_album = $obra_id" ); Posta o código de sua tabela que fica mais facil de ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Fábio BN 17 Denunciar post Postado Março 28, 2013 Oi.Se vc trocar o comando SQL ( = ) pelo ( IN ) ele vai apagar todos os registos com aquela mesma ID.Pois se vc colocar ( = ) ele vai apagar 1 linha, pois não está em Loop, tente assim: $db->query( "DELETE FROM fotos WHERE foto_album IN $obra_id" ); Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Fábio BN 17 Denunciar post Postado Março 28, 2013 Eu fiz uns teste aqui, se a sua variável receber os valores separados por virgula EX: 1,2,3,4 , ou mesmo que seja apenas um valor, todos os registros do banco serão apagados. Aqui funcionou com campo numérico INT no Banco. $db->query( "DELETE FROM fotos WHERE foto_album in (".$obra_id.")" ); Vamos supor que o valor requisitado na variável ( obra_id ) seja 10, todas as linhas da coluna foto_album que tiverem o valor 10 serão excluídos.Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
uiLhian 1 Denunciar post Postado Março 29, 2013 então desculpa a demora pra responder, mas ontem depois que postei a duvida não testei mais... ae hj liguei o pc e fui testar e funcionou corretamente, não fiz nada de modificação e tal... agora a duvida é o seguinte o código em si esta montado certo ? ele ta executando tudo certo e tal, mas só queria ter a certeza de que ta montado certo, pois não manjo muito de php não sou apenas "curioso". :) desde ja valeu a todos. :) Compartilhar este post Link para o post Compartilhar em outros sites