Ir al contenido


Foto

Ayuda conexion mysql en poo


  • Por favor identifícate para responder
6 respuestas en este tema

#1 rimox

rimox

    Member

  • Miembros
  • PipPip
  • 16 mensajes

Escrito 07 mayo 2013 - 05:38

Hola a todos la verdad tengo poco en esto del PHP POO:

y tengo problemas en la conexion a mysql y no se porque.

tengo 2 archivos
index.php
class.php

este es el codigo del index.php


delphi
  1. <?php
  2. require_once("class/class.php");
  3. ?>
  4. <html>
  5. <head>
  6. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  7. <title>Prueba de conexiòn</title>
  8. </head>
  9. <body>
  10. <h2>Listado de Comentarios en Libro de Visitas</h2>
  11. <?php
  12. $tra=new Trabajo();
  13. $visitas=$tra->get_visitas();
  14. for ($i=0;$i<sizeof($visitas);$i++)
  15. {
  16. echo $visitas[$i]["nombre_persona"];
  17. echo "<br>";
  18. }
  19. ?>
  20. </body>
  21.  
  22. </html>



y dentro de la carpeta class/class,php

este es el codigo



delphi
  1. <?php
  2. class Conectar
  3. {
  4. public static function con()
  5. {
  6. $conexion=mysql_connect("localhost","root","");
  7. mysql_query("SET NAMES 'utf8'");
  8. mysql_select_db("demo");
  9. return $conexion;
  10.  
  11. }
  12. }
  13. //********************************************************
  14. class Trabajo 
  15. {
  16. private $visitas;
  17.  
  18. public function __construct()
  19. {
  20. $this->visitas=array();
  21. }
  22. public function get_visitas()
  23. {
  24. $sql="select * from libro_de_visitas";
  25.  
  26. $res=mysql_query($sql,Conectar::con());
  27.  
  28. while ($reg=mysql_fetch_array($res))
  29. {
  30. $this->visitas[]=$reg;
  31. }
  32. return $this->visitas;
  33. }
  34. }
  35. ?>



y al querer ver los resultados me manda estos errores amigos.

(!) Warning: mysql_fetch_array () espera parámetro 1 sea de recursos, boolean given en C: \ wamp \ www \ foros sobre \ Class \ class.php on line 28
Pila de llamadas
# Tiempo Memoria Función Ubicación
1 0.0005 366672 {Main} () .. \ Index.php : 0
2 0.0010 376232 Trabajo-> get_visitas () .. \ Index.php : 13
3 0.0040 382192 mysql_fetch_array () .. \ Class.php : 28


espero y me puedan ayudar de antemano gracias.
  • 0

#2 pbelmarv

pbelmarv

    Newbie

  • Miembros
  • Pip
  • 8 mensajes

Escrito 08 mayo 2013 - 06:57

Listo con esto debería funcionar, estabas cargando matrices en arreglos simples ( marcado en rojo ), la carga correcta es mysql_fetch_assoc

    public function get_visitas()
    {
        // Creamos la consulta
        $sql = "select * from libro_de_visitas";
        // Ejecutamos la consulta sql
        $res = mysql_query($sql, Conectar::con());
        /* mysql_fetch_assoc : Al igual que mysql_fetch_array, retorna
        * los datos como arreglos pero de varias dimensiones ( matrices )
        *
        */
        while ($reg = mysql_fetch_assoc($res))
        {
            // Asignamos los datos a la variable $visitas
            $this->visitas[] = $reg;
        }
        // Retornamos el arreglo visitas ya con los datos
        return $this->visitas;
    }

  • 0

#3 rimox

rimox

    Member

  • Miembros
  • PipPip
  • 16 mensajes

Escrito 08 mayo 2013 - 07:14

haber eh cambiado a esto



delphi
  1. <?php
  2. class Conectar
  3. {
  4. public static function con()
  5. {
  6. $conexion=mysql_connect("localhost","root","");
  7. mysql_query("SET NAMES 'utf8'");
  8. mysql_select_db("demo");
  9. return $conexion;
  10.  
  11. }
  12. }
  13. //********************************************************
  14. class Trabajo 
  15. {
  16. private $visitas;
  17.  
  18. public function __construct()
  19. {
  20. $this->visitas=array();
  21. }
  22.     public function get_visitas()
  23.     {
  24.         // Creamos la consulta
  25.         $sql = "select * from libro_de_visitas";
  26.         // Ejecutamos la consulta sql
  27.         $res = mysql_query($sql, Conectar::con());
  28.         /* mysql_fetch_assoc : Al igual que mysql_fetch_array, retorna
  29.         * los datos como arreglos pero de varias dimensiones ( matrices )
  30.         *
  31.         */
  32.         while ($reg = mysql_fetch_assoc($res))
  33.         {
  34.             // Asignamos los datos a la variable $visitas
  35.             $this->visitas[] = $reg;
  36.         }
  37.         // Retornamos el arreglo visitas ya con los datos
  38.         return $this->visitas;
  39.     }
  40. }
  41. ?>



y me manda este error

(!) Warning: mysql_fetch_assoc () espera parámetro 1 sea de recursos, boolean given en C: \ wamp \ www \ foros sobre \ Class \ class.php on line 32
Pila de llamadas
# Tiempo Memoria Función Ubicación
1 0.0018 366672 {Main} () .. \ Index.php : 0
2 0.0035 376136 Trabajo-> get_visitas () .. \ Index.php : 13
3 0.0720 382096 mysql_fetch_assoc () .. \ Class.php : 32


  • 0

#4 pbelmarv

pbelmarv

    Newbie

  • Miembros
  • Pip
  • 8 mensajes

Escrito 08 mayo 2013 - 07:51

Agrega lo siguient, y coloca el resultado que te dio.

public function get_visitas()
    {
        // Creamos la consulta
        $sql = "select * from libro_de_visitas";
        echo $sql;
        exit;
        // Ejecutamos la consulta sql
        $res = mysql_query($sql, Conectar::con());
        /* mysql_fetch_assoc : Al igual que mysql_fetch_array, retorna
        * los datos como arreglos pero de varias dimensiones ( matrices )
        *
        */
        while ($reg = mysql_fetch_assoc($res))
        {
            // Asignamos los datos a la variable $visitas
            $this->visitas[] = $reg;
        }
        // Retornamos el arreglo visitas ya con los datos
        return $this->visitas;
    }


Ojo que ejecutara el echo y después se detendra
  • 0

#5 rimox

rimox

    Member

  • Miembros
  • PipPip
  • 16 mensajes

Escrito 08 mayo 2013 - 08:11

me arroja esto amigo

select * from libro_de_visitas


  • 0

#6 rimox

rimox

    Member

  • Miembros
  • PipPip
  • 16 mensajes

Escrito 08 mayo 2013 - 08:41

muchas gracias hermnao ya lo resolvi era un error en mitabla la tenia como "libro _de_visitas" siendo "libro_de_visitas" un espacio altera todo el producto pero gracias por ayudare aqui andamos amigo.

saludos
  • 0

#7 pbelmarv

pbelmarv

    Newbie

  • Miembros
  • Pip
  • 8 mensajes

Escrito 08 mayo 2013 - 08:52

Justamente al imprimir el resultado de la variable $sql, la pruebas en phpmyadmin si este da un error, significa que dentro de la misma consulta sql hay errores, es muy buena practica imprimir las consultas sobre todo cuando llevan valores de campos, recuerda eliminar esto :

        echo $sql;
        exit;


Recuerda, cuando son matrices, coloca mysql_fetch_assoc, como lo tenias tu, te mostraría un error de array
  • 0




IP.Board spam blocked by CleanTalk.