Foros del Web » Programando para Internet » PHP »

update...(cluster)

Estas en el tema de update...(cluster) en el foro de PHP en Foros del Web. hola: cluster me dio la idea de poner last_insert_id(), cual es el problema q me actualiza todos los registros no solo el ultimo algo debo ...
  #1 (permalink)  
Antiguo 03/01/2003, 10:22
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
update...(cluster)

hola:

cluster me dio la idea de poner last_insert_id(), cual es el problema q me actualiza todos los registros no solo el ultimo algo debo de estar haciendo mal.

pero el q?

un saludo

gracias
  #2 (permalink)  
Antiguo 03/01/2003, 10:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Leistes el manual de Mysql .. al respecto?
http://www.mysql.com/doc/en/Getting_unique_ID.html

Pon la estructura de la tabla q usas y la consulta que haces .. Cuando digo estructura me refiero a nombre del campo y tipo+propidades (con phpMyadmin mismo lo puedes obtener .. y pegarlo aquí) ...

En PHP tambien tienes mysql_insert_id() que hace lo mismo pero via PHP .. Yo siempre recomiendo las funciones equivalentes en SQL de Mysql ..

Via PHP: (tienes ejemplos .. y en los comentarios de los usuarios tienes los ejemplos usando SQL de Mysql directo)
http://us.php.net/manual/en/function...-insert-id.php

Un saludo,

Última edición por Cluster; 03/01/2003 a las 10:34
  #3 (permalink)  
Antiguo 03/01/2003, 10:37
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
ahi va eso..

la verdad es q no se a q te referias, llevo muy poco tiempo en esto y no tengo nada de idea.

no se si sera esto lo q me pidas:

codigo php:

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $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 = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}

if ((isset($HTTP_POST_VARS["MM_update"])) && ($HTTP_POST_VARS["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE aviso_tradicional SET tipo=%s, necesidades=%s, dia=%s, horario=%s, telf_contacto=%s, contacto=%s, obs=%s WHERE ID=%s",
GetSQLValueString($HTTP_POST_VARS['tipo'], "text"),
GetSQLValueString($HTTP_POST_VARS['necesidades'], "text"),
GetSQLValueString($HTTP_POST_VARS['dia'], "text"),
GetSQLValueString($HTTP_POST_VARS['horario'], "date"),
GetSQLValueString($HTTP_POST_VARS['telf_contacto'], "int"),
GetSQLValueString($HTTP_POST_VARS['contacto'], "text"),
GetSQLValueString($HTTP_POST_VARS['obs'], "text"),
GetSQLValueString($HTTP_POST_VARS['ID'], "int"));

mysql_select_db($database_aviso, $aviso);
$Result1 = mysql_query($updateSQL, $aviso) or die(mysql_error());
}

mysql_select_db($database_aviso, $aviso);
$query_Recordset1 = "SELECT * FROM aviso_tradicional";
$Recordset1 = mysql_query($query_Recordset1, $aviso) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);




codigo html:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">Tipo:</td>
<td>
<input type="text" name="tipo" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Necesidades:</td>
<td>
<input type="text" name="necesidades" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Dia:</td>
<td>
<input type="text" name="dia" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Horario:</td>
<td>
<input type="text" name="horario" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Telf_contacto:</td>
<td>
<input type="text" name="telf_contacto" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Contacto:</td>
<td>
<input type="text" name="contacto" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Obs:</td>
<td>
<input type="text" name="obs" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">&nbsp;</td>
<td><input type="submit" value="Update Record"></td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1">
<input type="hidden" name="ID" value="<?php echo $row_Recordset1['ID']; ?>">
</form>
<p>&nbsp;</p>
</body>
</html>


muchas gracias
  #4 (permalink)  
Antiguo 03/01/2003, 10:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Xias .. te comenté que si pones cógido PHP uses el boton "PHP" a la hora de redactar el mensaje .. con eso se ve mas claro el cógio ..

Si has leido el manual de Mysql .. veras que usar LAST_INSERT_ID() de Mysql o incluso mysql_insert_id() de PHP requiere de unas caracteristicas de al menos un campo de tu tabla (base de datos) Mysql ..

Lo que te pido es q pongas aquí el modelo de datos . .la tabla con sus campos y propiedades q usas .. Si no la pones NO se vé si estas usando algun campo con las propiedades que se requieren para usar esas funciones ...

Por otra parte .. tu problema está bien localizado en SQL de Mysql . .así q sobrraaaaaaa mucho código .. centrate en lo que dá error .. resume el código en una simple prueba de uso de esas funciones o metodo q quieres implementar . .cuando lo tengas claro y funcionando lo adpatas a tu código.


Un saludo,
  #5 (permalink)  
Antiguo 07/01/2003, 07:31
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
Sonrisa ok, lo siento, pero no te enfades...

ahi te mando la estructura de mi tabla(donde van los datos del update):

tipo: char(3) not null
necesidades: varchar(200) not null
dia: varchar(10)
horario: time
telf_contacto:int
contacto: varchar(25)
obs: varchar(100)
id: autoincrement not null pK
fecha_hora: datetime not null PK (este campo se rellena de otra pagina anterior)

un saludo

gracias
  #6 (permalink)  
Antiguo 07/01/2003, 08:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Buff .. yo ya me perdí ..

Bueno ahora ya hay mas datos (ya se vé que usas un campo "autoincremental" ...) .. A su vez ese campo ID podría ser Unico (unique) ..

Revisa el manual de PHP (y el de Mysql) ..en el de PHP tienes ejemplos de uso de mysql_insert_id() .. Haz tus pruebas e intenta comprender como usarlo.

Un saludo,
  #7 (permalink)  
Antiguo 07/01/2003, 08:13
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
vaya...

gracias de todas formas

lo intentare solucionar.

un saludo
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 20:24.