Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Borrar un registro desde un combobox con php+mysql (https://www.clubdelphi.com/foros/showthread.php?t=39429)

enecumene 19-01-2007 15:16:48

Borrar un registro desde un combobox con php+mysql
 
holas amigos del foro!!!

tengo una duda de como borrar un registro desde un combobox y no he podido dar con ella aqui les dejo los codigos de como lo tengo:

para el llenado del combobox o select:

Código PHP:

<select name="status">
<option value="0">Eliga un status...</option> 
<?
//obtengo los datos de la base
$sql "SELECT * FROM status";
$r mysql_query($sql);
//mediante un while recorro todas las categorias y las imprimo en pantalla
while($row mysql_fetch_array($r)){ 
?> 
<option value="<?=$row["st_id"]?>"><?=$row["st_name"]?></option>
<?}?> 
</select>

para el borrado del registro 1 solo el que esta selccionado en el combo:

Código PHP:

<?php
$mysql mysql_pconnect("localhost""root""2020");
if(!
$mysql)
{
echo 
"No se ha podido conectar la base de datos!.";
exit;
}
 
if(!
$status['0'])
{
echo 
"No se ha seleccionado ningún item para borrar!.";
exit;
}
$status[''] = addslashes($status['']);
mysql_select_db("pedido"); 
$sQuery="DELETE FROM status where st_id='<?=$row["st_id"]?>'";
$resultmysql_query($sQuery);
if (
$result)
{
echo 
mysql_affected_rows(). "Los datos se borraron exitosamente";
exit;

?>

gracias de antemano..

lucasarts_18 19-01-2007 16:01:36

Cita:

Empezado por enecumene
holas amigos del foro!!!

tengo una duda de como borrar un registro desde un combobox y no he podido dar con ella aqui les dejo los codigos de como lo tengo:

Hola, Realmente no dices que te sucede, tienes un error en tiempo de ejecución, no te bora el registro, sucede algo extraño, trata de especificar un poco mas el problema...:)

enecumene 19-01-2007 16:20:41

perdon,

lucasart_18, que se me borra todos los datos de la tabla de una tajada, solamente quiero que se me borre la seleccion en el combobox.:confused:

dec 19-01-2007 17:20:51

Hola,

Como no sé muy bien cómo estás enfocando el asunto, me limitaré a comentar que tienes que revisar que la variable "$row" un valor supuestamente válido, en este caso un entero, me parece. Es decir:

Código PHP:

$sQuery="DELETE FROM status where st_id='<?=$row["st_id"]?>'";

Si la variable "$row" no está inicializada, o su índice "st_id" no existe, mucho me temo que la consulta SQL que se esté realizando sea tal que así:

Código PHP:

$sQuery="DELETE FROM status where st_id=''"

Ya no me digas porqué la anterior consulta borra todos los registros de la tabla "status". Yo entiendo que en este caso debería fallar o algo así, pero, claro, también es posible que los borre... como dices.

En todo caso ya digo, asegúrate de que la variable contiene un valor adecuado, de modo que la consulta quedara tal como esperas:

Código PHP:

$sQuery="DELETE FROM status where st_id='2'"

Que no sé yo si en este caso en concreto podrían suprimirse las comillas del entero:

Código PHP:

$sQuery="DELETE FROM status where st_id=2"

Creo recordar haber utilizado consultas de este tipo incluyendo las comillas... y funcionaba, ahora, a lo mejor es más elegante o conveniente no entrecomillar el valor de marras... si este es un entero, vamos.

roman 19-01-2007 17:22:48

Cita:

Empezado por enecumene
$sQuery="DELETE FROM status where st_id='<?=$row["st_id"]?>'";

¿Por qué pones <? y ?> aquí? Toda la sentencia está dentro ya de un bloque php. Tendría que ser algo como:

Código PHP:

$sQuery="DELETE FROM status where st_id='$row[st_id]'"

Nota, además, que cuando pones la entrada de un arreglo dentro de una cadena entrecomillada, debes omitir las comillas que encierran el índice de la entrada.

Por otra parte, nunca está de más añadir un LIMIT 1 a este tipo de consultas. Así evitas que por un error (como en este caso) te cepilles toda la tabla.

// Saludos

enecumene 19-01-2007 18:03:58

gracias dec y roman, ahorita mismo las probare cuando llegue a la casa y les comentare como me fue. chao!!

enecumene 22-01-2007 16:05:42

Hola!!!

ya resolvi!! en vez de:

Código SQL [-]
 
$sQuery="DELETE FROM status where st_id='["st_id"]?>'";

puse:

Código SQL [-]
 
$sQuery="DELETE FROM status where st_id='$status' ";

me quedo de pelos, que sencillo no?, gracias!!!!!


La franja horaria es GMT +2. Ahora son las 17:57:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi