Foros del Web » Programando para Internet » PHP »

Actualizar registro de tabla pinchando en imagenes.

Estas en el tema de Actualizar registro de tabla pinchando en imagenes. en el foro de PHP en Foros del Web. Wenas, tengo una tabla con la informacion de los usuarios (nombre, email, etc...) donde tambien guardo la ruta del avatar que usa y para elegir ...
  #1 (permalink)  
Antiguo 04/08/2009, 12:37
Avatar de Joystickoso  
Fecha de Ingreso: enero-2009
Mensajes: 127
Antigüedad: 15 años, 3 meses
Puntos: 3
Pregunta Actualizar registro de tabla pinchando en imagenes.

Wenas, tengo una tabla con la informacion de los usuarios (nombre, email, etc...) donde tambien guardo la ruta del avatar que usa y para elegir el avatar, tengo una especie de galeria donde salen todos junto al nombre de archivo, quien lo añadio y cuando.
Lo que quiero hacer es que al pinchar en una de las imagenes actualice el registro de usuarios y cambie su avatar por el que ha clicado.
Pues bien, he conseguido hacerlo excepto que da igual en que imagen pinche que siempre actualiza el registro con los datos de la primera imagen de la tabla.
Esta seria la tabla:
Código PHP:
<td width="500" valign="top"><?php do { ?>
      <table width="100%" border="0" cellpadding="0" cellspacing="0">
        <!--DWLayoutTable-->
        <tr>
          <td width="263" height="41" align="center" valign="middle"><span class="Estilo9">Titulo:<?php echo $row_Recordset2['titulo']; ?></span></td>
          <td width="237" rowspan="4" align="center" valign="middle"><form name="form1" method="POST" action="<?php echo $editFormAction?>"><p>
          <input type="hidden" name="rutavatar" value="<? echo $row_Recordset2['rutavatar'];?>" />
          <input type="hidden" name="avatar" value="<? echo $row_Recordset2['avatar'];?>" />
          <input type="hidden" name="rutathumb" value="<? echo $row_Recordset2['rutathumb'];?>" />
          <input type="hidden" name="titulo" value="<? echo $row_Recordset2['titulo'];?>" />
          <input type="hidden" name="Nombre" value="<? echo $row_userdata['Nombre'];?>" />
          <a class="enlace" href="#" onclick="document.forms.form1.submit();return false">
      <img src="<? echo $row_Recordset2['rutavatar'];?>" border="0" alt="enviar"></a></p>
              
              <input type="hidden" name="MM_update" value="form1">
          </form>
            <p>&nbsp;</p></td>
        </tr>
        <tr>
          <td height="41" align="center" valign="middle"><span class="Estilo9">Nombre:<?php echo $row_Recordset2['avatar']; ?></span></td>
        </tr>
        <tr>
          <td height="41" align="center" valign="middle"><span class="Estilo9">A&ntilde;adido por: <?php echo $row_Recordset2['addpor']; ?></span></td>
        </tr>
        <tr>
          <td height="41" align="center" valign="middle"><span class="Estilo9">Subido el <?php echo $row_Recordset2['fecha']; ?>a las <?php echo $row_Recordset2['hora']; ?></span></td>
        </tr>
        <tr>
          <td height="0"></td>
          <td></td>
        </tr>
                            </table>
      <?php } while ($row_Recordset2 mysql_fetch_assoc($Recordset2)); ?></td>
Se ve que al repetir la tabla va aumentando el registro de rutas,nombres de archivo,etc pero no lo hace en lo que se refiere al formulario. Si esto se puede hacer, que hago mal?
No se si me explico bien que soy mu novato.
Gracias por adelantado.
Salud'os!!
  #2 (permalink)  
Antiguo 05/08/2009, 09:59
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Actualizar registro de tabla pinchando en imagenes.

creo que tu error esta en esta linea

<a class="enlace" href="#" onclick="document.forms.form1.submit();return false">

siempre estas mandando el form1, por lo que siempre envia la primer imagen, tendria que incorporar un contador que te modifique el nombre de tu form y el nombre del form que rediriges


Código PHP:
<td width="500" valign="top">
    <?php
//esta es la variable que cuenta tus formularios
        
$contador=1;
         do { 
?>
      <table width="100%" border="0" cellpadding="0" cellspacing="0">
        <!--DWLayoutTable-->
        <tr>
          <td width="263" height="41" align="center" valign="middle"><span class="Estilo9">Titulo:<?php echo $row_Recordset2['titulo']; ?></span></td>
          <td width="237" rowspan="4" align="center" valign="middle">
    <?php 
//aqui abre el formulario n
echo '<form name="form'.$contador.'" method="POST" action="$editFormAction">';<p>
          <
input type="hidden" name="rutavatar" value="<? echo $row_Recordset2['rutavatar'];?>" />
          <
input type="hidden" name="avatar" value="<? echo $row_Recordset2['avatar'];?>" />
          <
input type="hidden" name="rutathumb" value="<? echo $row_Recordset2['rutathumb'];?>" />
          <
input type="hidden" name="titulo" value="<? echo $row_Recordset2['titulo'];?>" />
          <
input type="hidden" name="Nombre" value="<? echo $row_userdata['Nombre'];?>" />
          <?
php
//aqui envia el formulario n
 
echo '<a class="enlace" href="#" onclick="document.forms.form'.$contador.'submit();return false">';?>
      <img src="<? echo $row_Recordset2['rutavatar'];?>" border="0" alt="enviar"></a></p>
              
              <?
//esta linea no se exactamente que hace para ti pero creo que tambien deberia de agregarle eso
 
echo '<input type="hidden" name="MM_update" value="form'.$contador.'">';
          </
form>
            <
p>&nbsp;</p></td>
        </
tr>
        <
tr>
          <
td height="41" align="center" valign="middle"><span class="Estilo9">Nombre:<?php echo $row_Recordset2['avatar']; ?></span></td>
        </tr>
        <tr>
          <td height="41" align="center" valign="middle"><span class="Estilo9">A&ntilde;adido por: <?php echo $row_Recordset2['addpor']; ?></span></td>
        </tr>
        <tr>
          <td height="41" align="center" valign="middle"><span class="Estilo9">Subido el <?php echo $row_Recordset2['fecha']; ?>a las <?php echo $row_Recordset2['hora']; ?></span></td>
        </tr>
        <tr>
          <td height="0"></td>
          <td></td>
        </tr>
                            </table>

      <?php
// y aqui incrementa tu variable contadora de formularios
 
contador++; ?>


      <?php } while ($row_Recordset2 mysql_fetch_assoc($Recordset2)); ?></td>
suerte y cualquier cosa aqui estamos
  #3 (permalink)  
Antiguo 05/08/2009, 15:16
Avatar de Joystickoso  
Fecha de Ingreso: enero-2009
Mensajes: 127
Antigüedad: 15 años, 3 meses
Puntos: 3
De acuerdo Respuesta: Actualizar registro de tabla pinchando en imagenes.

Entendido, es una muy buena idea.
Aunque creo que voy a tener que cambiarlo todo para poder uisarlo asi porque lo he hecho con el dreamweaver fifti fifti y claro, por eso era lo de
Código:
<input type="hidden" name="MM_update" value="form'.$contador.'">
Porque el la conexion y la actualizacion de la base de datos lo ha escrito el dreamweaver.
Aun asi estoy bastante cerca.
Hay una parte que no se como poner:
Código PHP:
$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 seguridad SET rutavatar=%s, avatar=%s, rutathumb=%s, tituloavatar=%s WHERE Nombre=%s",
                       
GetSQLValueString($_POST['rutavatar'], "text"),
                       
GetSQLValueString($_POST['avatar'], "text"),
                       
GetSQLValueString($_POST['rutathumb'], "text"),
                       
GetSQLValueString($_POST['titulo'], "text"),
                       
GetSQLValueString($_POST['Nombre'], "text"));

  
mysql_select_db($database_comentarios$comentarios);
  
$Result1 mysql_query($updateSQL$comentarios) or die(mysql_error());

  
$updateGoTo "../usuarios2.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$updateGoTo .= (strpos($updateGoTo'?')) ? "&" "?";
    
$updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$updateGoTo)); 
Haciendo lo que me has comentado $contador=1 he usado tambien $formulario="form$contador"
Lo que no se como poner es la quinta linea y he probado:
Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "$formulario")) 
y asi
Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == $formulario)) 
Pero de ninguna de las formas me funciona.
Seguro que es alguna bobada que me dejo, seguire probando a ver.
Gracias.
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 02:00.