PHP - No puedo mostrar los datos de una tabla de la base de datos

 
Vista:
Imágen de perfil de Claudio
Val: 28
Ha aumentado su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

No puedo mostrar los datos de una tabla de la base de datos

Publicado por Claudio (70 intervenciones) el 10/02/2015 14:20:45
Hola que tal.

En un post anterior solicite ayuda por el ERROR 500, el cual creo que esta solucionado, ya que la pagina se puede ver.

Ahora no se si guardará relación con lo que me pasa ahora, por ende abrí un nuevo tema.

Es una pagina donde todo el contenido está guardado en una base de datos, los menús y el contenido en si de cada página.

El asunto es que con consultas simples como "select * from menu no muestra nada y me muestra el contenido del die(), para una mejor ilustración voy a dejar el código de conexion y el archivo menu.php.

conexion.class.php
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class Conectar
{
        public static function con()
        {
 
                $conexion=mysql_connect("localhost","usuario","paswword");
                mysql_query("SET NAMES 'utf8'");
                mysql_select_db("basededatos");
                return $conexion;
       }
}

menu.php
1
2
3
4
5
6
7
8
9
10
<?php
    include '../clases/conexion.class.php';
    $sql = mysql_query("select * from menu")
            or die("Error de Consulta Tabla Menu");
    if($row = mysql_fetch_array($sql,Conectar::con()))
          {
          echo "<ul id='navi'>";
          echo "<li>","<a href='$row[enlace]'>$row[item]</a>","</li>";
          echo "</ul>";
         }

Como pueden ver es una consulta simple y en vez del menu aparece Error de Consulta Tabla Menu

Si alguien me puede ayudar con este dilema, estare muy agradecido.

Un Cordial Saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 12
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

No puedo mostrar los datos de una tabla de la base de datos

Publicado por Rafael (40 intervenciones) el 10/02/2015 15:20:33
Algunos detalles veo:

Tu funcion con() no es lo mas optimo a mi parecer, creo deberias de hacer algo como esto...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
class Conectar {
    public static function con() {
        $conexion=mysql_connect("localhost","usuario","paswword");
        if (!$conexion) {
            die('No se pudo conectar : ' . mysql_error());
        }
        $query = mysql_query("SET NAMES 'utf8'");
        if (!$query ) {
            die ('No se puede ejecutar el query: ' . mysql_error());
        }
        $bd_seleccionada = mysql_select_db("basededatos"); return $conexion;
        if (!$bd_seleccionada) {
            die ('No se puede usar la base de datos: ' . mysql_error());
        }
    }
}

Y en cuanto al codigo del programa, hay un error pasas como parametro la conexion en el FETCH cuando deberias indicar como quieres el FETCH que en tu caso es ASSOC, cuando menos yo lo haria asi...

1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
include '../clases/conexion.class.php';
 
$conexion = Conectar::con();
$sql = mysql_query("select enlace, item from menu")
            or die("Error de Consulta Tabla Menu");
echo '<ul id="navi">';
while($row = mysql_fetch_array($sql,MYSQL_ASSOC)) {
    echo '<li><a href="'.$row['enlace'].'">'.$row['item']."</a></li>";
}
echo "</ul>";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Claudio
Val: 28
Ha aumentado su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

No puedo mostrar los datos de una tabla de la base de datos

Publicado por Claudio (70 intervenciones) el 10/02/2015 16:20:04
Gracias Rafael por tu ayuda,

Corregí el código tal cual me recomiendas y da e siguiente error

Fatal error: Class 'Conectar' not found in /home/kenpboxi/public_html/kb/includes/menu.php on line 5

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
    include '../clases/conexion.class.php';
 
    $conexion = Conectar::con();
    $sql = mysql_query("select enlace, item from menu")
                or die("Error de Consulta Tabla Menu");
    echo '<ul id="navi">';
    while($row = mysql_fetch_array($sql,MYSQL_ASSOC))
    {
        echo '<li><a href="'.$row['enlace'].'">'.$row['item']."</a></li>";
    }
    echo "</ul>";

asi quedo menu.php

y asi conexion.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
class Conectar {
    public static function con() {
        $conexion=mysql_connect("localhost","usuario","password");
        if (!$conexion) {
            die('No se pudo conectar : ' . mysql_error());
        }
        $query = mysql_query("SET NAMES 'utf8'");
        if (!$query ) {
            die ('No se puede ejecutar el query: ' . mysql_error());
        }
        $bd_seleccionada = mysql_select_db("dase_datos"); return $conexion;
        if (!$bd_seleccionada) {
            die ('No se puede usar la base de datos: ' . mysql_error());
        }
    }
}

igaul como tu recomiendas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

No puedo mostrar los datos de una tabla de la base de datos

Publicado por Rafael (40 intervenciones) el 10/02/2015 16:24:40
Prueba con:
1
$conexion = Conectar->con();

Y verifica que la clase (fichero conexion.class.php) se encuentre donde dice encontrarse...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Claudio
Val: 28
Ha aumentado su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

No puedo mostrar los datos de una tabla de la base de datos

Publicado por Claudio (70 intervenciones) el 10/02/2015 16:27:32
De esa forma me da error de sintaxis en el editor netbeans
No da error en la web, pero no muestra los item del menu.

He cambiado conexion.class.php al directorio includes por si acaso y tampoco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar