Foros del Web » Programando para Internet » PHP »

Determinar si valores de array existen en otro array

Estas en el tema de Determinar si valores de array existen en otro array en el foro de PHP en Foros del Web. Código PHP: $variable  =  1 ; //seteamos a 0 el sumador      $valor  =  3 ; //seteamos a 4 las imagenes a mostrar por cada linea if(  $directorio  =  opendir ( "xxxx/xxxx/images/principal/" ) ){     echo  "\n\t<table>\n\t\t<tr>\n" ;     while ( false  ...

  #31 (permalink)  
Antiguo 15/08/2012, 10:41
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

Código PHP:
$variable 1;//seteamos a 0 el sumador
    
$valor 3;//seteamos a 4 las imagenes a mostrar por cada linea

if( $directorio opendir("xxxx/xxxx/images/principal/") ){
    echo 
"\n\t<table>\n\t\t<tr>\n";
    while (
false !== ($archivo readdir($directorio))) {
        if(
$archivo === '.' || $archivo === '...') continue;
        
            if (
strpos($archivo'.gif',1) || strpos($archivo'.jpg',1) || strpos($archivo'.png',1) || strpos($archivo'.bmp',1)) {
                if(
$variable $valor){
                    echo 
"<tr>\n";
                }
                
$archi pathinfo($archivo);
                
$sinExtension str_replace('.'.$archi['extension'],'',$archivo);
            
                echo 
"\n\t\t<td class='posada'>\n<a href='posada/ver_posada2.php?codigo=$sinExtension'>";
                echo 
"\n\t\t<img src='xxxx/xxxx/images/principal/$archivo' width='170' height='170' border='0'>\n";
                echo 
"";
                echo 
"<td>$nombre_posada</td>";
                echo 
"<td></td>";
                echo 
"<td></td>";

                if(
$variable >= $valor){// si es mayor o igual añadimos </TR>
                    
echo "</tr>";
                    
$variable 0;//seteamos a 0 el sumador y volvemos a empezar si quedan mas imagenes
            
}//end if

            
$variable++;//empezamos a sumar +1
        
}
    }
//end while
closedir($directorio);
echo 
"</table>\n";

eso debería estar bien.. veré lo demás..
Código PHP:

// aqui remplazas la extencion, eso esta bien, para mostrar SOLO el nombre de el fichero
$sinExtension str_replace('.'.$archi['extension'],'',$archivo); $archivo2[] = $sinExtension, -1);

//aqui no necesitas substr.. la extencion ya no existe, solo te queda el nombre del fichero
$archivo2[] = $sinExtension
en cuanto a.. :
Código PHP:
foreach($campos as $valor){ //recorremos el array1 valor por valor
if(in_array($valor$archivo2) !== false){ //y le preguntamos: esta el valor en el que estamos posicionados actualmente, en el array 2?

    
echo "si esta! " $valor .'<br>';
      }
    else {
        echo 
"no esta .." $valor '<br>';
     }

estas comparando IDS con Nombres de ficheros, eso esta bien?
(en otras palabras.. si el ID es un numero, y el fichero un nombre.. nunca encontrara nada)
array_search = devuelve la posición del array en la que se encuentra la búsqueda actual, si coincide el valor buscado o false.
in_array = devuelve true, o false, si encuentra/ o no

ten cuidado con $valor, la sobre escribes en el foreach, ya estaba declarada antes de hacer el mismo
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}

Última edición por KsrZ; 15/08/2012 a las 11:36
  #32 (permalink)  
Antiguo 15/08/2012, 12:13
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

si según lo que entiendo de la búsqueda que hace en la base de datos obtendrá los ids necesarios a mostrar , ids que corresponden con el nombre del fichero sin la extensión, lo cual si correspondería según comenta kimmy
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #33 (permalink)  
Antiguo 15/08/2012, 16:15
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Determinar si valores de array existen en otro array

Gracias KsrZ y mogurbon por sus consejos.

El código si me hace bien la evaluación, pero el problema que tengo es como según esa evaluación , me muestre las fotos del directorio.

Eso iria en el foreach en donde dice echo "si esta! " . $valor .'<br>';

Código PHP:
Ver original
  1. foreach($campos as $valor){ //recorremos el array1 valor por valor
  2. if(in_array($valor, $archivo2) !== false){
  3.       //AQUI LAS FOTOS
  4.       }
  5.     else {
  6.         echo "no esta .." . $valor . '<br>';
  7.      }
  8. }

????
__________________
Caminando con el corazón partío
  #34 (permalink)  
Antiguo 15/08/2012, 21:27
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

Código PHP:
Ver original
  1. foreach($campos as $valor){ //recorremos el array1 valor por valor
  2. if(in_array($valor, $archivo2) !== false){
  3.       //AQUI LAS FOTOS
  4.       }
  5.     else {
  6.         echo "no esta .." . $valor . '<br>';
  7.      }
  8. }
eso fue lo que necesitabas a la hora de comparar los valores de los arrar,
si una foto, esta en el array cual lo comparas,
if(in_array($valor, $archivo2) !== false){
//AQUI LAS FOTOS - si, van ahi
}
else{
// sino, esta parte es opcional. aqui puedes usar un continue, o bien quitarlo si no lo utilizaras
}
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #35 (permalink)  
Antiguo 15/08/2012, 21:27
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

y si en lugar de guardar un arreglo con los puros archivos sin extensión los guardas en el arreglo con todo y la extensión y vas comparando en un doble foreach cada elemento pero haciendo un substr menos las ultimas cuatro letras , que serian la extensión y cuando lo encuentres pos ya lo metes en el tag de img de html?

ve esta función me late que te puede servir para esto

http://php.net/manual/es/function.glob.php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Última edición por mogurbon; 15/08/2012 a las 22:01
  #36 (permalink)  
Antiguo 16/08/2012, 10:20
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Determinar si valores de array existen en otro array

Hola, logré hacerlo asi pero no me muestra las imagenes en columnas de 3 filas:

Código PHP:
Ver original
  1. foreach($campos as $dato){
  2.  if(in_array($dato, $archivo2) !== false){
  3.         $dato2 = str_replace('.'.$archi['extension'],'',$dato);
  4.                 echo "
  5.                 <table>\n
  6.                 <tr>\n";
  7.                
  8.                 if($variable > $valor){
  9.                     echo "<tr>\n";
  10.                 }
  11.                 echo "
  12.                 <td class='posada'>\n<a href='posada/ver_posada2.php?codigo=$dato2'>";
  13.                 echo "
  14.                 <img src='xxxx/xxxx/images/principal/$dato' width='170' height='170' border='0'>\n";
  15.                     echo "<td></td>";
  16.                     echo "<td></td>";
  17.                    
  18.         if($variable >= $valor){// si es mayor o igual añadimos </TR>
  19.             echo "</tr>";
  20.            
  21.             $variable = 0;//seteamos a 0 el sumador y volvemos a empezar si quedan mas imagenes
  22.         }//end if
  23.         $variable++;//empezamos a sumar +1
  24.         closedir($directorio);
  25.         echo "</table>\n";
  26.       }
  27. }

Como puedo mostrarlas?
__________________
Caminando con el corazón partío
  #37 (permalink)  
Antiguo 16/08/2012, 10:59
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

la estructura que creas con html esta mal
no cerraste el <a> ni la columna <td>
mira
<table>
<tr> <!-- fila -->
<td></td><td></td><td></td> <!--3 Columnas -->
</tr>
</table>

por cierto.. si revisas todo una carpeta, recuerda que te toma "."(carpeta actual) como fichero si no lo chequeas.. y también ".."(atrás)
como te mostré en el ejemplo de arriba..
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #38 (permalink)  
Antiguo 16/08/2012, 11:13
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

es cuestion de ir checando el pex a mi me suena a que debes de tener un contador cada que encuentres el elemento e irlo incrementando , pero colo cuando lo encuentres y cuando lo hagas generar un cerrado y abierto de renglon

Código PHP:
Ver original
  1. echo "</tr><tr>";
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #39 (permalink)  
Antiguo 16/08/2012, 11:53
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

a mi como que se me habia ocurrido hacer algo asi


Código PHP:
Ver original
  1. <?
  2. #pseudocodigo no esta probado quien sabe si jale jajaja
  3.  
  4. $query2 = "SELECT id_posada, id_foto, ciudad FROM posadas WHERE ciudad='$ciudad2'";
  5. $res = mysql_query ($query2);//lanzo la consulta
  6. $campos = array();//
  7. $supermugrosoarreglo=array();#inicializo el array si no luego el triby me calabacea XD
  8. $i=1;#quiero el indice en 1 para aprovechar el operador %
  9. while ($camps = mysql_fetch_array($res)){
  10.     foreach(glob("xxxx/xxxx/images/principal/*") as $archivo){
  11.         if ($camps['id_posada']==substr($archivo,0,strlen($archivo)-4)){#comparo los ids contra todos los archivos sin las 4 ultimas letras osease quitandole la extension
  12.             $supermugrosoarreglo[$i++]=$archivo;#lo guardo en un arreglo
  13.         }
  14.     }
  15. }
  16. $num=count($supermugrosoarreglo);
  17. ?>
  18. <table>
  19. <tr>
  20. <?
  21. for ($i=1;$i<=$num;$i++){#usar el 1 como inicio para aprovecharlo para comparar con modulo
  22. ?>
  23.         <td><img src='xxxx/xxxx/images/principal/<? echo $supermugrosoarreglo[$i]; ?>' width='170' height='170' border='0'></td><!--aqui voy echando la imagen por columnas -->
  24. <?
  25.     if (($i%3)==0){#si son 3 columnas
  26.         if($i!=$num){#reviso que no sea el ultimo ciclo para cerrar renglon y abrir otro
  27.             ?>
  28.                 </tr><tr>
  29.             <?
  30.         else{#si el el ultimo simplemente lo cierro
  31.             ?>
  32.                 </tr>
  33.             <?
  34.         }
  35.    
  36.     }
  37. }        
  38. ?>
  39. <table>
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #40 (permalink)  
Antiguo 16/08/2012, 12:06
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

@mogurbon no lo tomes a mal, buen ejemplo
Código PHP:
//pero me imagino que sabes que pueden dar algunos problemas:
<? //short tag, <?php //mejor...
substr($archivo,0,strlen($archivo)-4); //y si usara 1 extensión diferente de 3?
//[creo y espero que no exista tal cosa en imágenes...]
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #41 (permalink)  
Antiguo 16/08/2012, 12:11
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

Cita:
Iniciado por KsrZ Ver Mensaje
@mogurbon no lo tomes a mal, buen ejemplo
Código PHP:
//pero me imagino que sabes que pueden dar algunos problemas:
<? //short tag, <?php //mejor...
substr($archivo,0,strlen($archivo)-4); //y si usara 1 extensión diferente de 3?
//[creo y espero que no exista tal cosa en imágenes...]
no we por que a mal?

lo que pasa es que kimmy toma que en esa carpeta tiene solo esas extension y que de hecho son las que va quitando segun su script anterior


Código PHP:
if (strpos($archivo'.gif',1) || strpos($archivo'.jpg',1) || strpos($archivo'.png',1) || strpos($archivo'.bmp',1)) { 
yo no las quito solamente recorto el string al vuelo de comparar
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #42 (permalink)  
Antiguo 16/08/2012, 12:16
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

buen punto. al no verlo en el script, se me olvido eso:
Código PHP:
if(strpos($archivo'.gif',1) || strpos($archivo'.jpg',1) || strpos($archivo'.png',1) || strpos($archivo'.bmp',1)) 
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #43 (permalink)  
Antiguo 16/08/2012, 12:21
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Determinar si valores de array existen en otro array

Hola, gracias por la ayuda.

Yo pienso que no es importante que use este if:

Código PHP:
Ver original
  1. if (strpos($archivo, '.gif',1) || strpos($archivo, '.jpg',1) || strpos($archivo, '.png',1) || strpos($archivo, '.bmp',1)) {

porque siempre guardo las fotos con .jpg.

Otra cosa es que me gustaria poder colocar el contador que indicó mogurbon en el foreach que tengo.

KsrZ ya arreglé las cosas que me indicaste de la estructura de la tabla.

Quedó asi:

Código PHP:
Ver original
  1. $variable = 1;//seteamos a 0 el sumador
  2.     $valor = 3;//seteamos a 4 las imagenes a mostrar por cada linea
  3.     $directorio = opendir("xxxx/xxxx/images/principal/");
  4.  
  5.         while (false !== ($archivo = readdir($directorio))) {
  6.             if (strpos($archivo, '.gif',1) || strpos($archivo, '.jpg',1) || strpos($archivo, '.png',1) || strpos($archivo, '.bmp',1)) {
  7.                 $archi = pathinfo($archivo);
  8.                 $sinExtension = str_replace('.'.$archi['extension'],'',$archivo);
  9.    
  10.                 $archivo2[] = $archivo;
  11.             }
  12.         }
  13.    
  14.     foreach($campos as $dato){ //recorremos el array1 valor por valor
  15.         if(in_array($dato, $archivo2) !== false){
  16.         $dato2 = str_replace('.'.$archi['extension'],'',$dato);
  17.                 //while (false !== ($dato = readdir($directorio))) {
  18.  
  19.                 echo "
  20.                 <table>\n";
  21.                
  22.                 if($variable > $valor){
  23.                     echo "<tr>\n";
  24.                 }
  25.                 echo "
  26.                 <td class='posada'>\n<a href='posada/ver_posada2.php?codigo=$dato2'>";
  27.                 echo "
  28.                 <img src='xxxx/xxxx/images/principal/$dato' width='170' height='170' border='0'></a></td>\n";
  29.    
  30.         if($variable >= $valor){// si es mayor o igual añadimos </TR>
  31.             echo "</tr>";
  32.            
  33.             $variable = 0;//seteamos a 0 el sumador y volvemos a empezar si quedan mas imagenes
  34.         }//end if
  35.         $variable++;//empezamos a sumar +1
  36.                 //}
  37.         echo "</table>\n";
  38.       }
  39.     }
  40.     closedir($directorio);
__________________
Caminando con el corazón partío
  #44 (permalink)  
Antiguo 16/08/2012, 12:31
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

//codigo...
$num=count($sinExtension); //creo que seria asi no @mogurbon?
foreach($campos as $dato){ //recorremos el array1 valor por valor
//y lo utilizas aqui..
//++ codigo
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #45 (permalink)  
Antiguo 16/08/2012, 12:32
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

jejeje de una vez me suelto haciendo mas porquerias a ver como la ven?
el pseudocodigo bien horrendo jajaja no maaaa me la ma..... jajajaja

Código PHP:
Ver original
  1. <?
  2.  
  3. $query2 = "SELECT id_posada, id_foto, ciudad FROM posadas WHERE ciudad='$ciudad2'";
  4. $res = mysql_query ($query2);//lanzo la consulta
  5. $campos = array();//hago el array
  6. $contador=1;
  7. $tabla="<table><tr>";
  8. while ($camps = mysql_fetch_array($res)){
  9.     foreach("xxxx/xxxx/images/principal/*" as $archivo){
  10.         if ($camps['id_posada']==substr($archivo,0,strlen($archivo)-4)){
  11.            
  12.             $tabla.="<td><img src='xxxx/xxxx/images/principal/$archivo' width='170' height='170' border='0'></td>";
  13.            
  14.             if (($contador%3)==0){
  15.                 if($i!=$num){
  16.                    
  17.                     $tabla.="</tr><tr>";
  18.                    
  19.             }
  20.             $contador++;
  21.         }
  22.     }
  23. }
  24. $tabla=substr($tabla,0,strlen($tabla)-4))."</table>";
  25.  
  26. echo $tabla;
  27. ?>
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #46 (permalink)  
Antiguo 16/08/2012, 12:34
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

Cita:
Iniciado por KsrZ Ver Mensaje
//codigo...
$num=count($sinExtension); //creo que seria asi no @mogurbon?
foreach($campos as $dato){ //recorremos el array1 valor por valor
//y lo utilizas aqui..
//++ codigo
ignora lo de arriba, ta mal xDD
era asi:

Código PHP:
$num=count($archivo2); //creo que seria asi no @mogurbon? 
foreach($campos as $dato){ //recorremos el array1 valor por valor
//y lo utilizas aqui..
//++ codigo 
@mogurbon creo que esta bien, tampoco lo probé, sigue siendo pseudocodigo XD, solo le faltaría comentar un poco
las imágenes '..' y '.' no las chekearan? Q_Q
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}

Última edición por KsrZ; 16/08/2012 a las 12:42
  #47 (permalink)  
Antiguo 16/08/2012, 12:45
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Determinar si valores de array existen en otro array

Disculpame KsrZ, pero no se que poner dentro del foreach donde me dices:

//y lo utilizas aqui..
//++ codigo

no entiendo
__________________
Caminando con el corazón partío
  #48 (permalink)  
Antiguo 16/08/2012, 12:45
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

aja podria ser compas lo que pasa es que en el count que puse ahí fue para aprovechar el $i y compararlo con el modulo de 3 , eso me indicaria cuando debo imprimir un </tr><tr> pero también comparo si no es el ultimo ciclo para solo imprimir </tr>, en el ultimo ejemplo(che codigo horrendo ) no guardo nada en un ultimo arreglo sino que al vuelo de la comparación voy haciendo la tabla , con la misma idea , cada vez que encuentro un id de el resultado de la consulta que coincide con un nombre de archivo , incremento el contador e igual voy comparando con el modulo , como no tengo un limite al final le quito el ultimo <tr> que me sobraría , pa pronto la idea es esa comparacion para poder hacer el salto de renglon
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #49 (permalink)  
Antiguo 16/08/2012, 13:03
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

Cita:
Iniciado por kimmy Ver Mensaje
Disculpame KsrZ, pero no se que poner dentro del foreach donde me dices:

//y lo utilizas aqui..
//++ codigo

no entiendo
Código PHP:
//el utimo ejemplo que el expuso, esta mejor que con el contador.. :
//$num=count($archivo2); //contamos las lineas ? en este ejemplo no lo utilize, pero imagino que a tu foreach, podrias utilizarlo asi..
$variable 0;
$tabla="<table>";// damos por obvio, y luego declaramos filas..
foreach($campos as $dato){ //recorremos el array1 valor por valor
if(in_array($dato$archivo2) !== false){ 
        
$dato2 str_replace('.'.$archi['extension'],'',$dato);
                
//while (false !== ($dato = readdir($directorio))) {
 
               // echo "
               // <table>\n"; la primera tabla y fila, esta dada, solo declararemos filas.. por ende lo quitamos 
                
echo "<tr>\n";// declaramos inicio de fila
                
echo "
                <td class='posada'>\n<a href='posada/ver_posada2.php?codigo=$dato2'>"
// inicio de campo y <a>
                
echo "
                <img src='xxxx/xxxx/images/principal/$dato' width='170' height='170' border='0'></a></td>\n"
;// fin <a> y campo
    
                 
echo "</tr>";// terminamos la linea, vamos a por la siguiente..
            
        
$variable++;//no se en que la usaras.. pero si es asi, dejala vivir XD..
        
      
}

}
echo 
"</table>\n";
closedir($directorio); 
si algo esta mal D: menudo lio me agarre
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}

Última edición por KsrZ; 16/08/2012 a las 13:10 Razón: detalles..
  #50 (permalink)  
Antiguo 16/08/2012, 13:41
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Determinar si valores de array existen en otro array

A ver, la cosa es simplemente mostrar las imágenes en 3 columnas... aunque no entiendo porqué en tablas si con CSS y divs flotando a la izquierda es más que suficiente, pero bueno:

Código PHP:
Ver original
  1. // Creas la tabla
  2. echo '<table>';
  3.  
  4. // Inicializas el conteo de celdas
  5. $cuenta = 0;
  6.  
  7. foreach($campos as $dato) {
  8.     if($cuenta == 3) {
  9.           // Ya mostramos 3 imágenes, ahora hay que cambiar de fila
  10.           echo '</tr>';
  11.           // Y volvemos a inicializar cuenta
  12.           $cuenta = 0;
  13.     }
  14.     if($cuenta == 0) {
  15.           // Es la primera iteración o ya cerramos la fila anterior
  16.           // Iniciamos la nueva
  17.           echo '<tr>';
  18.     }
  19.     // Aquí muestras la imagen con su respectivo enlace, bla bla bla
  20.     // Incrementas cuenta
  21.     $cuenta ++;
  22. }
  23.  
  24. // Es posible que haya quedado un <tr> abierto?... lo cerramos
  25. if($cuenta < 3) {
  26.     echo '</tr>';
  27. }
  28.  
  29. // Cierras la tabla
  30. echo '</table>';
__________________
- León, Guanajuato
- GV-Foto
  #51 (permalink)  
Antiguo 16/08/2012, 14:24
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Determinar si valores de array existen en otro array

Gracias a todos.

Triby lo puse asi:

Código PHP:
Ver original
  1. // Creas la tabla
  2. echo '<table>';
  3. // Inicializas el conteo de celdas
  4. $cuenta = 0;
  5. foreach($campos as $dato){ //recorremos el array1 valor por valor
  6.     if(in_array($dato, $archivo2) !== false){
  7.         $dato2 = str_replace('.'.$archi['extension'],'',$dato);
  8.  
  9.         if($cuenta == 3) {
  10.                 // Y volvemos a inicializar cuenta
  11.                 $cuenta = 0;
  12.         }
  13.         if($cuenta == 0) {
  14.                 // Es la primera iteración o ya cerramos la fila anterior
  15.                 // Iniciamos la nueva
  16.                 echo '<tr>';
  17.         }
  18.                 // Aquí muestras la imagen con su respectivo enlace, bla bla bla
  19.                 echo "
  20.                 <td class='posada'>\n<a href='posada/ver_posada2.php?codigo=$dato2'>";
  21.                 echo "
  22.                 <img src='xxxx/xxxx/images/principal/$dato' width='170' height='170' border='0'></a></td>\n";
  23.                
  24.                 // Incrementas cuenta
  25.                 $cuenta ++;
  26.         }
  27.  
  28.                 // Es posible que haya quedado un <tr> abierto?... lo cerramos
  29.         if($cuenta < 3) {
  30.                 echo '</tr>';
  31.         }
  32.                 // Cierras la tabla
  33.                 echo '</table>';
  34. }
  35.     closedir($directorio);

pero me sale la segunda foto desajustada. Aqui se puede ver:

http://vamonosdevacaciones.com.ve/bu...tino=Higuerote

No se si coloque mal el código
__________________
Caminando con el corazón partío
  #52 (permalink)  
Antiguo 16/08/2012, 14:43
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

según yo la parte de que haya quedado un tr abierto y cerrar el table va afuera del foreach, pero me quede pensando en que pasa cuando completas los tds de 3 en cada renglon
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #53 (permalink)  
Antiguo 16/08/2012, 15:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Determinar si valores de array existen en otro array

Kimmy, en la comparación ($cuenta == 3) debes cerrar un tr, la última es por si quedo un tr abierto.

Cierto, verificar si hay tr abierto y cerrar la tabla van fuera del foreach y, tienes razón mogurbon, esa comparación para saber si hay un tr abierto debería ser ($cuenta > 0)
__________________
- León, Guanajuato
- GV-Foto
  #54 (permalink)  
Antiguo 16/08/2012, 15:42
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

Cita:
Iniciado por Triby Ver Mensaje
Kimmy, en la comparación ($cuenta == 3) debes cerrar un tr, la última es por si quedo un tr abierto.

Cierto, verificar si hay tr abierto y cerrar la tabla van fuera del foreach y, tienes razón mogurbon, esa comparación para saber si hay un tr abierto debería ser ($cuenta > 0)
jajaja cierto weee de hecho lo escribi mal yo queria decir , que que pasa si no se complentan las tres columnas? digo si no se ve mal en los navegadores ps no hay pdo , pero y si sicierto??
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #55 (permalink)  
Antiguo 16/08/2012, 15:45
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Determinar si valores de array existen en otro array

Ahora si funciona. Muchas gracias Triby!!!

Mil gracias también a mogurbon y KsrZ.

A los 3 gracias por compartir sus conocimientos, ayudarme y por su valioso tiempo.
__________________
Caminando con el corazón partío
  #56 (permalink)  
Antiguo 16/08/2012, 15:53
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Determinar si valores de array existen en otro array

Cita:
Iniciado por kimmy Ver Mensaje
Ahora si funciona. Muchas gracias Triby!!!

Mil gracias también a mogurbon y KsrZ.

A los 3 gracias por compartir sus conocimientos, ayudarme y por su valioso tiempo.
la mejor manera de dar las gracias es pegar el código con el cual solucionaste tu problema , asi cuando alguien mas se topa con un problema parecido podrá encontrar algo de info acerca de esto
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #57 (permalink)  
Antiguo 16/08/2012, 16:18
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Determinar si valores de array existen en otro array

Ok, quedó asi:

Código PHP:
Ver original
  1. $query2 = "SELECT id_posada, id_foto, ciudad FROM posadas WHERE ciudad='$ciudad2'";
  2.          $res = mysql_query ($query2);//lanzo la consulta
  3.          $campos = array();//hago el array
  4.          while ($camps = mysql_fetch_array($res)){
  5.                   $campos[] = $camps['id_foto']; // sólo conservas la ID
  6.          }
  7.  
  8.     echo $_GET['destino']. '<br>';
  9.         // varificamos que el formulario halla sido enviado
  10.             $ciudad = addslashes($_GET['destino']);
  11.            
  12.          
  13.            
  14.         if(isset($_GET['destino'])) {
  15.          $sqlBuscar = mysql_query("SELECT *
  16.             FROM posadas
  17.             WHERE
  18.             ciudad LIKE '%$ciudad%'", $conn);
  19.             }
  20.            
  21.  
  22.            
  23.            
  24.     // Configuraciones
  25.     $variable = 1;//seteamos a 0 el sumador
  26.     $valor = 3;//seteamos a 4 las imagenes a mostrar por cada linea
  27.     $directorio = opendir("xxxx/xxxx/images/principal/");
  28.  
  29.         while (false !== ($archivo = readdir($directorio))) {
  30.             if (strpos($archivo, '.gif',1) || strpos($archivo, '.jpg',1) || strpos($archivo, '.png',1) || strpos($archivo, '.bmp',1)) {
  31.                 $archi = pathinfo($archivo);
  32.                 $sinExtension = str_replace('.'.$archi['extension'],'',$archivo);
  33.    
  34.                 $archivo2[] = $archivo;
  35.             }
  36.         }
  37. // Creas la tabla
  38. echo '<table>';
  39. // Inicializas el conteo de celdas
  40. $cuenta = 0;
  41. foreach($campos as $dato){ //recorremos el array1 valor por valor
  42.     if(in_array($dato, $archivo2) !== false){
  43.         $dato2 = str_replace('.'.$archi['extension'],'',$dato);
  44.  
  45.         if($cuenta == 3) {
  46.                 // Y volvemos a inicializar cuenta
  47.                 $cuenta = 0;
  48.          echo '</tr>';
  49.  
  50.         }
  51.         if($cuenta == 0) {
  52.                 // Es la primera iteración o ya cerramos la fila anterior
  53.                 // Iniciamos la nueva
  54.                 echo '<tr>';
  55.         }
  56.                 // Aquí muestras la imagen con su respectivo enlace, bla bla bla
  57.                 echo "
  58.                 <td class='posada'>\n<a href='posada/ver_posada2.php?codigo=$dato2'>";
  59.                 echo "
  60.                 <img src='xxxx/xxxx/images/principal/$dato' width='170' height='170' border='0'></a></td>\n";
  61.  
  62.                 // Incrementas cuenta
  63.                 $cuenta ++;
  64.         }
  65. }
  66.             // Es posible que haya quedado un <tr> abierto?... lo cerramos
  67.                 if($cuenta < 3) {
  68.                 echo '</tr>';
  69.         }
  70.  
  71. // Cierras la tabla
  72.     echo '</table>';
  73.     closedir($directorio);

Thank you!!!!
__________________
Caminando con el corazón partío
  #58 (permalink)  
Antiguo 16/08/2012, 16:34
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 12 años, 10 meses
Puntos: 26
Respuesta: Determinar si valores de array existen en otro array

¡enhorabuena @kimmy! suerte!
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #59 (permalink)  
Antiguo 04/12/2012, 08:54
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Determinar si valores de array existen en otro array

Hola amigos, hace un tiempo me ayudaron con este código pero ahora me doy cuenta que no me está mostrando unas fotos del directorio.

El problema es aqui porque se pierde el dato:

Código PHP:
Ver original
  1. echo '<table>';
  2. // Inicializas el conteo de celdas
  3. $cuenta = 0;
  4. foreach($campos as $dato){ //recorremos el array1 valor por valor
  5.     if(in_array($dato, $archivo2) !== false){ //y le preguntamos: esta el valor en el que estamos posicionados actualmente, en el array 2?
  6.         $dato2 = str_replace('.'.$archi['extension'],'',$dato);
  7.  
  8.         if($cuenta == 3) {
  9.                 // Y volvemos a inicializar cuenta
  10.                 $cuenta = 0;
  11.          echo '</tr>';
  12.  
  13.         }
  14.         if($cuenta == 0) {
  15.                 // Es la primera iteración o ya cerramos la fila anterior
  16.                 // Iniciamos la nueva
  17.                 echo '<tr>';
  18.         }
  19.                 // Aquí muestras la imagen con su respectivo enlace, bla bla bla
  20.                 echo "
  21.                 <td class='posada'>\n<a href='posada/ver_posada2.php?codigo=$dato2'>";
  22.                 echo "
  23.                 <img src='admin/posadas/images/principal/$dato' width='170' height='170' border='0'></a></td>\n";
  24.                 echo $dato;
  25.                 // Incrementas cuenta
  26.                 $cuenta ++;
  27.         }
  28.  
  29.                
  30. }
  31.                 // Es posible que haya quedado un <tr> abierto?... lo cerramos
  32.         if($cuenta < 3) {
  33.                 echo '</tr>';
  34.         }
  35.  
  36. // Cierras la tabla
  37.                 echo '</table>';
  38.     closedir($directorio);
__________________
Caminando con el corazón partío

Etiquetas: determinar
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 01:55.