Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] consulta php con clases con clases como se hace ?

Estas en el tema de consulta php con clases con clases como se hace ? en el foro de PHP en Foros del Web. hola anterior mente yo tenia un codigo php de la siguiente manera @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original include("php/efecto_botton.php"); require_once('php/conect.php'); $social = "SELECT * FROM ...
  #1 (permalink)  
Antiguo 27/12/2017, 15:36
 
Fecha de Ingreso: febrero-2015
Ubicación: venezuela
Mensajes: 50
Antigüedad: 3 años, 5 meses
Puntos: 0
Pregunta consulta php con clases con clases como se hace ?

hola anterior mente yo tenia un codigo php de la siguiente manera
Código PHP:
Ver original
  1. include("php/efecto_botton.php");
  2. require_once('php/conect.php');
  3. $social = "SELECT * FROM social ORDER by ID DESC";
  4. if ($resull_social = $conectar->query($social)) {
  5.     while ($data = $resull_social->fetch_array(MYSQLI_ASSOC)) {
  6.             if($data['act']==1){?>
  7.             <a href="<?php echo $data['url'];?>" id="social"  class="<?php echo strtolower($data['nombre']);?>"></a>
  8.             <?php }else{ }} $resull_social->close();}$conectar->close(); ?>
y el archivo conect.php
Código PHP:
Ver original
  1. $hostname = "127.0.0.1:3307";
  2. $database = "loto24";
  3. $username = "root"; //Nombre de usuario
  4. $password = "";     //Nombre de contraseña
  5.  
  6.  
  7. $conectar =new mysqli($hostname, $username, $password, $database);
  8. $conectar->set_charset("utf8");
  9.  
  10. if ($conectar->connect_errno) {
  11.     printf("Falló La Conexión Error Del Servidor Intente Más Tarde");
  12.     exit();
  13.    
  14. }

ahora bien leyendo he logrado ver que php orientado a objeto es mejor y mas seguro asi que realice la conexión de la siguiente manera
Código PHP:
Ver original
  1. class conexionBD {
  2.    
  3.             function conectar(){
  4.            
  5.             $hostname = "127.0.0.1:3307";
  6.             $database = "loto24";
  7.             $username = "root";
  8.             $password = "";  
  9.            
  10.             $conectar =new mysqli($hostname, $username, $password, $database);
  11.             $conectar->set_charset("utf8");
  12.            
  13.             if ($conectar->connect_errno) {
  14.              printf("Falló La Conexión Error Del Servidor Intente Más Tarde");
  15.             exit();
  16.             }
  17.         }
  18.    
  19. }
y realice la instancia para llamar a la conexiona así
Código PHP:
Ver original
  1. require_once('conect.php');
  2. $conectar_BD = new conexionBD;
  3. $conectar_BD -> conectar();

la pregunta es ahora como debo modificar la consulta anterior que debo hacer para que la consulta me funcione quisiera un ejemplo de como imprimir esa consulta ?
Código PHP:
Ver original
  1. $social = "SELECT * FROM social ORDER by ID DESC";
  2. if ($resull_social = $conectar->query($social)) {
  3.     while ($data = $resull_social->fetch_array(MYSQLI_ASSOC)) {
  4.             if($data['act']==1){?>
  5.             <a href="<?php echo $data['url'];?>" id="social"  class="<?php echo strtolower($data['nombre']);?>"></a>
  6.             <?php }else{ }} $resull_social->close();}$conectar->close(); ?>
  #2 (permalink)  
Antiguo 27/12/2017, 15:58
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.352
Antigüedad: 3 años
Puntos: 253
Respuesta: consulta php con clases con clases como se hace ?

Primero retorna la instancia de tu conexion:

Código PHP:
Ver original
  1. class conexionBD {
  2.    
  3.             function conectar(){
  4.            
  5.             $hostname = "127.0.0.1:3307";
  6.             $database = "loto24";
  7.             $username = "root";
  8.             $password = "";  
  9.            
  10.             $conectar =new mysqli($hostname, $username, $password, $database);
  11.             $conectar->set_charset("utf8");
  12.            
  13.             if ($conectar->connect_errno) {
  14.              return ("Falló La Conexión Error Del Servidor Intente Más Tarde");
  15.             }
  16.             return $conectar
  17.         }
  18.    
  19. }

Luego seria algo así:
Código PHP:
Ver original
  1. require_once('conect.php');
  2. $conectar_BD = new conexionBD;
  3.  
  4. $social = "SELECT * FROM social ORDER by ID DESC";
  5. if ($resull_social = $conectar_BD->conectar()->query($social)) {
  6.     while ($data = $resull_social->fetch_array(MYSQLI_ASSOC)) {
  7.             if($data['act']==1){?>
  8.             <a href="<?php echo $data['url'];?>" id="social"  class="<?php echo strtolower($data['nombre']);?>"></a>
  9.             <?php }else{ }} $resull_social->close();}$conectar->close(); ?>

prueba y dinos
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 27/12/2017, 16:07
 
Fecha de Ingreso: febrero-2015
Ubicación: venezuela
Mensajes: 50
Antigüedad: 3 años, 5 meses
Puntos: 0
Respuesta: consulta php con clases con clases como se hace ?

Cita:
Iniciado por xfxstudios Ver Mensaje
Primero retorna la instancia de tu conexion:

Código PHP:
Ver original
  1. class conexionBD {
  2.    
  3.             function conectar(){
  4.            
  5.             $hostname = "127.0.0.1:3307";
  6.             $database = "loto24";
  7.             $username = "root";
  8.             $password = "";  
  9.            
  10.             $conectar =new mysqli($hostname, $username, $password, $database);
  11.             $conectar->set_charset("utf8");
  12.            
  13.             if ($conectar->connect_errno) {
  14.              return ("Falló La Conexión Error Del Servidor Intente Más Tarde");
  15.             }
  16.             return $conectar
  17.         }
  18.    
  19. }

Luego seria algo así:
Código PHP:
Ver original
  1. require_once('conect.php');
  2. $conectar_BD = new conexionBD;
  3.  
  4. $social = "SELECT * FROM social ORDER by ID DESC";
  5. if ($resull_social = $conectar_BD->conectar()->query($social)) {
  6.     while ($data = $resull_social->fetch_array(MYSQLI_ASSOC)) {
  7.             if($data['act']==1){?>
  8.             <a href="<?php echo $data['url'];?>" id="social"  class="<?php echo strtolower($data['nombre']);?>"></a>
  9.             <?php }else{ }} $resull_social->close();}$conectar->close(); ?>

prueba y dinos

no me funciona ya lo probé lo que me gustaría es que también las consultas estén guardadas en clases porque dicen que así es mas seguro
algo asi se que seria
Código PHP:
Ver original
  1. require_once('conect.php');
  2. $conectar_BD = new conexionBD;
  3. $conectar_BD -> conectar();
  4.  
  5. class plubli {
  6.    
  7.     function social(){
  8.        
  9.         aqui la consulta que imprime
  10.        
  11.     }  
  12.    
  13.    
  14. }
  #4 (permalink)  
Antiguo 27/12/2017, 17:42
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.352
Antigüedad: 3 años
Puntos: 253
Respuesta: consulta php con clases con clases como se hace ?

Esto seria algo básico:
Código PHP:
Ver original
  1. class General
  2. {
  3.     private $user = '';
  4.     private $pass = '';
  5.     private $host = '';
  6.     private $base = '';
  7.  
  8.     public function conexion(){
  9.         $db = new MySQLi($this->host, $this->user, $this->pass, $this->base);
  10.         if($db->connect_error) {
  11.             die('Error de conexion ('.$db->connect_errno.')'
  12.                 .$db->connect_errno);
  13.         };
  14.  
  15.         return $db;
  16.     }//END
  17.    
  18.     //Resto de funciones generales que necesites
  19. }
  20.  
  21.  
  22. //Clase usuario que se extiende de la clase General
  23. class Usuarios extends General
  24. {
  25.  
  26.     public function __construct(){
  27.         //Preparo la conexión solicitando a la clase padre
  28.         $this->con = $this->conexion();
  29.     }
  30.  
  31.     public function listaUsuarios(){
  32.         //Genero la consulta a la tabla de usuarios
  33.         $lista = $this->con->query("SELECT * FROM tabla");
  34.         //Verifico que genere resultados
  35.         $cant = mysqli_num_rows($lista);
  36.         //Valido el retorno en base a la cantidad de resultado de la consulta
  37.         return ($cant>=1) ? $lista->fetch_object() : false;
  38.     }
  39.  
  40. }
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 27/12/2017, 18:41
 
Fecha de Ingreso: febrero-2015
Ubicación: venezuela
Mensajes: 50
Antigüedad: 3 años, 5 meses
Puntos: 0
Respuesta: consulta php con clases con clases como se hace ?

Cita:
Iniciado por xfxstudios Ver Mensaje
Esto seria algo básico:
Código PHP:
Ver original
  1. class General
  2. {
  3.     private $user = '';
  4.     private $pass = '';
  5.     private $host = '';
  6.     private $base = '';
  7.  
  8.     public function conexion(){
  9.         $db = new MySQLi($this->host, $this->user, $this->pass, $this->base);
  10.         if($db->connect_error) {
  11.             die('Error de conexion ('.$db->connect_errno.')'
  12.                 .$db->connect_errno);
  13.         };
  14.  
  15.         return $db;
  16.     }//END
  17.    
  18.     //Resto de funciones generales que necesites
  19. }
  20.  
  21.  
  22. //Clase usuario que se extiende de la clase General
  23. class Usuarios extends General
  24. {
  25.  
  26.     public function __construct(){
  27.         //Preparo la conexión solicitando a la clase padre
  28.         $this->con = $this->conexion();
  29.     }
  30.  
  31.     public function listaUsuarios(){
  32.         //Genero la consulta a la tabla de usuarios
  33.         $lista = $this->con->query("SELECT * FROM tabla");
  34.         //Verifico que genere resultados
  35.         $cant = mysqli_num_rows($lista);
  36.         //Valido el retorno en base a la cantidad de resultado de la consulta
  37.         return ($cant>=1) ? $lista->fetch_object() : false;
  38.     }
  39.  
  40. }
buenas hice lo siguiente basandome en lo que tu me diste y lo que he leido por hay

archivo de conexión
Código PHP:
Ver original
  1. class conexionBD
  2. {
  3.     private $user = 'root';
  4.     private $pass = '';
  5.     private $host = '127.0.0.1:3307';
  6.     private $base = 'loto24';
  7.  
  8.     public function openBD(){
  9.         $db = new MySQLi($this->host, $this->user, $this->pass, $this->base);
  10.         if($db->connect_error) {
  11.            printf("Falló La Conexión Error Del Servidor Intente Más Tarde");
  12.             exit();
  13.         }
  14.         $db->set_charset("utf8");
  15.         return $db;
  16.     }  
  17. }

luego cree un archivo que se llama publi con lo siguiente
Código PHP:
Ver original
  1. <?php
  2. require_once('conect.php');
  3.  
  4. class plubli extends conexionBD{
  5.    
  6.      public function __construct(){
  7.        $this->con = $this->openBD();
  8.     }
  9.    
  10.    
  11.      public function social(){
  12.         //Genero la consulta a la tabla de usuarios
  13.         $sociales = $this->con->query("SELECT * FROM social ORDER by ID DESC");
  14.         //Verifico que genere resultados
  15.         $data = $sociales->fetch_array(MYSQLI_ASSOC);
  16.         return $data;
  17.     }
  18.    
  19. }

hasta hay creo que esta bien ahora lo que necesito es imprimir en la paguina html lo que la persona van a ver un wlile
Código HTML:
Ver original
  1. require_once('php/publi.php');
  2.  $imprime_social = new plubli();
  3. ;
  4. while ($imprime_social->social()) {
  5.             if($imprime_social['act']==1){?>
  6.             <a href="<?php echo $imprime_social['url'];?>" id="social"  class="<?php echo strtolower($imprime_social['nombre']);?>"></a>
  7.             <?php } } ?>

la verdad no se como hacerlo y pues quiero hacerlo asi porque la cosa es que consiste en una paguina donde se mostrar informacion de bd quienes somo nosotros nuestra empresa cosas asi y esa consulta con la que no doy imprime las redes sociales que el dueño de la pagina haya habilitado en el mismo archivo publi.php are las otras clases que imprimiran todo lo que se ve en la paguina

Etiquetas: pdo, poo
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:51.