Foros del Web » Creando para Internet » Herramientas y Software »

Actualizar 'Todo' Registro [DW]

Estas en el tema de Actualizar 'Todo' Registro [DW] en el foro de Herramientas y Software en Foros del Web. Holas Es algo rapido, pero que no me sale a como lo estoy haciendo ahora, que por ahi de otra forma, si se podra, no ...
  #1 (permalink)  
Antiguo 15/08/2008, 15:14
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 12
Actualizar 'Todo' Registro [DW]

Holas

Es algo rapido, pero que no me sale a como lo estoy haciendo ahora, que por ahi de otra forma, si se podra, no lo se

Resulta que en mi campo de Noticias, al enviar la noticia, yo uso los campos de mi tabla Registro, para enviar los datos del usuario.
Para ello, creo campos iguales, digamos campo Imagen para la noticia, campo Avatar para el Registro, y al crear las noticias, vinculo con el perfil del Usuario, y asi aparecen los datos.

El problema es, cuando yo Actualizo alguno de los campos, como por ejemplo, el campo Mensajes del usuario, el cual acumula los mensajes enviados por cada usuario. No hay problema, el tema es que cuando envio el mensaje en el Nuevo mensaje aparece el campo actualizado, pero en los anteriores queda como estaba antes.

Yo para enviar la noticia, pongo muchos campos ocultos con la informacion del usuario, avatar, nombre, email y mensajes. Luego los envio con los valores del usuario logueado, claro.

Espero haberme dado a enteder, solo es que al actualizar los campos (Update) actualiza los nuevos, pero los que ya envie no...

Saludos y Gracias
__________________
CabaSoft Networks
  #2 (permalink)  
Antiguo 15/08/2008, 16:10
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Actualizar 'Todo' Registro [DW]

Déjame ver si entendí. ¿en tu tabla de noticias pones todos los detalles del usuario que hace la noticia y después si actualizas el usuario no se actualiza la información del usuario que está en la tabla de noticias?

Si es eso la solución es no meter ningún tipo de información sobre el usuario en la tabla de noticias. Insertas solamente el id el usuario ya es lo único que no cambia, algo así:

id_usuario_noticas = int

Al momneto de mostrar la noticia haces una consulta como ya sabes:

Código PHP:
//selecionar database
db_select_db($database$conexion);
//query string
$query_tring "SELECT * FROM noticias_tabla";
//query
$rs_querymysql_query($query_tring$conexion);
//resultados
$rs_result mysql_fetch_assoc($rs_query); 
Dentro del loop sacas de esa consulta el id del usuario,por ejemplo:
Código PHP:
$id_usuario $rs_result['id_usuario_noticas']; 
entonces puedes hacer una consulta de usuario que sea así:

Código PHP:
SELECT FROM usuarios_tabla WHERE usuario_campo $id_usuario 
De esa forma tienes siempre los campos del usuario siempre actualizados ya que siempre los vas a sacar de la tabla de usuarios. Si te intimida algo el código puedes hacer los recorset y el loop con DW y después coloca el del usuario dentro del loop.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #3 (permalink)  
Antiguo 15/08/2008, 18:50
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 12
Respuesta: Actualizar 'Todo' Registro [DW]

Hola juaniquillo

Te agradezco al respuesta, es y no es justa al mismo tiempo, porque yo uso esa forma para las consultas, y me lo actualiza bien el usuario, las noticias y todo bien el Update. Mi problema comienza cuando yo tengo varias noticias...

Tengo mi formulario, y como DW no puede hacer muchas cosas, hice algo en SQL. Lo que necesitaba era que al usuario que envie la noticia, se le sume 1 en su campo Mensajes:

(Esto va bien, sin problemas)

Código PHP:
$Queri = ("UPDATE registro SET mensajes=mensajes+1 WHERE id = '$idUsuario'");
if (
array_key_exists('Submit'$_POST)) {
  
mysql_query($Queri$FS) or die(mysql_error()); } 
Y todo fenomeno! El user envia y se le suma uno a ese User, todo un logro xD

Ahora. Cuando voy a mirar las noticias...

** A partir de esa noticia enviada, el user empieza a tener por ejemplo 20 Mensajes, ya que se le sumo 1 a los 19 que tenia hasta enviarla... Pero si miro las noticias anteriores a esa, el mismo user tiene 19 Mensajes!!! y no 20 como los que tiene en esa, y los que vendran luego **

Quisiera hacer algo para que cuando actualice ese campo, se actualicen los mensajes en todas mis noticias, algo asi como este mismo Foro. Envio y tengo 1 post mas, pero no solo de ahora en mas, sino en todos los post que tengo desde que me registre.

Un saludo, y gracias por todo, a ver que sacamos de esto

Adio
__________________
CabaSoft Networks
  #4 (permalink)  
Antiguo 16/08/2008, 08:53
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Actualizar 'Todo' Registro [DW]

Eso pasa porque pones literalmente en la base de datos cuantas noticias lleva el usuario hasta ese momento. Si quieres saber el numero de mensaje reales de cada usuario solo tienes que hacer un query de todos sus mensajes:

SELECT * FROM mensajes WHERE id_usuario_mensaje = id_usuario

Despues, cuando haces el query, puedes sacar el numero de mensaje de ese usuario asi:

Código PHP:
$numero_total _mensajes mysql_num_rows($query_mensajes); 
$numero_total _mensajes serán los mensajes reales que tiene el usuario ya que es una cuenta hecha al momento.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #5 (permalink)  
Antiguo 16/08/2008, 14:54
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 12
Respuesta: Actualizar 'Todo' Registro [DW]

Buenas juaniquillo

Gracias por tu interes

La verdad entiendo lo que me decis, pero no me esta funcionando y creo que es por esto:

Yo tengo mi Recordset filtrado de usuarios [username = MM_Username] en el formulario de envio, para asi poder obtener los datos del usuario que va a enviar.
Tambien, recojo su cantidad de mensajes enviados, claro. Y lo ubico en un campo oculto. Al enviar, envia bien el numero de mensajes y suma 1, ahora en vez de 19 tiene 20 supongamos. Queda marcado 20 en la web.

Pero cuando voy a responder al mensaje con el mismo usuario, respondo y en el campo oculto ahora esta el 20. Envio y suma uno, queda en 21. Pero el 21 me queda para los futuros menasjes, ese queda con el 20

Tengo la tabla Registro [Con los datos del usuario] y la tabla Mensajes [Con los mismos campos del usuario, y con otros mas, como Titulo, Fecha, etc]

No se que puedo hacer para esto, uso este recordset para filtrar los mensajes segun el Foro:

Código:
SELECT *
FROM mensajes
WHERE id_mensaje = $view_topic
Y en el Formulario de envio de los mensajes, tengo los campos:

Cita:
ID
Titulo
Autor [Lo obtengo del campo Username del recordset filtrado por MM_Username]
Mensajes [Lo obtengo del campo Resp del recordset filtrado por MM_Username]
Image [Lo obtengo del campo Avatar del recordset filtrado por MM_Username]
Fecha
ID_Mensaje [Para saber a que mensaje responden los usuarios]
Esos marcados ahi, son ocultos, con la informacion de la tabla de usuarios, en el campo Value="<?php echo rsUsuarios['avatar']; ?>" por ejemplo.

Sera porque uso dos campos? Por ejemplo Mensajes y Resp? Yo lo que uso para actualizar los mensajes es esto:

Código PHP:
if (isset( $_POST['Submity']))
{
$ideal $row_viewtopic['id'];
mysql_query("UPDATE registro SET resp=resp+1 WHERE username = '$colname_rsUserID'");
mysql_query("UPDATE mensaje SET total_resp=total_resp+1 WHERE id = '$ideal'");

Destaco que el segundo es para sumar a los mensajes 1. Y 'Submity' es el Boton de enviar respuesta xD

Un saludo
__________________
CabaSoft Networks
  #6 (permalink)  
Antiguo 16/08/2008, 16:34
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 12
De acuerdo Respuesta: Actualizar 'Todo' Registro [DW]

Hola denuevo Juaniquillo

Mira, no me sale nada de nada... pruebo y nada.

Lei bien tu Primer Post, y creo que es Justo lo que necesitaba... Lo unico que quiero es ver si lo entendi, y que si es asi, me digas como solucionar esto que quedo inconcluso:

Cita:
Solo en la tabla noticias, paso el ID. Este se mantiene actualizado solo. Luego, he hecho un paso, elimine en los mensajes el campo Mensajes, solo me manejare con los mensajes de la tabla usuarios [RESP].
Entonces, a la hora de mostrar los datos, creo el Recordset de los mensajes. Obtengo de esta el ID del usuario que envio la noticia (Yo en mi campo de Mensajes, tengo un campo llamado ID_Escritor, que se rellena con el ID del usuario logueado en ese momento).
Una vez que obtengo la ID, hago la consulta para que me ponga la informacion del usuario con ese ID, entre ello sus Mensajes (Campo RESP) y los muestre.
Supongo que asi... deberia actualizarse bien, no?
Problema: Si solo paso el ID en mi formulario de inserccion de Noticias, como hago para que reconozca los campos de Avatar, Autor, etc?
Solucion: Al pasar el ID, ya tengo el usuario que la envio, entonces podre mostrarlos luego.

Asi es? O me equivoco en algo? No me intimido el codigo (Buen, un poco si jeje) Pero me cuesta saber donde va entre tanto lio que el DW me hizo... pero ire probando, cualquier cosa Edito!

Saludos
__________________
CabaSoft Networks
  #7 (permalink)  
Antiguo 16/08/2008, 17:17
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Actualizar 'Todo' Registro [DW]

Como te dije, lo mejor es no guardar nada del usuario en la tabla de respuestas, solamente el id del usuario. si tiene el id de usuario es más fácil sacar toda la información del usuario y de esa forma no tienes que actualizar nada. Enséñame el código del formulario para enviar un comentario y como está organizada tu tabla de mensajes.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #8 (permalink)  
Antiguo 16/08/2008, 18:35
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 12
De acuerdo Respuesta: Actualizar 'Todo' Registro [DW]

Holas nuevamente

Probe mas cosas, y no me quiere salir

Este es el codigo del DW con el Formulario:

Código PHP:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO respuestas (id, mensaje, ip, fecha, firma, id_escritor, id_mensaje) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['id'], "int"),
                       
GetSQLValueString($_POST['mensaje'], "text"),
                       
GetSQLValueString($_POST['ip'], "text"),
                       
GetSQLValueString($_POST['fecha'], "date"),
                       
GetSQLValueString($_POST['firma'], "text"),
                       
GetSQLValueString($_POST['id_escritor'], "int"),
                       
GetSQLValueString($_POST['id_mensaje'], "int"));

  
mysql_select_db($database_FS$FS);
  
$Result1 mysql_query($insertSQL$FS) or die(mysql_error());

  
$insertGoTo "mensaje.php?id=$view_topic";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));

Aqui el Formulario, en su esctructura:

Código PHP:
<form method="post" name="form1" action="<?php echo $editFormAction?>">
            <table align="center">
              <tr valign="baseline">
                <td nowrap align="right">Id Escritor</td>
                <td><label>
                  <input name="id_escritor" type="text" id="id_escritor" value="<?php echo $row_rsUserID['id']; ?>" readonly="readonly" />
                </label></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right" valign="top">Firma:</td>
                <td><textarea name="firma" cols="50" rows="5"></textarea>                </td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right">Ip:</td>
                <td><input type="text" name="ip" value="<?php echo "".$ip.""?>" size="32" readonly="readonly">Solo por medidas de seguridad!</td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right" valign="top">Mensaje:</td>
                <td><p>
                    <textarea name="mensaje" cols="50" rows="5" id="mensaje"></textarea>
                </p>                </td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right">Adjunto</td>
                <td><label>
                  <input name="adjunto" type="text" id="adjunto" size="32" />
                Dejalo vacio si no queres subir nada!</label></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right">Fecha:</td>
                <td><input type="text" name="fecha" value="<?php echo "".$fecha.""?>" size="32" readonly="readonly"></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right"><label></label></td>
                <td><input name="Submity" type="submit" class="subHeader" id="Submity" onclick="MM_validateForm('username','','R','password','','R','autor','','R','email','','RisEmail','avatar','','R','mensaje','','R');return document.MM_returnValue" value="Responder"></td>
              </tr>
            </table>
            <input name="id" type="hidden" id="id" value="" />
            <input type="hidden" name="id_mensaje" value="<?php echo $row_viewtopic['id']; ?>">
            <input type="hidden" name="MM_insert" value="form1">
          </form>
Y mi base de datos esta asi:

Mensajes:

ID - ID_Mensaje - ID_Escritor - IP - Fechar - Firma

Usuarios

ID - Username - Password - Email - Edad - Pais - Resp (Mensajes)

~~~~~~~~~~~~
De los ID de arriba, son el que autoincrementa, el que vincula segun la categoria del mensaje y el que obtiene el ID del usuario que escribe.
Creo un Recordset filtrado por 'username = Variable Sesion / MM_Username' para obtener los datos del user logueado y pasar el ID del escritor.
~~~~~~~~~~~~

El recordset esta asi:

Código PHP:
$colname_rsUser "-1";
if (isset(
$_GET['id_escritor'])) {
  
$colname_rsUser $_GET['id_escritor'];
}
mysql_select_db($database_FS$FS);
$query_rsUser sprintf("SELECT * FROM registro WHERE id = %s"GetSQLValueString($colname_rsUser"int"));
$rsUser mysql_query($query_rsUser$FS) or die(mysql_error());
$row_rsUser mysql_fetch_assoc($rsUser);
$totalRows_rsUser mysql_num_rows($rsUser); 
Supuestamente, toma el ID del autor del mensaje, y saca los datos de ese usuario para mostrarlos... Pero no muestra nada, solamente aparecen los datos del mensaje [Mensaje, IP, Fecha, etc] Pero del usuario aparecen en blanco.
Asi los muestro

Código PHP:
<?php echo $rsUser['username']; ?>
Pero nada... Espero una mano, ahora quedo un pokito mas organizado.

Saludos y Gracias x todo
__________________
CabaSoft Networks
  #9 (permalink)  
Antiguo 16/08/2008, 19:17
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 12
Respuesta: Actualizar 'Todo' Registro [DW]

Juaniquillo.. probe y no hay manera! Estoy por rendirme

Es broma... Sigo probando, ahora logre que se 'Muestre' al menos los datos, osea aparecen datos.. lo malo es que SIEMPRE DEL MISMO USER.

Asi quedo la consulta:

Código PHP:
$Hunta_rsUser "-1";
if (isset(
$row_rsRespuestas['id_escritor'])) {
  
$Hunta_rsUser $row_rsRespuestas['id_escritor'];
}
mysql_select_db($database_FS$FS);
$query_rsUser sprintf("SELECT * FROM registro WHERE id = %s"GetSQLValueString($Hunta_rsUser"int"));
$rsUser mysql_query($query_rsUser$FS) or die(mysql_error());
$row_rsUser mysql_fetch_assoc($rsUserForon);
$totalRows_rsUser mysql_num_rows($rsUser); 
La de los usuarios, y la del mensaje es asi:

Código PHP:
mysql_select_db($database_FS$FS);
$query_rsRespuestas "SELECT * FROM respuestas WHERE id_mensaje = $view_topic";
$rsRespuestas mysql_query($query_rsRespuestas$FS) or die(mysql_error());
$row_rsRespuestas mysql_fetch_assoc($rsRespuestas);
$totalRows_rsRespuestas mysql_num_rows($rsRespuestas); 
Y eso que cuando miro los mensajes, para poder ver que hay mal, pongo ademas el campo ID_ESCRITOR para ver quien lo envio... y aparece en unos el ID 2 que es un usuario distinto al ID 5 que tambien aparece... Digamos que los campos que deberian mostrar los datos del usuario, estan mal porque aparecen todos del mismo user, el avatar del mismo user en todas las respuestas, etc.

Parece que la ID_Escritor no quiere pasar bien, o hay algo raro que no supe yo hacer. Cambie en un momento desde DW ParametroURL por VariableSesion, y afortunadamente, me repetia todos los datos del usuario Logueado, asi que ahi esta el problema, pero no se como resolverlo.

Saludos
__________________
CabaSoft Networks
  #10 (permalink)  
Antiguo 16/08/2008, 20:26
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 12
Respuesta: Actualizar 'Todo' Registro [DW]

EDITADO:

Bueno, luego de tanto meter mano... y 'pensar' un poquito mas antes de hacer nada, lo logre!

Te agradezco nuevamente tu ayuda juaniquillo, con esta van muchas!!

Solucion Por si alguno lo requiere, era tal cual juaniquillo puso en el Primer Post suyo, pero dentro del Loop de donde se muestran las noticias... Yo muy bruto lo cree con DW y no lo movi, lo deje arriba, y me mostraba las del primer usuario siempre

Saludos y Nos estamos viendo!
__________________
CabaSoft Networks

Última edición por nicolyto77; 16/08/2008 a las 21:17
  #11 (permalink)  
Antiguo 17/08/2008, 09:15
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Actualizar 'Todo' Registro [DW]

Pues que bien que pudiste hacerlo. Veo que le estás perdiendo miedo al código. Bien por ti. saludos.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:35.