Foros del Web » Programando para Internet » PHP »

Problemas con array en php

Estas en el tema de Problemas con array en php en el foro de PHP en Foros del Web. Buenas tardes, tengo un problema con un array que obtengo de una consulta a la base de datos, el primer problema es que solo me ...
  #1 (permalink)  
Antiguo 05/07/2011, 16:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Pregunta Problemas con array en php

Buenas tardes, tengo un problema con un array que obtengo de una consulta a la base de datos, el primer problema es que solo me trae una fila cuando deberian de ser 8 filas esto es lo ke me arroja Array ( [idVideo] => 1 [clave] => cXhsegCVjsU ) , y el siguente problema es que cuando quiero recorrerlo con un foreach del campo clave solo me arroja la primer palabra de la clave en este caso c.

Esta es la consulta:
Código PHP:
 $sql "select * from video";
 
$result mysql_query($sql,$con);
 
$videos mysql_fetch_array($result); 
Este es el codigo foreach:
Código PHP:
 foreach($videos as $row): 
      echo 
$row["clave"];
 endforeach; 
Espero alguien pueda ayudarme a resolver este problema. Gracias
  #2 (permalink)  
Antiguo 05/07/2011, 16:56
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Problemas con array en php

hola que tal.

Puedes mostrar el código completo de como llenas el array para ayudarte mejor

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 05/07/2011, 16:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Problemas con array en php

Código PHP:
 $sql "select * from video";
 
$result mysql_query($sql,$con);
while( 
$videos mysql_fetch_array($result)){
    echo 
$videos['clave'] . "<br />";

  #4 (permalink)  
Antiguo 05/07/2011, 16:57
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Problemas con array en php

Cita:
Iniciado por kriss8725 Ver Mensaje
Buenas tardes, tengo un problema con un array que obtengo de una consulta a la base de datos, el primer problema es que solo me trae una fila cuando deberian de ser 8 filas esto es lo ke me arroja Array ( [idVideo] => 1 [clave] => cXhsegCVjsU ) , y el siguente problema es que cuando quiero recorrerlo con un foreach del campo clave solo me arroja la primer palabra de la clave en este caso c.

Esta es la consulta:
Código PHP:
 $sql "select * from video";
 
$result mysql_query($sql,$con);
 
$videos mysql_fetch_array($result); 
Este es el codigo foreach:
Código PHP:
 foreach($videos as $row): 
      echo 
$row["clave"];
 endforeach; 
Espero alguien pueda ayudarme a resolver este problema. Gracias
Esto es lo ke me arroja el echo del foreach: 1 c
  #5 (permalink)  
Antiguo 05/07/2011, 16:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con array en php

Es normal, ya que estas iterando el primer resultado que obtienes con mysql_fetch_array().

Lo que debes hacer es iterar todos los resultados, extrayendo cada array de $result.

Edito: Death_Empire ya te dio la solución.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 05/07/2011, 17:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Problemas con array en php

Archivo view:
Código HTML:
 <div id="divVideos">
   <table width="800" border="0">
    <tr align="center">
    <?php
	 //$totalVideos; //total de videos
	 foreach($videos as $row): //Obtenemos por medio de un foreach todos los videos de la consulta
	  echo $row["clave"];
	?>
        <!--
           <td><img class="spanVideo" src="http://i3.ytimg.com/vi//default.jpg"/></td>
        -->
    <?php
	 endforeach;
	?>
    </tr>
   </table>
 </div> 
Archivo controlador:
Código PHP:
 include_once("modelos/videosModelo.php");

 class 
inicio extends videosModelo
 

     
//contructor de la clase
     
public function __construct(){
         
$this->videosModelo = new videosModelo();
     }
     
     
//obtenemos todos los videos de la base de datos
     
public function mostrarVideos(){
         include(
"vistas/include/cabecera.php");
         include(
"vistas/include/menu.php");
          
$videos $this->videosModelo->obtenerVideos(); //llamamos al metodo obtenerVideos de la clase videos
          
$totalVideos $this->videosModelo->totalVideos(); //llamamos al metodo totalVideos de la clase videos
         
include("vistas/inicioVista.php");
         include(
"vistas/include/pie.php");
     } 
 } 
Archivo model:
Código PHP:
 include_once("librerias/database.php");
 
 class 
videosModelo extends database
 
{
     
//atributo que se utiliza en el controlador para hacer la llamada a un metodo del modelo
     
public $videosModelo;
     
     
//constructor de la clase
     
public function __construct(){
         
$this->db = new database();
     }
     
     public function 
obtenerVideos(){
         
$consulta $this->db->consulta("SELECT * FROM video");
         
$resultado $this->db->fetch_assoc($consulta);
         return 
$resultado;
     }
     
     public function 
totalVideos(){
         
$consulta $this->db->consulta("SELECT idVideo FROM video");
         
$total $this->db->num_rows($consulta);
         return 
$total;
     }
 } 
Archivo database:
Código PHP:
class database
  
{
      
//atributo que se utiliza en el modelo para hacer la llamada a un metodo del database
      
public $db;      
      
//atributo que solo se utilizara en esta clase para la conexion
      
private $conexion;
      
      
//funcion para realizar la conexion a la base de datos
      
public function __construct(){
          if(!isset(
$this->conexion)){
              
$this->conexion = (mysql_connect("localhost","red","red")) or die ("No se pudo conectar a la base de datos: ".mysql_error());
              
mysql_select_db("videos",$this->conexion) or die ("Error al acceder a la base de datos: ".mysql_error());
          }
      }
      
      
//funcion que recibe la consulta que se esta realizando a la base de datos
      
public function consulta($consulta){
          
$resultado mysql_query($consulta,$this->conexion);
          return 
$resultado;
      }
      
      
//funcion que recibe la consulta para traer los datos en un arreglo
      
public function fetch_array($consulta){
          return 
mysql_fetch_array($consulta);
      }
      
      
//funcion que recibe la consulta para traer los datos en un arreglo asociados al nombre del campo
      
public function fetch_assoc($consulta){
          return 
mysql_fetch_assoc($consulta);
      }
      
      
//funcion que recibe la consulta para saber el numero de renglones que arrojo dicha consulta
      
public function num_rows($consulta){
          return 
mysql_num_rows($consulta);
      }
            
  } 
Estos son mis archivos
  #7 (permalink)  
Antiguo 05/07/2011, 17:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Problemas con array en php

entonces el problema esta en como estoy realizando las consultas asi con funciones. Alguien podria observar mis archivos porfavor y decirme en ke estoy mal. De antemano gracias.
  #8 (permalink)  
Antiguo 05/07/2011, 17:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con array en php

Claro que está mal, se supone que tu método que devuelve todos los registro debe iterar primero todos los resultados, agruparlos en un array y devolverlos.

Y tu solo estás devolviendo el primer fetching de todos los resultados, ahí está el detalle.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 05/07/2011, 17:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Problemas con array en php

Cita:
Iniciado por pateketrueke Ver Mensaje
Claro que está mal, se supone que tu método que devuelve todos los registro debe iterar primero todos los resultados, agruparlos en un array y devolverlos.

Y tu solo estás devolviendo el primer fetching de todos los resultados, ahí está el detalle.
Disculpa seria de esta manera:
Código PHP:
        public function fetch_array($consulta){
          
$valores = array();
          
$i 0;
          while(
$row mysql_fetch_array($consulta)){
              
$valores[$i] = $row;
              
$i++;
          }
          return 
$valores;
      } 
  #10 (permalink)  
Antiguo 05/07/2011, 17:20
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Problemas con array en php

Muchas gracias eso era el problema. gracias a todos lo que respondieron
  #11 (permalink)  
Antiguo 05/07/2011, 17:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Problemas con array en php

gracias pateketrueke.

Etiquetas: mysql
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 04:45.