Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Problema con Clase conexion PHP :(

gollojgr

Becerro
Desde
14 Ene 2009
Mensajes
4
Necesito su ayuda por favor llevo todo el día batallando con esta conexión pero siempre me da el mismo error

la conexion es la siguiente:

class sistema{
public function conexion(){
$host = 'localhost';
$usuario = 'root';
$password = '';
$dataBase = 'colegio';

$conexion = mysqli_connect($host, $usuario, $password);
$seleccion = $conexion->select_db($dataBase);
$this->myconn = $conexion;
return $this->myconn;
}
function mostrarAsistencias(){
$sql = $conexion->query("SELECT * FROM asistencias");
}
}

el error que me da es el siguiente:

Notice: Undefined variable: conexion in C:\xampp\htdocs\detalles\class\classAsistencias.php on line 16

Fatal error: Call to a member function query() on null inC:\xampp\htdocs\detalles\class\classAsistencias.php on line 16



de antemano muchas gracias por su ayuda
 
Mmmm, si tu password esta en blanco, deberia estar asi
$password="";
Osea con doble comilla, corrigiendo eso, igual tira error?
 
Gracias por tu ayuda y en respuesta a lo que me preguntas, si me sigue arrojando el mismo error
 
Ok, y donde le indicas que es php----no veo ninguna linea que diga: <?php
Modifique tu codigo y funciona pero asi:
<html>
<head>
<title>Consultas</title>
</head>
<body bgcolor="#E6E6E6">
<center>
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","root","")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("colegio",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

function Consultas($link)
{
echo ".............ahora se esta consultando...";
$result=mysql_query("select * from asistencias",$link);
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1 width="252">
<TR><TD width="68">
<p align="center">&nbsp;Id</TD><TD width="83">
<p align="center">&nbsp;Nombre</TD><TD>
<p align="center">&nbsp;Faltas&nbsp;</TD></TR>
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td></tr>",$row["id"],$row["nombre"],$row["faltas"]);
}
}

$link=Conectarse();
echo "Conexión con la base de datos conseguida.<br>";

Consultas($link);
mysql_close($link); //cierra la conexion

?>
</body>
</html>
aqui lo tienes todo junto, yo por lo regular genero aparte el archivo conexion.php y lo mando a llamar las veces que lo requiera desde donde lo necesite asi me evito repetir codigo.
Quedaria asi:
Archivo conexion.php
<html>
<head>
<title>Iniciando la conexion</title>
</head>
<body>
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","root","")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("nombredebasedatos",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}


$link=Conectarse();
echo "Conexión con la base de datos conseguida.<br>";

?>
</body>
</html>

y donde lo necesito lo mando a llamar, archivo consultas.php
<html>
<head>
<title> Seccion de Consultas </title>
<body>
<FORM action="consulta.php" method="post">
Clave a Buscar: <INPUT type="text" name="clave">
<BUTTON name="enviar" value="enviar" type="submit">
Buscar </BUTTON>
</FORM>
<?php
include "conexion.php"; //aquí tengo la configuración para la conexión a la BD MySQL

if(isset($_POST['clave']) && !empty($_POST['clave'])){
$codigo=$_POST['clave'];
$result= mysql_query("select * from ejemplo where clave = $codigo"); // aquí le digo que codigo va a consultar
?>
<TABLE width="276" BORDER=1 CELLPADDING=1 CELLSPACING=1>
<TR><TD width="69" align="center" >Codigo</TD>
<TD width="134" align="center" >Nombre </TD>
<TD width="50" align="center" >Edad</TD>
</TR>

<?php
//muestra los datos consultados
$num_rows = mysql_num_rows($result);
echo "<font face=arial><b>Se encontraron $num_rows resultado\n</b></font>";
while($row = mysql_fetch_array($result)) {
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td></tr>",$row["clave"],$row["nombre"],$row["edad"]);

}
}else{
echo "Error: Debes Introducir un valor";
}
mysql_close(); //cierra la conexion
echo "<b><a href='index.php'> Regresar </a></b>";
?>

</body>
</html>
Saludos.
 
Bueno despues de correr tu codigo tal cual esta no tira error, sera por la version que uso, veo que tu tienes las palabras mas reservadas que las que te puse en el ejemplo.

Comenta resultados.
 
gracias por tu ayuda crow este es el codigo completo

<?php
session_start();
class sistema{
public function conexion(){
$host = 'localhost';
$usuario = 'root';
$password = '';
$dataBase = 'colegio';

$conexion = mysql_connect($host, $usuario, $password);
$seleccion = mysql_select_db($dataBase, $conexion);

}
function mostrarAsistencias(){
$sql = mysql_query("SELECT * FROM asistencias");
$item = 0;
if(mysql_num_rows($sql)>0){
while($mostrar = mysql_fetch_array($sql)){
$estudiantes = mysql_num_rows(mysql_query("SELECT * FROM detalle_asistencias WHERE cod_asistencia = '".$mostrar['cod_asistencia']."' "));
$item = $item+1;
echo '<tr>
<td>'.$item.'</td>
<td>'.$mostrar['cod_asistencia'].'</td>
<td>'.$mostrar['fecha_asistencia'].'</td>
<td>'.$estudiantes.'</td>
<td><input type="button" value="Detalle" class="btn btn-success" onClick="verDetalle(/'.$mostrar['cod_asistencia'].'/)"></td>
</tr>';
}
}else{
echo '<tr><td colspan="5">No se encontraron registros...</td></tr>';
}
}
}
?>

Con la función mysql_connect si me funciona a la perfección el inconveniente surge con mysqli si me pudieras ayudar con la función mysqli te lo agradecería mucho

saludos,
 
Recuerdo que en una ocasion me paso asi....y era por la version del servidor, el mysqli es mas nuevo, por lo que si lo usas en una version viejita del xamp o wamp tira error. No se si ya checaste ese detalle.
 
Asi mismo probe este codigo...
<?php
$conexion = mysqli_connect("localhost","root","","colegio") or die("Error " . mysqli_error($conexion));
$query = "SELECT * FROM asistencias" or die("Error en la consulta.." . mysqli_error($conexion));

$resultado = $conexion->query($query);
?>
<html lang="es">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<h1>Ejemplo conexión y consulta simple mysql - php</h1>
<ul>
<?php
while($row = mysqli_fetch_array($resultado)) {
echo "<li>". $row["id"] . " " . $row["nombre"] . "" . $row["faltas"] . "</li>";
}
?>
</ul>
</body>
</html>

Funcional y sin problemas
 
amigo crow muchas gracias por tu ayuda y tus prontas respuestas ya logre hacer la conexión mediante clase lo publico por si a alguien le sirve

archivo: clase.php
<?php
class MySQL{
private $conexion;
private $total_consultas;
public function MySQL(){
if(!isset($this->conexion)){
$this->conexion = (new mysqli("localhost","root",""))
or die(mysqli_error());
$this->conexion->select_db("colegio");
}
}
public function consulta($consulta){
$this->total_consultas++;
$resultado = $this->conexion->query($consulta);
if(!$resultado){
echo 'MySQL Error: ' . mysqli_error($this->conexion);
exit;
}
return $resultado;
}

public function num_rows($query){
return $query->num_rows;
}
}
?>

archivo: correr.php

<?php
include("clase.php");
$db = new MySQL();
$consulta = $db->consulta("select * from asistencias");
if($db->num_rows($consulta)>0){
while($resultados = $consulta->fetch_assoc()){
echo "Fecha: ".$resultados['fecha_asistencia']."<br />";
}
}
?>

nuevamente muchas gracias por todo tu apoyo!!!
 
Volver
Arriba