Foros del Web » Programando para Internet » PHP »

Galería imágenes: cambiar orden imágenes

Estas en el tema de Galería imágenes: cambiar orden imágenes en el foro de PHP en Foros del Web. Hola! estoy haciendo una aplicación para crear colecciones de imágenes. Ya la tengo bastante avanzada, pero tengo un problema: quiero que sea posible modificar el ...
  #1 (permalink)  
Antiguo 24/12/2006, 10:17
 
Fecha de Ingreso: mayo-2006
Mensajes: 15
Antigüedad: 17 años, 10 meses
Puntos: 0
Galería imágenes: cambiar orden imágenes

Hola!

estoy haciendo una aplicación para crear colecciones de imágenes. Ya la tengo bastante avanzada, pero tengo un problema: quiero que sea posible modificar el orden de las imágenes una vez creada una colección, pero no acabo de ver cómo puedo hacerlo.
El código que utilizo es el siguiente:

Código PHP:
            <?php
            
            
// Comprobamos si se ha enviado el formulario
            
$fallo='';
            if (isset(
$_POST['ordenarimg'])) {
                if (
$_POST['$idfoto'] == $_POST['$idfoto']) {
                    
$fallo.= "Debe adjudicar a cada imagen una posición distinta.";
                    echo 
"<B><font color=red size=2>$fallo</font></B>";
                } else {
                    echo 
"<B><font color=blue size=2>Todo correcto</font></B>";
                }
            }
            
            
// Seleccionamos la información asociada a las fotos contenidas en el álbum escogido por el usuario
            
$sql "SELECT id, posicion, tituloimg, comentario, rutathumb FROM fotografia WHERE album_id ='".($_SESSION['album'])."' ORDER BY posicion";
            
$result mysql_query($sql);
                
// $fotografias = mysql_fetch_array($result);
            // Mostramos los datos en pantalla     
            
echo "<form method='post' action='ordenarimg.php'>"
            echo 
"<font size='2'>Escriba en los cuadros de texto la posición que desee que ocupe cada imagen en el álbum y a continuaci&oacute;n presione el bot&oacute;n &quot;Ordenar&quot;. Asegúrese de no asignar el mismo número a dos o más imágenes.</font>";
            echo 
"<br>";
            echo 
"<br>";
                
// Mostramos la información asociada a las imágenes
                
$numfilas=mysql_num_rows($result); 
                echo 
"<b><font size='2'>En este álbum hay un total de ".$numfilas." imágenes.</font></b>";
                echo 
"<br>";
                
$contadorfotos=0// nos servirá para contar el número de fotos que hay en el álbum
                
while ($fotografias mysql_fetch_row($result)) {
                    
$idfoto $fotografias[0];
                    echo 
"<table width='350' border='1' bordercolor='#B0B0B0' cellpadding=5> \n";
                    echo 
"<tr> \n";
                    echo 
"<td width='92'><img src=\"$fotografias[4]\"></td> \n";
                    echo 
"<td width='252'><table align='left'>
                                <tr>
                                <td align='left'><b><font size='2'>TÍTULO: $fotografias[2]</font></b></td>
                                <tr>
                                <td align='left'><b><font size='2'>POSICIÓN: $fotografias[1]</font></b></td>
                                </tr>
                                <tr>
                                <td align='left' valign='top'><b><font size='2'>POSICIÓN NUEVA: <input type='text' size='4' name='$idfoto' value='$fotografias[1]'> 
                         </table></td> \n"
;
                    echo 
"<br>";
                    echo 
"</table>";
                    
$contadorfotos++;
                }
            echo 
"<br>";
            echo 
$contadorfotos;
            echo 
"<table>";
            echo 
"<input type='hidden' name='numfotos' value='$numfilas'> \n";
            echo 
"<tr><td><div align='center'><input type='submit' name='ordenarimg' value='ORDENAR'></div></td></tr>";
            echo 
"</table>";
            echo 
"</form>";
            
?>
Para ver el aspecto de la página, y el error que obtengo, pueden ver la siguiente url: //einflinux1.uoc.es/~mrodriguezpir/media/ordenar.jpg

Como se puede ver en el código, a cada campo de texto le asigno un valor de 'name' distinto, que corresponde con la id que tiene cada imagen en la BBDD. Sin embargo, no consigo que este valor sea pasado al enviar el formulario. ¿Cómo lo podría hacer?

Por otro lado, ¿cómo podría comparar los distintos valores introducidos en el formulario para asegurarme de que no hay dos iguales? Obviamente, no puede haber dos imágenes que ocupen una misma posición en el álbum.

Gracias a los que leais este mensaje, y un saludo!

mikrophi
  #2 (permalink)  
Antiguo 25/12/2006, 15:51
 
Fecha de Ingreso: mayo-2006
Mensajes: 15
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Re: Galería imágenes: cambiar orden imágenes

Bueno, en vista del éxito quizás es que no me he explicado bien... Plantearé la duda de una manera más genérica a ver si así alguien se anima!

Lo que trato de hacer es modificar varios registros de una BBDD a la vez. A cada imagen que se añade a un álbum se le asigna automáticamente un número que determinará el orden en que se van a mostrar todas las imágenes que componen ese álbum. Lo que yo quisiera es que ese número que determina el orden de las imágenes pueda ser modificado por el usuario si es que quiere reordenarlas.

Para ello hago una consulta a la BBDD:

Código PHP:
$sql "SELECT id, posicion, tituloimg, comentario, rutathumb FROM fotografia WHERE album_id ='".($_SESSION['album'])."' ORDER BY posicion";
$result mysql_query($sql); 

El campo "id" es la identificacion de cada foto en la BBDD, y "posicion" indica el orden. A continuación muestro estos datos en pantalla:

Código PHP:
while ($fotografias mysql_fetch_row($result)) {
                    
$idfoto $fotografias[0];
                    echo 
"<table width='350' border='1' bordercolor='#B0B0B0' cellpadding=5> \n";
                    echo 
"<tr> \n";
                    echo 
"<td width='92'><img src=\"$fotografias[4]\"></td> \n";
                    echo 
"<td width='252'><table align='left'>
                                <tr>
                                <td align='left'><b><font size='2'>TÍTULO: $fotografias[2]</font></b></td>
                                <tr>
                                <td align='left'><b><font size='2'>POSICIÓN: $fotografias[1]</font></b></td>
                                </tr>
                                <tr>
                                <td align='left' valign='top'><b><font size='2'>POSICIÓN NUEVA: <input type='text' size='4' name='$idfoto' value='$fotografias[1]'> 
                         </table></td> \n"
;
                    echo 
"<br>";
                    echo 
"</table>";
                }
            echo 
"<br>";
            echo 
"<table>";
            echo 
"<input type='hidden' name='numfotos' value='$numfilas'> \n";
            echo 
"<tr><td><div align='center'><input type='submit' name='ordenarimg' value='ORDENAR'></div></td></tr>";
            echo 
"</table>"
Como veis, creo unos campos de texto en los que el usuario introducirá la nueva posición que le corresponderá a cada imagen. Para poder reconocer cada campo de texto, le asigno como "name" la id de la foto a que hace referencia => name=$idfoto, donde $idfoto = $fotografias[0];

Hasta aquí, creo que todo bien, lo que pasa es que llegado a este punto, no sé cómo comprobar que todos los campos de texto están llenos ni, en segundo lugar, cómo comprobar que no hay dos campos de texto que contienen el mismo valor. ¿Alguna sugerencia? 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:26.