Foros del Web » Programando para Internet » PHP »

mostrar una sola imagen(sera esto imposible???¿¿

Estas en el tema de mostrar una sola imagen(sera esto imposible???¿¿ en el foro de PHP en Foros del Web. bueno creo que esto sera imposible pero por preguntar que no quede :D tengo un sistema que lee imagenes de varios directorios y me muestra ...
  #1 (permalink)  
Antiguo 06/08/2004, 15:54
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
mostrar una sola imagen(sera esto imposible???¿¿

bueno creo que esto sera imposible pero por preguntar que no quede :D

tengo un sistema que lee imagenes de varios directorios y me muestra todas las imagenes,quisiera que me mostrara 1 por cada directorio,supongo que es imposible ya que lee todo el directorio.

Código PHP:
<?
require("conecta.php");     
$resultado=mysql_query("SELECT path FROM path where pro_id=$id"); 
$contador=0;
while (
$row=mysql_fetch_array($resultado)){ 
$dir $row['path']; 
if (
is_dir($dir)) { 
   if (
$dh opendir($dir)) { 
       while ((
$file readdir($dh)) !== false) { 
           if (
$file != "." && $file != ".." && !is_dir($file)){ 
              echo 
"<img src='$dir/$file'>"
           } 
      } 
       
closedir($dh); 
   } 
 }
 }
mysql_close($conectar);
?>

Última edición por Newphp; 06/08/2004 a las 15:56
  #2 (permalink)  
Antiguo 06/08/2004, 16:01
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
No sé si lo que quieras es mostrar una imagen del directorio aleatoriamente.
Si ese fuera el caso podrías guardar todos los nombres de archivos en un array en lugar de hacerles el "echo".
Luego tomas una imagen aleatoria del array y recién la muestras con "echo". Para esto puedes utilizar funciones como shuffle() o array_rand().

Saludos
  #3 (permalink)  
Antiguo 06/08/2004, 16:16
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Podría ser más o menos así:
Código PHP:
while($row=mysql_fetch_array($resultado)){
    
$dir $row['path'];
    if (
is_dir($dir)) {
       if (
$dh opendir($dir)) {
           while ((
$file readdir($dh)) !== false) {
               if (
$file != "." && $file != ".." && !is_dir($file)){
                  
$imagenes_array[] = $dir.'/'.$file;
               }
          }
           
closedir($dh);
       }
    }
}
mysql_close($conectar);
$claves array_rand($imagenes_array2);
foreach(
$claves as $v){
    echo 
'<img src=\"'.$imagenes_array[$v].'\">';

Eso suponiendo que quieres dos imágenes. Si quieres más de dos, sólo cambias el segundo parámetro de array_rand().
http://www.php.net/manual/es/function.array-rand.php

Saludos
  #4 (permalink)  
Antiguo 06/08/2004, 16:18
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 22 años, 5 meses
Puntos: 1
nada es imposible.. :p (almenos en la programacion)

Si lo que quieres es mostrar la primera imagen despues del echo añade un break;
__________________
Usuario Registrado de linux #374849
  #5 (permalink)  
Antiguo 06/08/2004, 16:21
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
WOOOOOOOOOOOOWWWWWWWW bravisimo dios lo que aun me queda por aprender gracias no tenia ni la mas minima idea de como hacer esto asias a los dos :D
  #6 (permalink)  
Antiguo 06/08/2004, 18:57
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
AGHHGHHGHG toy desesperado tengo otro problemilla con las imagenes no se como hacerlo para que cuando alla leido una de las rutas pongo debajo Siguiente y debajo de la palabra siguiente(por ejemplo)siga la siguiente ruta y asi seccesivamente :( he probado de todo pero no me salgo dios toy estresado xD a las 3 de la marugada y peleandome con el php.

bueno muchas gracias y perdonad las molestias
  #7 (permalink)  
Antiguo 07/08/2004, 10:37
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
hago un mini up...porque no tengo ni idea de como hacer eso :( si saco un while solo me lee una de las rutas y si saco el otro no me lee las imagenes ^^u
  #8 (permalink)  
Antiguo 07/08/2004, 15:43
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Creo que me enredé un poco en el post anterior.
Esto debería servir (aunque la idea es la misma)
Código PHP:
while($row=mysql_fetch_array($resultado)){
    
$dir $row['path'];
    if (
is_dir($dir)) {
       if (
$dh opendir($dir)) {
           while ((
$file readdir($dh)) !== false) {
               if (
$file != "." && $file != ".." && !is_dir($file)){
                  
$imagenes_array[] = $dir.'/'.$file;
               }
          }
           
closedir($dh);
       }
    }
}
mysql_close($conectar);

if(!isset(
$_GET['posición'])){
   
$posición 0;
}else{
   
$posición $_GET['posición'];
}

$total_posiciones count($imagenes_array);

echo 
'<img src=\"'.$imagenes_array[$posición].'\"><br />';
if(
$posicion>0){
   echo 
'<a href=\"'.$_SERVER['PHP_SELF']."?posicion=".($posicion-1).'\">anterior</a>';
}
if(
$posicion<$total_posiciones-1){
   echo 
'<a href=\"'.$_SERVER['PHP_SELF']."?posicion=".($posicion+1).'\">siguiente</a>';

Saludos

Última edición por jpinedo; 07/08/2004 a las 15:46
  #9 (permalink)  
Antiguo 07/08/2004, 16:23
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
muchas gracias ^^,solo hay un problema siempre me muesta la misma imagen :( ahora lo mirare :D haber si lo puedo arreglar,muchas gracias:D
  #10 (permalink)  
Antiguo 07/08/2004, 16:30
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ok... no lo probé pero la idea es esa.
Revisa en el html generado(ver->código fuente) los enlaces el número que se genera para posicion=##

Saludos
  #11 (permalink)  
Antiguo 07/08/2004, 16:32
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
ok,gracias :D esta noche lo probare :D si no lo consigo ya lo posteare y si lo consigo....pues tambien :D
  #12 (permalink)  
Antiguo 07/08/2004, 16:54
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ok... el problema era que había puesto mal un nombre de variable (había puesto $posición con tilde). Aquí está corregido y todo funciona bien.
Código PHP:
echo "<br /><br />img src=\"".$imagenes_array[$posicion]."\"<br />";
if(
$posicion>0){
   echo 
"<a href=\"".$_SERVER['PHP_SELF']."?posicion=".($posicion-1)."\">anterior</a><br/>";
}
if(
$posicion<$total_posiciones-1){
   echo 
"<a href=\"".$_SERVER['PHP_SELF']."?posicion=".($posicion+1)."\">siguiente</a>";

Saludos
  #13 (permalink)  
Antiguo 07/08/2004, 16:59
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
wooow gracias :D
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 15:54.