Pregunta:
Fecha: 08-11-2015 04:14:51
(En Español)
y lo llame asi: el este el archivo Estudiante.php
El Autoupload:
El Index y el que me da el error
el error que me da es este: Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\proyecto\Models\Estudiante.php on line 50
haga o no el autoupload y los namespace me sige apareciendo ese error u.u alguien sabe por que?
por cierto no me equivoco en nada en la tabla de la base de datos 7n7
PD: si no entendiste la pregunta solo pon como harías tu una conexión a la base de datos de una forma simple usando PHP Orientados a Objetos n.n eso ayuda a otras personas en esta comunidad anda haz tu aporte ^w^ Votos: 1 - Respuestas: 5 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
Problemas De Conexion a La Base De Datos Con PHP POO[Resuelta]
En mis cursos que he tenido Amm de PHP Orientado a Objetos, explicaban bien los conceptos y eso mas sin embargo y como en muchos otros videos no saben como explicar bien una conexion a una base de datos u.u en los videos que estaba viendo para aprender se les ocurrio hacer uno CRUD usando namespace y autoupload nada genial 7u7 para ser la primera vez que te hacen hacer una practica de lo que has aprendido si antes no te enseñado una conexion simple a una DB usando POO o PDO o lo que sea, ya que no todos somos profesionales o aprendemos rapidos algunas cosas si, otras no en fin, aqui les dejare mi conexion a la base de datos y el error que me sale u.u:
<?php namespace Models;
class Conexion {
private $datos = array(
"host" => "localhost",
"user" => "unusuario",
"pass" => "unpass",
"db" => "proyecto"
);
private $con;
public function __construct() {
$this->con = new \mysqli($this->datos['host'], $this->datos['user'], $this->datos['pass'], $this->datos['db']);
}
public function consultaSimple($sql) {
$this->con->query($sql);
}
public function consultaRetorno($sql) {
$datos = $this->con->query($sql);
return $datos;
}
}
?>
y lo llame asi: el este el archivo Estudiante.php
<?php namespace Models;
class Estudiante {
private $id;
private $nombre;
private $edad;
private $promedio;
private $imagen;
private $id_seccion;
private $fecha;
private $con;
public function __construct() {
$this->con = new Conexion();
}
public function set($atributo, $contenido) {
$this->$atributo = $contenido;
}
public function get($atributo) {
return $this->$atributo;
}
public function listar() {
$sql = "SELECT tl.*. t2.nombre as nombre_seccion FROM estudiantes t1 INNER JOIN secciones t2 ON t1.id_seccion = t2.id";
$datos = $this->con->consultaRetorno($sql);
return $datos;
}
public function add() {
$sql = "INSERT INTO estudiantes(id, nombre, edad, promedio, imagen, id_seccion, fecha)
VALUES(null, '{$this->nombre}', '{$this->edad}, '{$this->promedio}, '{$this->imagen}, '{$this->id_seccion}, NOW())";
$this->con->consultaSimple($sql);
}
public function delete() {
$sql = "DELETE FROM estudiantes WHERE id = '{$this->id}'";
$this->con->consultaSimple($sql);
}
public function edit() {
$sql = "UPDATE FROM estudiantes SET nombre = '{$this->nombre}', edad = '{$this->edad}', promedio = '{$this->promedio}', id_seccion = '{$this->id_seccion}' WHERE id = '{$this->id}'";
$this->con->consultaSimple($sql);
}
public function view() {
$sql = "SELECT tl.*. t2.nombre as nombre_seccion FROM estudiantes t1 INNER JOIN secciones t2 ON t1.id_seccion = t2.id WHERE t1.id = '{$this->id}'";
$dato = $this->con->consultaRetorno($sql);
$row = mysqli_fetch_assoc($dato);
return $row;
}
}
?>
El Autoupload:
<?php namespace Config;
class Autoload {
public static function run() {
spl_autoload_register(function($class) {
$ruta = str_replace("\\", "/", $class) . ".php";
include_once $ruta;
});
}
}
?>
El Index y el que me da el error
<?php
require_once "Config/Autoupload.php";
Config\Autoload::run();
$est = new Models\Estudiante();
$est->set("id", 1);
$datos = $est->view();
print $datos['nombre'];
?>
el error que me da es este: Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\proyecto\Models\Estudiante.php on line 50
haga o no el autoupload y los namespace me sige apareciendo ese error u.u alguien sabe por que?
por cierto no me equivoco en nada en la tabla de la base de datos 7n7
PD: si no entendiste la pregunta solo pon como harías tu una conexión a la base de datos de una forma simple usando PHP Orientados a Objetos n.n eso ayuda a otras personas en esta comunidad anda haz tu aporte ^w^ Votos: 1 - Respuestas: 5 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 08-11-2015 21:52:09
<?php class Conn { private $datos = array( "host" => "localhost", "user" => "unusuario", "pass" => "unpass", "db" => "proyecto" ); public function Conect(){ $conn = new mysqli ($this->datos['host'], $this->datos['user'], $this->datos['pass'], $this->datos['db']) or die(mysqli_error()); $conn->set_charset("utf8"); return $conn; } } ?>Votos: 0 - Link respuesta -
Fecha: 09-11-2015 02:43:27 muy bien n.n sobre esa parte ya le entendi ya he hecho varias conexiones me funcionan lo que no me sale son las consultas a la base de datos siempre me sale el mismo error mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in tal linea u,u alguien sabe por que? como se hace una consulta Votos: 1 - Link respuesta
-
Fecha: 09-11-2015 03:30:07 Hola Chrismart
, al paracer tu consulta te da erroneo veo que es por eso que te muetra ese error expongo tu codigo en la linea 48 de tu archivo Estudiante.php
esta mal la consulta
SELECT tl.*. t2.nombre as nombre_seccion FROM estudiantes t1 INNER JOIN secciones t2 ON t1.id_seccion = t2.id WHERE t1.id = '{$this->id}'"
tu alias de tu tabla es "t1" FROM estudiantes t1
pero al parecer cuando haces su select tu estas colando esto
tl.*
que deberia ser t1.*
asi deberia de quedar
SELECT t1.*. t2.nombre as nombre_seccion FROM estudiantes t1 INNER JOIN secciones t2 ON t1.id_seccion = t2.id WHERE t1.id = '{$this->id}'"
saludos Votos: 2 - Link respuesta -
Fecha: 09-11-2015 03:40:11 Se me paso algo
reemplaza en tu linea 48 del archivo Estudiante.php
por esta linea
$sql ="SELECT t1.*,t2.nombre as nombre_seccion FROM estudiantes t1 INNER JOIN secciones t2 ON t1.id_seccion = t2.id WHERE t1.id = '{$this->id}'";
tu sonsulta esta mal , saludos Votos: 5 - Link respuesta -
Fecha: 09-11-2015 06:35:46 Ola Juan, Gracias por responder si luego me di cuenta que tenia error en esa linea por que quite eso por simplemente por: $sql = "SELECT nombre FROM estudiantes";
y ya me habia funcionado aunque gracias por darme la setencia sql es que casi no podia ver las lineas del video ahora podre continuar con el crud. Votos: 2 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
