Foros del Web » Programando para Internet » PHP »

PHP OO Problemas con modificar y eliminar datos mysql.

Estas en el tema de Problemas con modificar y eliminar datos mysql. en el foro de PHP en Foros del Web. Buenas tardes. Llevo 2 días con el mismo problema, y este es que no puedo ni modificar, ni eliminar datos desde PHP, hacía mi BD ...
  #1 (permalink)  
Antiguo 29/01/2014, 15:22
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 3 meses
Puntos: 2
Problemas con modificar y eliminar datos mysql.

Buenas tardes.

Llevo 2 días con el mismo problema, y este es que no puedo ni modificar, ni eliminar datos desde PHP, hacía mi BD hecha en mysql. Soy un poco novata en todo esto, y les agradecería que me ayudasen.

Aquí mis códigos:

Esta es donde cargo el listado de mis registros:

<?php require_once('Connections/Pharma.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$maxRows_listado = 10;
$pageNum_listado = 0;
if (isset($_GET['pageNum_listado'])) {
$pageNum_listado = $_GET['pageNum_listado'];
}
$startRow_listado = $pageNum_listado * $maxRows_listado;

mysql_select_db($database_Pharma, $Pharma);
$query_listado = "SELECT usuarios.CURP, Nombre, Apellido_P, Apellido_M, RFC, Telefono, Celular, email, Plaza, Fecha_Inicio, nomina, ns_celular, ns_tablet, ns_pc, domicilio FROM usuarios inner join login inner join pagos inner join equipo_trabajo WHERE usuarios.CURP = login.Curp AND usuarios.curp = equipo_trabajo.curp AND usuarios.curp = pagos.curp";
$query_limit_listado = sprintf("%s LIMIT %d, %d", $query_listado, $startRow_listado, $maxRows_listado);
$listado = mysql_query($query_limit_listado, $Pharma) or die(mysql_error());
$row_listado = mysql_fetch_assoc($listado);

if (isset($_GET['totalRows_listado'])) {
$totalRows_listado = $_GET['totalRows_listado'];
} else {
$all_listado = mysql_query($query_listado);
$totalRows_listado = mysql_num_rows($all_listado);
}
$totalPages_listado = ceil($totalRows_listado/$maxRows_listado)-1;
?>

<body>


<table width="544" height="661" border="0" align="center">
<tr>
<td>&nbsp;</td>

<td><table width="200" border="1">

<?php do { ?>
<tr>
<td><?php echo $row_listado['CURP']; ?></td>
<td><?php echo $row_listado['Nombre']; ?></td>
<td><?php echo $row_listado['Apellido_P']; ?></td>
<td><?php echo $row_listado['RFC']; ?></td>
<td><?php echo $row_listado['Telefono']; ?></td>
<td><?php echo $row_listado['Celular']; ?></td>
<td><a href="modificar.php?curpm<?php echo $row_listado['CURP']; ?>">Editar</a></td>
<td><a href="eliminar_confir.php?curpe<?php echo $row_listado['CURP']; ?>">Eliminar</a></td>
</tr>
<?php } while ($row_listado = mysql_fetch_assoc($listado)); ?>
</table></td>
<td>&nbsp;</td>
</tr>
</table>

<?php
mysql_free_result($listado);
?>



Espero y puedan ayudarme.
  #2 (permalink)  
Antiguo 29/01/2014, 15:24
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Problemas con modificar y eliminar datos mysql.

Aquí el código de modificación:

<?php require_once('Connections/Pharma.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE usuarios SET Nombre=%s, Apellido_P=%s, Apellido_M=%s, RFC=%s, Telefono=%s, Celular=%s, email=%s, Plaza=%s, Fecha_Inicio=%s, Domicilio=%s WHERE CURP=%s",
GetSQLValueString($_POST['Nombre'], "text"),
GetSQLValueString($_POST['Apellido_P'], "text"),
GetSQLValueString($_POST['Apellido_M'], "text"),
GetSQLValueString($_POST['RFC'], "text"),
GetSQLValueString($_POST['Telefono'], "int"),
GetSQLValueString($_POST['Celular'], "int"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['Plaza'], "text"),
GetSQLValueString($_POST['Fecha_Inicio'], "date"),
GetSQLValueString($_POST['Domicilio'], "text"),
GetSQLValueString($_POST['CURP'], "text"));

mysql_select_db($database_Pharma, $Pharma);
$Result1 = mysql_query($updateSQL, $Pharma) or die(mysql_error());

$updateGoTo = "modif_ok.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}

$colname_modificar = "-1";
if (isset($_GET['CURPm'])) {
$colname_modificar = $_GET['CURPm'];
}


mysql_select_db($database_Pharma, $Pharma);
$query_modificar = sprintf("SELECT usuarios.CURP, Nombre, Apellido_P, Apellido_M, RFC, Telefono, Celular, email, Plaza, Fecha_Inicio, nomina, ns_celular, ns_tablet, ns_pc, domicilio FROM usuarios inner join login inner join pagos inner join equipo_trabajo WHERE usuarios.CURP = %s", GetSQLValueString($colname_modificar, "text"));
$modificar = mysql_query($query_modificar, $Pharma) or die(mysql_error());
$row_modificar = mysql_fetch_assoc($modificar);
$totalRows_modificar = mysql_num_rows($modificar);
?>

<table width="544" height="661" border="0" align="center">
<tr>
<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
<table align="center">
<tr valign="baseline">
<td nowrap="nowrap" align="right">CURP:</td>
<td><input type="text" name="CURP" value="<?php echo $row_modificar['CURP']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Nombre:</td>
<td><input type="text" name="Nombre" value="<?php echo htmlentities($row_modificar['Nombre'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Apellido_P:</td>
<td><input type="text" name="Apellido_P" value="<?php echo htmlentities($row_modificar['Apellido_P'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Apellido_M:</td>
<td><input type="text" name="Apellido_M" value="<?php echo htmlentities($row_modificar['Apellido_M'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">RFC:</td>
<td><input type="text" name="RFC" value="<?php echo htmlentities($row_modificar['RFC'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Telefono:</td>
<td><input type="text" name="Telefono" value="<?php echo htmlentities($row_modificar['Telefono'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Celular:</td>
<td><input type="text" name="Celular" value="<?php echo htmlentities($row_modificar['Celular'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Email:</td>
<td><input type="text" name="email" value="<?php echo htmlentities($row_modificar['email'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Plaza:</td>
<td><input type="text" name="Plaza" value="<?php echo htmlentities($row_modificar['Plaza'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Fecha_Inicio:</td>
<td><input type="text" name="Fecha_Inicio" value="<?php echo htmlentities($row_modificar['Fecha_Inicio'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Domicilio:</td>
<td><input type="text" name="Domicilio" value="<?php echo $row_modificar['domicilio']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">&nbsp;</td>
<td><input type="submit" value="Actualizar registro" /></td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1" />
<input type="hidden" name="CURP" value="<?php echo $row_modificar['CURP']; ?>" />
</form>
<p>&nbsp;</p></td>
<td>&nbsp;</td>
</tr>
</table>
<?php
mysql_free_result($modificar);

?>
  #3 (permalink)  
Antiguo 29/01/2014, 15:51
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: Problemas con modificar y eliminar datos mysql.

Cita:
Iniciado por Karen_mBrK Ver Mensaje
Buenas tardes.

Llevo 2 días con el mismo problema, y este es que no puedo ni modificar, ni eliminar datos desde PHP, hacía mi BD hecha en mysql. Soy un poco novata en todo esto, y les agradecería que me ayudasen.

Aquí mis códigos:

Esta es donde cargo el listado de mis registros:

<?php require_once('Connections/Pharma.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$maxRows_listado = 10;
$pageNum_listado = 0;
if (isset($_GET['pageNum_listado'])) {
$pageNum_listado = $_GET['pageNum_listado'];
}
$startRow_listado = $pageNum_listado * $maxRows_listado;

mysql_select_db($database_Pharma, $Pharma);
$query_listado = "SELECT usuarios.CURP, Nombre, Apellido_P, Apellido_M, RFC, Telefono, Celular, email, Plaza, Fecha_Inicio, nomina, ns_celular, ns_tablet, ns_pc, domicilio FROM usuarios inner join login inner join pagos inner join equipo_trabajo WHERE usuarios.CURP = login.Curp AND usuarios.curp = equipo_trabajo.curp AND usuarios.curp = pagos.curp";
$query_limit_listado = sprintf("%s LIMIT %d, %d", $query_listado, $startRow_listado, $maxRows_listado);
$listado = mysql_query($query_limit_listado, $Pharma) or die(mysql_error());
$row_listado = mysql_fetch_assoc($listado);

if (isset($_GET['totalRows_listado'])) {
$totalRows_listado = $_GET['totalRows_listado'];
} else {
$all_listado = mysql_query($query_listado);
$totalRows_listado = mysql_num_rows($all_listado);
}
$totalPages_listado = ceil($totalRows_listado/$maxRows_listado)-1;
?>

<body>


<table width="544" height="661" border="0" align="center">
<tr>
<td>&nbsp;</td>

<td><table width="200" border="1">

<?php do { ?>
<tr>
<td><?php echo $row_listado['CURP']; ?></td>
<td><?php echo $row_listado['Nombre']; ?></td>
<td><?php echo $row_listado['Apellido_P']; ?></td>
<td><?php echo $row_listado['RFC']; ?></td>
<td><?php echo $row_listado['Telefono']; ?></td>
<td><?php echo $row_listado['Celular']; ?></td>
<td><a href="modificar.php?curpm<?php echo $row_listado['CURP']; ?>">Editar</a></td>
<td><a href="eliminar_confir.php?curpe<?php echo $row_listado['CURP']; ?>">Eliminar</a></td>
</tr>
<?php } while ($row_listado = mysql_fetch_assoc($listado)); ?>
</table></td>
<td>&nbsp;</td>
</tr>
</table>

<?php
mysql_free_result($listado);
?>



Espero y puedan ayudarme.
Aca me parece que te falta el =

<td><a href="modificar.php?curpm=<?php echo $row_listado['CURP']; ?>">Editar</a></td>
<td><a href="eliminar_confir.php?curpe=<?php echo $row_listado['CURP']; ?>">Eliminar</a></td>
  #4 (permalink)  
Antiguo 29/01/2014, 16:48
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Problemas con modificar y eliminar datos mysql.

Si, es verdad, me faltaban los signos, antes si se los había colocado, pero con tantas veces que lo he intentado, esa última vez los olvidé, sin embargo, no logro realizar ninguna de las dos cosas; ni eliminar, ni actualizar registros.

Cuando intento eliminar, me sale lo siguiente:

http://subefotos.com/ver/?7e7fc015978c24157b9bda9edf4c8f10o.jpg

Y cuando intento modificar, simplemente no me aparecen los datos, y por lo tanto, no puedo actualizarlos.
  #5 (permalink)  
Antiguo 30/01/2014, 09:15
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: Problemas con modificar y eliminar datos mysql.

no te funciona porque vos envias la variables curpm por get y esperas la variables CURPm.
  #6 (permalink)  
Antiguo 30/01/2014, 13:30
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Problemas con modificar y eliminar datos mysql.

¡Tenías razón! De alguna manera, creí que no se respetaban minúsculas y mayúsculas y que daba exactamente igual, pero evidentemente, estaba muy equivocada.

Ahora solo me queda una duda, necesito hacer un delete, a tablas relacionadas ya que quiero que al eliminar un registro con llave primaria en la tabala "Usuarios", se elimine junto con los otros del mismo nombre, pero pertenecientes a otras tablas enlazadas con llaves foráneas, y he intentado con diferentes sentencias, pero ninguna me da resultado.
Código PHP:
"DELETE FROM usuarios join pagos join equipo_trabajo join login WHERE CURPe = %s IN usuarios.CURP = login.Curp AND usuarios.curp = equipo_trabajo.curp AND usuarios.curp = pagos.curp" 
Y este, pero creo que los dos están completamente errados, ya que ninguno me da resultado.

Código PHP:
"DELETE  usuarios.CURP, pagos.CURP, login.Curp, equipo_trabajo.CURP, Nombre, Apellido_P, Apellido_M, RFC, Telefono, Celular, email, Plaza, Fecha_Inicio, nomina, ns_celular, ns_tablet, ns_pc, domicilio FROM usuarios inner join login inner join pagos inner join equipo_trabajo ON Usuarios.CURP = login.Curp AND usuarios.CURP = equipo_trabajo.CURP AND Usuarios.CURP = pagos.curp WHERE CURP = %s" 
Espero y me puedas echar una mano, te lo agradecería mucho.
  #7 (permalink)  
Antiguo 30/01/2014, 15:43
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: Problemas con modificar y eliminar datos mysql.

mira lo que se hace o por lo menos lo que yo siempre hago es eliminar lo registros de la tabla donde estan las FK y despues eliminar los registro de la tabla donde esta la PK.
La verdad es que no sabia que se puede hacer join en los delete.

Osea que eliminar los registro de las tablas con las FK y despues los registros con la PK.

Otra opcion que se usa es poner un estado, de esa forma no perdes los datos( los datos el o uno de activo mas importante de un sistema ). Creas un campo extra en la tabla de usuario, ej : "activo" y lo pones por default en 1. y cuando eliminas lo unico que haces es poner activo en 0. Eso si siempre que haces el login o consultas los datos de un usuario debes poner ese filtro el el where.
  #8 (permalink)  
Antiguo 30/01/2014, 16:34
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Problemas con modificar y eliminar datos mysql.

Ok, gracias. Estoy segura de que eso si se puede hacer, solo que aún no se como. En fin, seguiré buscando y gracias por tu ayuda.
  #9 (permalink)  
Antiguo 30/01/2014, 16:46
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: Problemas con modificar y eliminar datos mysql.

no es por contradecirte, solo como ayuda. Pero se que Sql Server si soporta DELETE JOIN, pero MySql no. Capaz me equivoco pero si es que se puede, deberia esta en la documantacion de MySql.

http://dev.mysql.com/doc/refman/5.0/es/delete.html

DELETE JOIN no es standar del SQL, me parece que es especifico y cada motor de base lo implementa de manera distinta o no lo implementa.

Suerte
  #10 (permalink)  
Antiguo 30/01/2014, 17:19
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Problemas con modificar y eliminar datos mysql.

Si, yo igual sabía eso, sin embargo por algún lugar leí que a partir de 'X' versión, MySQL empezó a permitir ese tipo de Deletes. Y en serio gracias, esas variables mal declaradas me dieron un gran dolor de cabeza, sin tu ayuda, ahorita seguiría luchando contra ellas. xD
  #11 (permalink)  
Antiguo 31/01/2014, 06:44
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: Problemas con modificar y eliminar datos mysql.

Cita:
Iniciado por luis010182 Ver Mensaje
no es por contradecirte, solo como ayuda. Pero se que Sql Server si soporta DELETE JOIN, pero MySql no. Capaz me equivoco pero si es que se puede, deberia esta en la documantacion de MySql.

http://dev.mysql.com/doc/refman/5.0/es/delete.html

DELETE JOIN no es standar del SQL, me parece que es especifico y cada motor de base lo implementa de manera distinta o no lo implementa.

Suerte
Cita:
Iniciado por Karen_mBrK Ver Mensaje
Si, yo igual sabía eso, sin embargo por algún lugar leí que a partir de 'X' versión, MySQL empezó a permitir ese tipo de Deletes. Y en serio gracias, esas variables mal declaradas me dieron un gran dolor de cabeza, sin tu ayuda, ahorita seguiría luchando contra ellas. xD


Sabes que tenes razon, para sacame la duda me puse a leer un poco de documentacion. Y en el mismo link que te pase esta la forma de implementarlo. jajajaajja

Bueno el primer paso para aprender es reconocer que uno esta equivocado.
  #12 (permalink)  
Antiguo 31/01/2014, 12:22
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Problemas con modificar y eliminar datos mysql.

Es verdad, ahí viene xD Pero aún no logro hacer deletes de ese tipo. Así que solo me queda seguir intentando.

Etiquetas: modificar, mysql, registro, select, sql, usuarios
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 14:16.