PF2G Posted June 27, 2012 at 02:55 PM Report #465951 Posted June 27, 2012 at 02:55 PM Boas, eu estou a tentar eliminar registos mas não consigo, dá-me mensagem de sucesso, mas não me eliminar. Alguem me pode ajudar? <?php include("../../connection/database.php"); if (!isset($_SESSION)) { session_cache_limiter( false ); session_start(); } $id=$_REQUEST['id']; if(isset($id)){ $result=mysql_query("SELECT id_produto FROM produtos WHERE id_produto=$id"); $row=mysql_fetch_array($result); $result=mysql_query("DELETE FROM produtos WHERE id_produto=$id;"); if($result){ $_SESSION['admin_note_type']="success"; $_SESSION['admin_message']="O registo foi eliminado com sucesso."; }else{ $_SESSION['admin_note_type']="error"; $_SESSION['admin_message']="Ocorreu um erro ao eliminar o registo."; } }else{ $_SESSION['admin_note_type']="error"; $_SESSION['admin_message']="Ocorreu um erro ao eliminar o registo. O registo não foi encontrado."; } ?>
HappyHippyHippo Posted June 27, 2012 at 02:59 PM Report #465954 Posted June 27, 2012 at 02:59 PM como sabes que o id que é dado ao script é o correcto para ser eliminado ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
PF2G Posted June 27, 2012 at 03:02 PM Author Report #465955 Posted June 27, 2012 at 03:02 PM Não sei, como é que faço isso? Ja tentei fazer $id=$_GET['id'] mas dava-me mensagem de erro, que o registo nao tinha sido encontrado
HappyHippyHippo Posted June 27, 2012 at 03:06 PM Report #465956 Posted June 27, 2012 at 03:06 PM ora, se dizes que estas a fazer um pedido à base de dados para eliminar um produto mas ele não é eliminado eu pergunto, como sabes qual é o produto que o script está a pedir para ser eliminado ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
PF2G Posted June 27, 2012 at 03:10 PM Author Report #465960 Posted June 27, 2012 at 03:10 PM (edited) Com o select, não? Eu seleciono o id_produto=$id. <?php include("../../connection/database.php"); if (!isset($_SESSION)) { session_cache_limiter( false ); session_start(); } $id=$_REQUEST['id']; $result=mysql_query("SELECT id_produto FROM produtos WHERE id_produto=$id"); $row=mysql_fetch_array($result); if($result){ $result=mysql_query("DELETE FROM produtos WHERE id_produto='".$row['id_produto']."'"); if($result){ $_SESSION['admin_note_type']="success"; $_SESSION['admin_message']="O registo foi eliminado com sucesso."; }else{ $_SESSION['admin_note_type']="error"; $_SESSION['admin_message']="Ocorreu um erro ao eliminar o registo."; } }else{ $_SESSION['admin_note_type']="error"; $_SESSION['admin_message']="Ocorreu um erro ao eliminar o registo. O registo não foi encontrado."; } Edited June 27, 2012 at 03:10 PM by PF2G
HappyHippyHippo Posted June 27, 2012 at 03:17 PM Report #465966 Posted June 27, 2012 at 03:17 PM vês como o teu código de repente ficou diferente ??? agora só falta saber se o ID que é enviado para o script é o pretendido ... mas isso só tu é que podes saber ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
PF2G Posted June 27, 2012 at 03:23 PM Author Report #465970 Posted June 27, 2012 at 03:23 PM (edited) Ele continua a dar-me a mesa coisa... Eu listei os produtos com o respetivo id e esta correto Edited June 27, 2012 at 03:25 PM by PF2G
HappyHippyHippo Posted June 27, 2012 at 03:25 PM Report #465975 Posted June 27, 2012 at 03:25 PM debug de script server-side : o mais fácil e o uso extensivo de echo's com informação relevante com o uso da função die nos sítios certos IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
ruimcosta Posted June 27, 2012 at 03:31 PM Report #465980 Posted June 27, 2012 at 03:31 PM (edited) Uma dica: $id=$_REQUEST['id']; Se sabes que vem por POST troca o $_REQUEST por $_POST. Se vem por GET troca por $_GET. Se o valor é numérico (presumo que sim) coloca (int)$_GET['id']; Outra coisa...presumo que isto $result=mysql_query("SELECT id_produto FROM produtos WHERE id_produto=$id"); $row=mysql_fetch_array($result); Seja para verificares se o teu produto existe, certo? Então sugiro esta pequena alteração: <?php include("../../connection/database.php"); if (!isset($_SESSION)) { session_cache_limiter( false ); session_start(); } $id=$_REQUEST['id']; $result=mysql_query("SELECT id_produto FROM produtos WHERE id_produto=$id"); if($result){ $result=mysql_query("DELETE FROM produtos WHERE id_produto=$id'"); if($result){ $_SESSION['admin_note_type']="success"; $_SESSION['admin_message']="O registo foi eliminado com sucesso."; }else{ $_SESSION['admin_note_type']="error"; $_SESSION['admin_message']="Ocorreu um erro ao eliminar o registo."; } }else{ $_SESSION['admin_note_type']="error"; $_SESSION['admin_message']="Ocorreu um erro ao eliminar o registo. O registo não foi encontrado."; } ?> Podes por exemplo fazer um echo "SELECT id_produto FROM produtos WHERE id_produto=$id"; e copiar/colar directamente para o editor de mysql e verificar se retorna alguma coisa.... Edited June 27, 2012 at 03:32 PM by ruimcosta Abraços e beijinhos,Rui Costa
PF2G Posted June 27, 2012 at 03:43 PM Author Report #465985 Posted June 27, 2012 at 03:43 PM nem mensage aparece: <?php include("../../connection/database.php"); if (!isset($_SESSION)) { session_cache_limiter( false ); session_start(); } $id=(int)$_GET['id']; $result=mysql_query("SELECT id_produto FROM produtos WHERE id_produto=$id") or die(mysql_error()); $row=mysql_fetch_assoc($result); if($result){ $result=mysql_query("DELETE FROM produtos WHERE id_produto='".$row['id_produto']."'") or die(mysql_error()); if($result){ $_SESSION['admin_note_type']="success"; $_SESSION['admin_message']="O registo foi eliminado com sucesso."; }else{ $_SESSION['admin_note_type']="error"; $_SESSION['admin_message']="Ocorreu um erro ao eliminar o registo."; } }else{ $_SESSION['admin_note_type']="error"; $_SESSION['admin_message']="Ocorreu um erro ao eliminar o registo. O registo não foi encontrado."; } ?>
HappyHippyHippo Posted June 27, 2012 at 03:47 PM Report #465987 Posted June 27, 2012 at 03:47 PM mas alguém disse que existia erros de sql ???? vês como o teu código de repente ficou diferente ??? agora só falta saber se o ID que é enviado para o script é o pretendido ... mas isso só tu é que podes saber ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now