Foros del Web » Programando para Internet » PHP »

Arrays y Foreach

Estas en el tema de Arrays y Foreach en el foro de PHP en Foros del Web. hola amigos, anteriormente ya habia publicado algo asi pero perdi la liga asi que lo vuelvo a escribir. Estoy realizando un proyecto en donde tengo ...
  #1 (permalink)  
Antiguo 31/05/2011, 13:25
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Arrays y Foreach

hola amigos, anteriormente ya habia publicado algo asi pero perdi la liga asi que lo vuelvo a escribir.

Estoy realizando un proyecto en donde tengo almacenadas en una BD registros de paliculas, cuando doy de alta alguna pelicula me pide que seleccione el genero, y puedo seleccionar varios generos con checkbox, y se almacenan asi en la base de datos 1, ,3, , por ejemplo.

al momento de que quiero mostrar el registro debe de mostrar Drama, Accion

lo que tengo de codigo es el siguiente


Código PHP:
<?php
//obtengo el campo de la BD
$path $datos['genero'];
//quito los separadores ( , )
$folderNames explode(','$path);                                        
//Defino el array
$vector = array('1' => 'Drama',
        
'2' => 'Comedia',
        
'3' => 'Accion',
        
'4' => 'Documental');
        
//Imprimo el nombre de la categoria
        
echo ("<strong>G&eacute;nero:</strong> ");
        
//Recorro el Array e imprimo solo el valor del Array
        
foreach($vector as $path => $valor) {
        echo 
"$valor ";
        }
        
//Imprimo salto de linea
                 
echo "<br /><br />";
        
?>
alguien me puede ayudar para que muestre las letras en lugar de numeros

Última edición por andoencombi; 31/05/2011 a las 13:36
  #2 (permalink)  
Antiguo 31/05/2011, 13:54
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Arrays y Foreach

Con este codigo me imprime las cuatro categorias es decir asi:

Genero: Drama,Comedia, Accion, Documental

y solo quiero que me imprima las que tengo guardadas, por ejemplo la categoria 1 y 3 que seria algo asi:

Genero: Drama, Accion en lugar de
Genero: 1, 3
  #3 (permalink)  
Antiguo 31/05/2011, 14:18
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Arrays y Foreach

Te dejo tu otra liga Link

Y te dejo una pekeña ayuda, es más largo pero es para que entiendas como trabajar los array

Código PHP:
Ver original
  1. $genero = $datos['genero'];
  2. $folderNames = explode(',', $genero);                                        
  3. $vector = array(
  4.         '1' => 'Drama',
  5.         '2' => 'Comedia',
  6.         '3' => 'Accion',
  7.         '4' => 'Documental');
  8.         for ($i=1;$i<=count($vector);$i++)
  9.         {
  10.             if($i == $genero)
  11.             {
  12.                 $valor=$valor[$i]; 
  13.             }
  14.         }
  15.         echo "el valor es : $valor";
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #4 (permalink)  
Antiguo 31/05/2011, 14:30
Avatar de scorpion3d  
Fecha de Ingreso: mayo-2011
Mensajes: 92
Antigüedad: 12 años, 11 meses
Puntos: 19
Respuesta: Arrays y Foreach

Código PHP:
Ver original
  1. <?php
  2.     //obtengo el campo de la BD
  3.     $path = $datos['genero'];
  4.     //Transformo los datos que deseo :)
  5.     $row['texto'] = addslashes ($path);
  6.     $row['texto'] = str_replace ('1','Drama',$row['texto']);
  7.     $row['texto'] = str_replace ('2','Comedia',$row['texto']);
  8.     $row['texto'] = str_replace ('3','Accion',$row['texto']);
  9.     $row['texto'] = str_replace ('4','Documental',$row['texto']);
  10.     //Imprimo el resultado
  11.     echo $row['texto'];
  12.     ?>
__________________
www.elias.com.sv
  #5 (permalink)  
Antiguo 31/05/2011, 15:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Arrays y Foreach

Gracias bUllan9ebrio pero no imprime nada con el codigo que me proporcionaste,

y en cuanto al codigo de scorpion3d funciona pero quisiera saber como hacerle para que no imprima comas ( , ) en los valores que no hay nada por ejemplo

si tengo 1, , 3, ,

imprime Drama, , Accion, , y quisiera saber si hay algo para que imprima asi:

Drama, Accion sin las comas sobrantes
  #6 (permalink)  
Antiguo 31/05/2011, 15:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Arrays y Foreach

no se si entendi bien lo que quieres saber es si los valores de $vector estan el $folderNames
puedes hacerlo de esta manera
Código PHP:
Ver original
  1. <?php
  2.  
  3. $folderNames = array('Drama','Accion');/* array de prueba que quedaria despues de hacer el explode*/
  4. $vector = array('1' => 'Drama',
  5.         '2' => 'Comedia',
  6.         '3' => 'Accion',
  7.         '4' => 'Documental');
  8. foreach($vector as $key => $value){
  9.     if(in_array($value,$folderNames)){
  10.         echo $value;
  11.     }
  12. }
  13. ?>
espero te sirva, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 01/06/2011, 09:10
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Arrays y Foreach

Gracias carlos_belisario por tu interes en el tema, pero lo que quier es lo siguiente:

en un campo de la base de datos tengo el siguiente registro


genero = 1, , 3, , es decir, solo esta el numero 1 y 3 porque las secciones elegidas solo fueron drama y accion, comedia y documental no, pero hay la posibilidad de que en el campo se llene asi

genero = ,2, ,4, es decir comedia y documental y cuando se muestre el registro debe de mostrar el nombre de los generos elegidos y en el codigo que pusiste siempre muestra Drama y accion.

Ahora el codigo que puso scorpion3d si funciona pero si una categoria no esta elegida muestra comas sobrantes, habra algo para quitar esas comas

es decir si tengo en genero=1, ,3, , imprime Drama, , Accion, , y si ven imprime comas de sobra y qyo quiero que imprima eso pero sin las comas sobrantes

Gracias por sus aportaciones
  #8 (permalink)  
Antiguo 02/06/2011, 18:10
Avatar de scorpion3d  
Fecha de Ingreso: mayo-2011
Mensajes: 92
Antigüedad: 12 años, 11 meses
Puntos: 19
Respuesta: Arrays y Foreach

Código PHP:
Ver original
  1. <?php
  2.     //obtengo el campo de la BD
  3.     $path = $datos['genero'];
  4.     //Transformo los datos que deseo :)
  5.     $row['texto'] = addslashes ($path);
  6.     $row['texto'] = str_replace ('1,','Drama',$row['texto']);
  7.     $row['texto'] = str_replace ('2,','Comedia',$row['texto']);
  8.     $row['texto'] = str_replace ('3,','Accion',$row['texto']);
  9.     $row['texto'] = str_replace ('4','Documental',$row['texto']);
  10.     //Imprimo el resultado
  11.     echo $row['texto'];
  12.     ?>
__________________
www.elias.com.sv

Etiquetas: arrays, foreach
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 21:59.