Curso PHP MySql. Conexión a BBDD utilizando Clases POO. Vídeo 57

Поділитися
Вставка
  • Опубліковано 19 вер 2024
  • Comenzamos a ver en este vídeo cómo conectar con BBDD utilizando Programación Orientada a Objetos creando clases.
    Para más cursos. ejercicios y manuales visita: www.pildorasinf...

КОМЕНТАРІ • 260

  • @marcelacastillo5467
    @marcelacastillo5467 4 роки тому +25

    Que haría yo sin los comentarios de todos los que están aprendiendo cuando me salen errores, que maravilla! Y que excelente curso!

  • @jonathanromero6141
    @jonathanromero6141 3 роки тому +5

    me habia aparecido un error pero lo pude solucionar cambiando el nombre del constructor
    uso php version 8.0.3
    este es el codigo de conexion por si lo necesitan
    y muchas gracias por los videos, me han servido mucho para aprender mejor este lenguaje

  • @sergiosanzarroyo5613
    @sergiosanzarroyo5613 4 роки тому +20

    Buenas!
    Lo primero agradecer el gran aporte que das!
    CÓDIGO OBSOLETO:
    1- Los constructores se llaman __construct() también admite __constructLOQUEQUIERAS()
    2- El método get le pasa casi lo mismo, se debe llamar __get() o __getLOQUEQUIERAS() [de momento no está obsoleto]
    3- En el método get no me hace bien la consulta y tuve que llamar a la funcion mysqli_query($link) Pongo código:
    $consulta = "SELECT * FROM ARTICULO";
    $resultado = mysqli_query($this->mysqli, $consulta);
    $datos = mysqli_fetch_all($resultado,MYSQLI_ASSOC); --> MYSQLI_ASSOC [Sirve para guardar el nombre de las columnas]
    4- Importante poner MYSQLI_ASSOC en el paso anterior sino deseas tratar el array con índices en vez de con nombres (para el caso foreach)
    Dejo esto por aquí porque he estado un rato buscando y no quiero que les pasen a otros igual que a mi
    PD: Sigue asi! Eres un crack! para cuando un curso de ¿criptomomedas? Sería de los primeros en verlo!

    • @randymatos8212
      @randymatos8212 4 роки тому

      saludos y gracias por la intencion, pero en mi caso el codigo del profesor funciona perfectamente lo unico a tener en cuenta es cuando llamamos al constructor de la clase padre debemos poner dos guiones bajo osea (_ _) claro sin espacio. SIGUE ADELANTE JUAN, SALUDOS DESDE REP. DOMINICANA

    • @fabiancordoba435
      @fabiancordoba435 4 роки тому

      buenas amigo, use el codigo que pones pero me pone un error de que se esta llamando al metodo nulo, sabes a que podria ser; adjunto codigo
      $consulta="SELECT * FROM hoja1";
      $resultado=mysqli_query($this->mysqli,$consulta);

      $skaters=mysqli_fetch_all($resultado,MYSQLI_ASSOC);

      return $skaters;

    • @sergiosanzarroyo5613
      @sergiosanzarroyo5613 4 роки тому

      ​@@fabiancordoba435 Hola Fabian!
      Pues lo primero que tienes que comprobar si la tabla a la que haces referencia se llama exactamente hoja1
      Lo segundo a comprobar es el resultado de la función de 'mysqli_query':
      $consulta="SELECT * FROM hoja1";
      $resultado=mysqli_query($this->mysqli,$consulta);
      if ( !is_countable($resultado) || count($resultado) mysqli->error() );
      $skaters = null;
      else
      $skaters=mysqli_fetch_all($resultado,MYSQLI_ASSOC);
      return $skaters;
      Si te devuelve bien la consulta ( con mas de una fila ). El error estaría en el 'mysqli_fetch_all()' puedes probar a poner "mysqli_fetch_array()" para que te lo devuelva en array.
      Un saludo y que vaya bien la programación!

    • @fabiancordoba435
      @fabiancordoba435 4 роки тому

      Sergio Sanz Arroyo el error me lo lanza en la línea del query, $resultado=mysqli_query($this->mysqli,$consulta); , y la tabla se llama hoja1, de todas maneras muchas gracias por la explicación, buscare un poco más de información para resolverlo

    • @sergiosanzarroyo5613
      @sergiosanzarroyo5613 4 роки тому +1

      @@fabiancordoba435 Pues entonces está clarísimo! ahí hay un error en el parámetro $this->mysqli tiene que estar en null o algo así, revisa que la conexión esté correcta (nombre , contraseña del usuario de la bbdd y nombre de la bbdd ) También tienes que comprobar si ese usuario tiene permisos en esa bbdd.
      Te dejo un ejemplo de donde debe de estar fallando:
      $this->mysqli = mysqli_connect("localhost", "user", "password", "dbname");

  • @MiguelReyesDeveloper
    @MiguelReyesDeveloper 4 роки тому +38

    Debido a que ha habido ciertos cambios en PHP, dejaré aquí el código que funciona en 2020:
    Para el archivo de config.php:
    Archivo de conexion.php:
    Archivo de devuelve productos.php:
    Y finalmente el archivo index que yo decidí llamar muestraProductos.php:


    Document

    • @mohcinelmariouh2517
      @mohcinelmariouh2517 4 роки тому

      Yo llevo todo el curso muy bien hasta este punto no pude conectarme

    • @mohcinelmariouh2517
      @mohcinelmariouh2517 4 роки тому

      Yo no terminé el código solo me queda ennla ejecuccion de la primer clase no pude conectar y deje el tema

    • @mohcinelmariouh2517
      @mohcinelmariouh2517 4 роки тому

      Porque si hago fallos en name y password y la funcion constructor no responde no tiene sentido seguir el codigo

    • @jorgealfonsovergarasou6299
      @jorgealfonsovergarasou6299 4 роки тому +2

      Gracias, me ahorraste horas de cabeza contra la pared

    • @GustavoPrieto
      @GustavoPrieto 4 роки тому +1

      Gracias.

  • @JoseManuel-lo2ed
    @JoseManuel-lo2ed 2 місяці тому

    Vídeo de categoría, cuidado que es caviar del bueno.
    Y comentarios de nivel.
    Saludos.

  • @cahuanagold4293
    @cahuanagold4293 Рік тому +2

    Holas, esta clase tambien no me funcionó, y pasé varias horas en la noche intentandolo, recien al dia siguiente lo resolví viendo los comentarios; es por los constructores que ahora se escriben diferente, sigan la recomendacion de Miguel Reyes; por otro lado saludo al profesor, muy bueno sus cursos, de los tantos tutoriales que veo este es de los mejores, su dedicación y paciencia son de los que se desea en un profesor.

  • @LrNas
    @LrNas 5 років тому +8

    Fue una buena combinacion aprender español y estudiar php en tu canal.

  • @iepson
    @iepson 8 років тому +18

    Después de barrer UA-cam en busca de cursos dedicados a PHP y mySQL, tengo que decir que este es uno de los cursos más claros y bien explicados que hay, ¡enhorabuena!
    Más adelante, ¿tienes la intención de explicar el tema de sesiones, usuarios, roles, perfiles, etc...que tanta faena da?
    ¡Un saludo y sigue así!

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому +2

      +Thierry Henry Hola !! Gracias por el comentario. Sí, es mi intención tratar todos estos asuntos ya que me preguntáis mucho por ellos. Más adelante los veremos. Un saludo

  • @mariocalcetin7602
    @mariocalcetin7602 5 років тому +1

    Se agradece como siempre don Píldoras , comento todos los días a esta hora , porque llego del trabajo tarde y siempre me doy animo para aprender algo nuevo y en parte es que sus vídeos son fáciles de digerir , usted explica todo con mucho detalle no quedando nada a la imaginación.
    Saludos como siempre señor.

    • @pildorasinformaticas
      @pildorasinformaticas  5 років тому +1

      Pues muchas gracias como siempre por ver mis vídeos. Yo por desgracia no puedo leer todos los días vuestros comentarios porque son muchísimos. Pero a veces os leo. Un saludo!

  • @josemanuelfloresgasca4319
    @josemanuelfloresgasca4319 5 років тому +1

    MAESTRO, le agradezco hace 4 años deje de programar, y se olvido un poco, y con este video he vuelto a la luz, jejeje gracias.

  • @jmgc92
    @jmgc92 8 років тому +5

    Excelente cada ves mas contento con los conocimientos adquiridos profesor, para los que no lo sepan los marcadores solo funcionan en la libreria PDO, intente en MySQLI con POO ya tenia un buen dolor de cabeza, las compare y en efecto los marcadores no estan en la librería MySQLI, Saludos!

  • @raymonrodriguez5806
    @raymonrodriguez5806 3 роки тому +2

    Excelente, espero con ansisas termine este curso para entrar al campo laboral, muchas gracias juan

  • @luishola625
    @luishola625 5 років тому +1

    Gracias por la dedicacion al hacer los videos, estoy aprendiendo estos conceptos en el 2019 y con 31 años encima. Un Saludo desde perú

  • @jcare07
    @jcare07 5 років тому

    Excelente 🤗 usted es un maestro. Lenguaje sencillo y fácil de entender. Felicidades. Me gustan tus cursos.

  • @enriquecastaneda4614
    @enriquecastaneda4614 Рік тому

    Juan e tomado muchos cursos como este, pero como lo explicas se ve muy facil creo que solo tenia conocimientos de sql server pero ahora con este corso ya puedo decir que ya se un 30% de programacion de php y mysql no lo tengo dominado pero si se como un 60% ahora quiero hacer un proyecto de punto de venta y quiero regalar el codigo para las pequeñas empresas ya que como yo que soy empresario checas un software primero son muy caros y despues todos estan plagados de muchos errores, procedimientos incompletos o procedimientos insertados especialistas para cada empresa sin analizar como muchos procedimientos pueden estar en las mismas empresas solo con habilitar o deshabilitar las opciones pero bueno ya no te distraigo a ver si puedes crear un curso para generar un punto de venta en la que podamos intervenir para generar un punto de venta para pequeños empresarios, no que contemple todo solo operacion de venta, bueno te felicito por el canal espero en poco tiempo meterme a uno de tus cursos para aprender aun mas cosas

  • @mariaeugeniapereira5943
    @mariaeugeniapereira5943 3 роки тому

    Excelente curso. Años después me ha servido mucho aunque he consultado el manual de PHP para actualizar algunas cosas que han cambiado en las nuevas versiones. Pero sigue siendo excelente. Saludos y Gracias.

  • @hriascos
    @hriascos 8 років тому +1

    Hola Juan, me he sumado a finales de diciembre a este curso y ya me he puesto al día con el último vídeo. Permìteme felicitarte por tu excelente forma de enseñar. Te deseo mucho éxito profesional. Quedo pendiente por supuesto de tu próxima entrega. Saludos.

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Harrinson Riascos Torres Muchas gracias por el comentario y por seguir mis vídeos. Me alegro de que te gusten. Un saludo!!

  • @כלבכרבלו
    @כלבכרבלו 5 років тому

    gracias, llevo ya 21 días recibiendo sus clases, muchas gracias !!!!

  • @julianlondonolopez
    @julianlondonolopez 6 років тому +2

    Hola Juan y a todos los compañeros, no acostumbro a escribir pero creo que debo dar de lo que he recibido. Primero que todo; muchas gracias Juan por todos los conocimientos compartidos otra vez, en el vido siguiente ya comente por primera vez y este es el Segundo comentario, gracias Juan y Dios Te Bendiga.
    Bien, para los que han tenido problemas con la connexion (fetchAll(PDO::FETCH_ASSOC);) y (foreach{}) aqui les voy a dejar todo mi codigo para que lo analizen y puedan copiar, probado en todas las versiones de PHP (en el siguiente video en mi comentario el codigo esta mucho mas mejorado):
    _____________________________________
    _________________________________________________
    ____________________________________________

  • @alfredoizquierdo8007
    @alfredoizquierdo8007 8 років тому +1

    muchas gracias por su tiempo aprendi mucho con estos videos... siga se lo agradecemos

  • @michaeljimenez6493
    @michaeljimenez6493 8 років тому +1

    Un saludo desde Costa Rica !! excelente todos tus cursos en especial este de PHP.

  • @alexismanotas7454
    @alexismanotas7454 10 місяців тому

    Profe excelente curso, es completamente distinto a todos los demas y la forma de explicar estupenda.. queria comentar algo y es que las consultas PDO son mas lentas que las Mysqli. PDO el que mucho abarca poco aprieta, al ser generico para distintos tipos de base de datos hace que pierda un poco de velocidad. saludos.

  • @carlosrodrgiguez8629
    @carlosrodrgiguez8629 8 років тому +1

    Excelente curso , eres buen instructor gracias por tu aporte me han ayudo mucho.......

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +carlos rodrgiguez Gracias !! Me alegro de que te guste. Un saludo

  • @ing.luismiguellopezrodrigu5354
    @ing.luismiguellopezrodrigu5354 8 років тому +2

    Hola Juan he seguido tu curso desde el inicio hasta vídeo actual y puedo decir que eres muy buen profesor, quiero comentarte que tuve problemas donde me marcaba esta linea $users = $result->fetch_all(MYSQLI_ASSOC); de la clase usuarioModelo, investigue y aplique varias posibles soluciones sin lograr nada, tu ve que modificar esa linea de esta manera ya vista $result=$this->_db->query($sql); y cambiar algunas cosas incluyendo el foreach por un while y creeme si que funciono, me di cuenta que he aprendido y comprendido cada uno de tus lecciones. Muchas gracias por tu voluntad de enseñar hasta la proxima

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +luis miguel lopez Gracias por el comentario. Me alegro de que te guste el curso. Esa es la verdadera forma de aprender, investigando uno mismo. La verdad ahora no tengo idea de por qué no te funcionó la instrucción. Pueden ser muchos los motivos como por ejemplo que estés utilizando una versión diferente de PHP a la que utilizo yo... pero habría que mirarlo. Un saludo!!

    • @EldiariodeAlbert
      @EldiariodeAlbert 7 років тому

      En mi caso me daba un error "Fatal error: Call to a member function fetch_all() on boolean in" porque la instruccion SQL tenia el ateristo (*) despues de la palabra FROM.
      Saludos

  • @becerra308
    @becerra308 8 років тому +1

    Excelente curso Juan, sencillo y muy bien explicado… Te felicito…!!
    Me encanto la parte de POO, espero continúes más adelante y puedas explicar los temas de CRUD con POO, sesiones, usuarios, etc.. Saludos

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Ing. Carlos Becerra Hola !! Gracias por el comentario. Es mi intención hacerlo. Un saludo!!

  • @gustavojuarez2763
    @gustavojuarez2763 2 роки тому

    como siempre excelente Juan !!

  • @caballoloco100
    @caballoloco100 4 роки тому

    Hay que re-rescribir en la version mas moderna de PHP:
    $this->conexion_db = new mysqli(DB_HOST, DB_USUARIO, DB_CONTRA, DB_NOMBRE);
    Gran curso.

  • @quiqueroca8047
    @quiqueroca8047 8 років тому +1

    Gracias Juan, muy bien explicado, como siempre,. Gracias.

  • @marvinlozanoolarte646
    @marvinlozanoolarte646 3 роки тому

    si alguien ve este excelente video, tantas lineas de codigo se prestan facilmente para errores de digitacion,,,, yo tuve uno muy tonto en el config.php y al haber error alli , empieza a mostrar erores por montones en los demas archivos php, asi que revise el config.php y habia puesto: define('DB_CONTRA',' '); ..... si miras bien habia dejado un espacio entre las comillas simples donde debe ir la contraseña; es muy poco notorio pero creanme, el tiempo que quita notarlo es muy grande.

  • @blackmetal1131
    @blackmetal1131 7 років тому +4

    Gracias por el vídeo , gran aporte.

  • @gakomix481
    @gakomix481 8 років тому +1

    Ya te extrañaba, que bueno que estás de vuelta Juan

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому +2

      +Ga Komix Gracias !! A ver si me dejan un poco en paz con temas de trabajo y le puedo dar un impulso al canal. Un saludo

    • @gakomix481
      @gakomix481 8 років тому +1

      +pildorasinformaticas Imagínate Juan, ¿que tan feo será eso del trabajo?....¡QUE HASTA PAGAN POR HACERLO!...jejejeje....Saludos mi amigo

  • @danielguevara9556
    @danielguevara9556 7 років тому +1

    Tuve una duda en la clase Conexion con respecto a $this->conexion_db... tenía la duda de porque no se usaba la variable conexion_db con el símbolo de $ antes, y comparto lo que pude encontrar al respecto.
    Cuando uno usa $this en POO:
    Uno usa $this para hacer referencia al objeto (instancia) actual, y se utiliza self:: para referenciar a la clase actual. Se utiliza $this->nombre para nombres no estáticos y se utiliza self::nombres para nombres estáticos.
    programacion.jias.es/2012/11/poo-en-php-this-parent/
    Espero les sirva...
    Y Gracias profe por sus clases. Saludos desde Perú!

  • @jose23683
    @jose23683 8 років тому +1

    muchas gracias, espero sigas haciendo tutorial por un largo tiempo, saludos

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Jose canevaro vargas Esa es la idea !! Gracias por seguir mis vídeos. Un saludo

  • @simonlopez5118
    @simonlopez5118 5 років тому

    muchas gracias por tus videos juan estan muy bien estructurados

  • @williammartinchambiovalera5978
    @williammartinchambiovalera5978 8 років тому +1

    PODRIAS DAR UN CURSO DE PATRON MVC CON PHP POR FAVOR, ERES UN GRAN PROFESOR HE ESTADO APRENDIENDO DEMASIADO EN TODO ESTE TIEMPO MUCHAS GRACIAS, SALUDOS DESDE PERÚ, REALMENTE VALE LA PENA INVERTIR TIEMPO MIRANDO TUS VIDEOS, GRACIAS POR TU ENSEÑANZA Y TU TIEMPO EN HACER ESTOS VIDEOS :)

  • @LeonardoProne
    @LeonardoProne 10 місяців тому

    Gran clase! muchas gracias!

  • @agorinterlomas2972
    @agorinterlomas2972 6 років тому

    Eres un buenazo :-), mil gracias, tenia error en el __construct (es _ _ ) jejeje como 1 hora para entenderlo y eso porque leí los comentarios, caramba no poner atención en una sola linea, como se complica uno la existencia

  • @d-landjs
    @d-landjs 3 роки тому

    Excelente curso nivel premium!

  • @diegosaravia5409
    @diegosaravia5409 6 років тому

    Hey muchas gracias por todos los videos que hiciste de este curso! Creeme que a mi corta edad esto me es de mucha utilidad ahora en día, felicidades en serio y espero que Dios colme tu vida de bendiciones masivas!
    Solo quiero pasar a preguntar tu opinión acerca de esta forma de escritura de código php, que para mi ver es más fácil que estar imprimiendo tablas, y da el mismo resultado:
    Conexion con clases POO







    Un amigo me aconsejó que escribiera así, y quisiera saber si para ti es más beneficioso o es peor. Espero tu respuesta, ¡Bendiciones en tu día!, te saludo desde El Salvador

  • @carlosberrospi4494
    @carlosberrospi4494 6 років тому

    Sus vídeos son muy buenos profesor, muchas gracias por compartir los cursos y su conocimiento :) , seria genial que abordara el tema de maquetado para wordpress o otros en photoshop cs6

  • @facundotecheira525
    @facundotecheira525 4 роки тому

    Muchas gracias por compartir tus conocimientos, explicas muy bien.

  • @ronnygarcia4401
    @ronnygarcia4401 7 років тому +2

    Hola Juan doy fe que tus cursos son muy buenos, no había tenido error hasta este capitulo (57), verifique config.php las Variables define las coloque con comillas dobles y fue un error menos, por que lo verifique cambiando el nombre de la DB y me arrojo el numero del error. Todo lo demás te puedo asegurar que esta igual y no pasa nada. en index.php en la primera zona PHP lance un echo para saber por donde voy y cuando lo coloque después de llamar al metodo get_productos no me escribe el echo. Verifique la función y esta tal cual como en el Tuto, Lo deje así y seguí viendo el CAP (58) a ver que pasaba ¿ Porque en el CAP (58) cuando entras a devuelveproducto.php en la funcion get_producto tienes en una linea $resultado.... en la otra $productos...... y en la ultima $resultado ..... y en CAP 57 esta diferente? Gracias

    • @yakaroyakaro
      @yakaroyakaro 3 роки тому

      me pasa lo mismo..llevo una hora revisando y nada.

  • @JUANZ503
    @JUANZ503 7 років тому +1

    Muchas gracias por los videos, para mi esta el video 45 termino el curso ya que esto es de preferencia l, además no es muy amigable esta sintaxis

  • @doblejj
    @doblejj 5 років тому

    Excelentisimo video. Pelos como escarpias!

  • @JoseMiguelGarciaGuilamo
    @JoseMiguelGarciaGuilamo 3 роки тому

    Buenas!!, siempre he tomado sus cursos como consulta con temas que no se, en este caso me gustaria recomendar que integre crear API Restful con PHP. Tengo que hacer algo similar para un proyecto y no tengo idea de como hacerlo, lo busque en este tema de php porque usted es el profesor que mas entiendo pero creo que no esta.
    Gracias!

  • @JJ-gy6gp
    @JJ-gy6gp 8 років тому +1

    Muy bueno excelente , espero ahora con en PDO

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Jhon Jonny Giron Urbano Gracias. En breve lo veremos. Un saludo

  • @jcalferess
    @jcalferess 7 років тому

    Hola, antes que nada gracias por los tutoriales, estan muy bien explicados.
    Espero me ayude en lo siguiente.
    estoy usando this->conexcion_db->error; para obtener el mensaje de error de mi consulta (he forzado yo el error )
    sin embargo no logro obtener dicho mensaje, ya que se me retorna un string vacio, mismo caso para this->conexcion_db->errno; siempre me regresa 0. el objetivo es tener un log de errores.
    gracias.
    pd: $this->conexcion_db->connect_errno y $this->conexcion_db->connect_errno funcionan correctamente

  • @nelsonjo14
    @nelsonjo14 8 років тому

    Buenas tardes, un saludo desde Venezuela, excelente curso, muchas gracias por compartir tus conocimientos a quienes comenzamos en este mundo, tengo un inquietud. Al final de este video utilizas un ciclo foreach para poder mostrar el contenido del array asociativo que tiene almacenado los datos de la consulta SQL, cual es la diferencia entre si lo colocas de esta forma:
    foreach (expresión_array as $valor)
    sentencias
    o asi:
    foreach (expresión_array as $clave => $valor)
    sentencias

  • @oscaralba5546
    @oscaralba5546 5 років тому +3

    Ademas tambien me comenta que esta depreciado (deprecated) usar el mismo nombre para la class y la function.

  • @ericactive5298
    @ericactive5298 3 роки тому

    Gracias por el video :) Y el curso.

  • @TheGokuorozco
    @TheGokuorozco 6 років тому +5

    hay un problema con la definición del constructor hay que ponerlo __construct (ojo doble _ _ ) en conexion.php y devuelvep...php para que funcione

    • @doblejj
      @doblejj 5 років тому

      A mi me funciona perfectamente con el nombre de la clase como constructor

    • @simonlopez5118
      @simonlopez5118 5 років тому +1

      oh bro. muchas gracias estaba reventandome la cabeza.

    • @santosmedell6725
      @santosmedell6725 5 років тому

      Gracias, llevaba horas buscando el "error", no sé porqué sucede eso, pero gracias.

    • @benny-sz-456
      @benny-sz-456 3 роки тому

      eres un crack! (3 hrs buscando pq me salia error 500)

  •  4 роки тому

    Hoy si tengo material para practicar duro duro

  • @israelgonzalez677
    @israelgonzalez677 5 років тому

    Excelente curso profesor!! Tengo una pregunta: al final, ¿Qué es mejor usar: PDO, POO o como inicialmente nos enseñó a conectar a bases de datos?

  • @soundfire2011
    @soundfire2011 7 років тому

    Hola profe, mi más sincera enhorabuena por tu canal. Tengo una duda, ¿el this dentro de una clase no hacía referencia al objeto? Es que en el vídeo dices que hace referencia a la clase, en este caso el que haría referencia a la propia clase sería el self, ¿es así? o estoy mal informado. Es que creo que fue eso lo que explicaste en vídeos anteriores de POO. Un abrazo y decirte que me encanta como explicas las cosas.

  • @chitalvis
    @chitalvis 6 років тому

    Hola Juan Buenos días... Juan como siempre agradecido con tus cursos, me sirven mucho. Mi pregunta es, que funcion cumple la palabra return en el constructor de la clase Conexion... Nos saca del programa o que valor esta retornando. Muchas gracias

  • @carlodanielpimenttel2233
    @carlodanielpimenttel2233 5 років тому +1

    Buen video a seguir estudiando

  • @santiagollavata3634
    @santiagollavata3634 8 років тому +1

    Eres un genio

  • @oscaralba5546
    @oscaralba5546 5 років тому +1

    He creado, revisado y contrarevisado el codigo y me da sistematicamente este error:
    Fatal error: Uncaught Error: Call to a member function query() on null in C:\apache24\htdocs\poohcendo\DevuelveUsuarios.php:14 Stack trace: #0 C:\apache24\htdocs\poohcendo\index.php(4): DevuelveUsers->get_users() #1 {main} thrown in C:\apache24\htdocs\poohcendo\DevuelveUsuarios.php on line 14

    • @arcomusicentertainment2247
      @arcomusicentertainment2247 5 років тому

      ME PASA LO MISMO

    • @slipfo03
      @slipfo03 5 років тому

      Según yo (soy principiante en esto de programar) tiene varias cosas que ya declararon obsoletas en PHP, por ejemplo lo de llamar igual la clase y el constructor, eso marca error. y yo estoy igual, no me funciona el código.

    • @el4gamer642
      @el4gamer642 5 років тому +2

      Es por la forma de declarar el constructor. Adjunto el código para que prueben:
      Código de conexión:
      Código para devolver productos:

  • @brayanfernandezrojas6985
    @brayanfernandezrojas6985 7 років тому +1

    Saludos Profe, al final del video metes los elementos dentro del ciclo foreach y así durante todo el curso, esto estaría creando una tabla por cada registro, no una única tabla para todos los registros no ?

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому

      Ya no recuerdo el código de este vídeo pero si es como tú dices, efectivamente crearía una tabla a cada vuelta de bucle. La solución sería fácil: sacar las etiquetas table del for-each dejando en este únicamente las tr y td. Un saludo!!

  • @sppizarrov
    @sppizarrov 8 років тому +1

    Estimado Maestro, esta es una petición especial para cuando llegue el momento de hacer el crud si es posible que nos permita modificar por ejemplo el país de un producto y que este este enlazado a una tabla de países con sus respectivos indices y así poder utilizar el select de html, yo lo estoy haciendo con todo lo que tu nos has explicado con una tabla clientes y cuidades pero no me resulta cuando intento modificar un campo de un select. saludos

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +sergio pizarro ¿Con un Select? Será con un Update ¿no?

    • @sppizarrov
      @sppizarrov 8 років тому +1

      ayer retome el tema y pude corregir el problema, no me actualizaba ya que la relación de las tablas estaba invertida, muchas gracias por tu preocupación en responder.

  • @williamvallecilla261
    @williamvallecilla261 4 роки тому +1

    Para los que les genere el código error en la consulta , buscando en páginas encontré esta solución $this->cnx_db=new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER,DB_PASS);

  • @hugoadolfo
    @hugoadolfo 7 років тому +3

    Buenas profesor: Estuve probando el codigo del video pero adaptándolo a otra tabla de personas mas no de productos, obviamente teniendo cuidado con los nombres de los campos. Sin embargo al momento de usar los echo que muestran los registros, coloque los nombres de los campos en mayúsculas y marca error, no muestra los resultados. La solución fué escribir correctamente los nombres de los campos tal cual están en la base de datos. Quiero decir que es sensible a las mayúsculas y minúsculas.

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому

      Sí, es un buen apunte el que haces. Hay que tener cuidado con los campos case sensitive. Un saludo!!

    • @oscarperez-kp3qd
      @oscarperez-kp3qd 5 років тому

      comentarios que salvan vidas y no permiten perder la cordura jeje, gracias por el aporte

  • @windowHome
    @windowHome Рік тому

    En vez del if dentro del constructor en el archivo conexión puedo usar un try and catch para comprobar la conexión cierto?

  • @EldiariodeAlbert
    @EldiariodeAlbert 7 років тому +2

    Tuve un maestro en la universidad que quería que programáramos como el quería, pero jamas nos decía como el lo quería. Tambien recuerdo que llegamos a crear hasta 4 veces el mismo programa de maneras diferentes y jamas era la manera en que el quería... pero el jamas nos decía como lo quería XD jaja solo decía que así no era

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +4

      :))) Yo siempre que digo que en programación hay varios caminos para llegar a Roma. Hay caminos cortos, sencillos y directos y caminos más largos y difíciles. Pero mientras lleguemos a Roma cualquier camino será válido. Si tu programa funciona correctamente, tal vez no tenga el código más optimizado, pero el código será correcto igualmente. Un saludo!!

  • @alberthcastillo9693
    @alberthcastillo9693 5 років тому

    Antes usaste objetos con con la forma procedimental ¿a eso se le puede llamar POO? o para que sea POO se tienen que usar Clases. ¡Gracias por el Curso Sensei y un saludo desde Venezuela!

  • @ericktucto
    @ericktucto 7 років тому +4

    Sabe profe Juan he leido la documentacion... y dice que en PHP 7 se considera codigo OBSOLETO escribir el nombre de la clase para constructor de la clase... dice que se usa __construct para definir el constructor de la clase

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +9

      Efectivamente así es. Y lo digo más adelante en el curso. Tener en cuenta que este vídeo hace ya mucho tiempo que se grabó. Un saludo!!

    • @harryostaiza4061
      @harryostaiza4061 7 років тому

      Iba a responder lo mismo jeje pero ya me ha aclarado las dudas...

  • @alejandromonzon8659
    @alejandromonzon8659 7 років тому +1

    Buenos días profesor!! espero pueda aclararme esta duda, lo que estabamos haciendo en los videos anteriores con la conexion con PDO, y mysqli usando las clases con el operador -> no era Programación Orientada a Objetos ya? es que como dices en este video que la vamos a comenzar a ver¿? que diferencia tiene además de que en este creamos nuestras propias clases?

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +1

      Sí, efectivamente cuando utilizamos el operador -> estamos utilizando programación orientada a objetos. El tema es que no la estamos viendo en toda su extensión ya que la POO conlleva también utilizar características como la herencia, la encapsulación etc. Y eso es lo que se ve en la parte dedicada a la POO dee este curso. Un saludo!!

    • @alejandromonzon8659
      @alejandromonzon8659 7 років тому

      Vale todo claro!! graciaaas!!!

  • @mauriciotorresvblog
    @mauriciotorresvblog 7 років тому

    Profesor tengo varias dudas, una de ellas es al momento de colocar require ("config.php"); ahi lo colocas con paréntesis y en los otros dos require los dejas con solo las comillas dobles como es el caso de require "Conexion.php"; y de require "DevuelveProductos.php"; ¿Afecta en algo que sea con los paréntesis o sin ellos?

  • @victorvicos2406
    @victorvicos2406 7 років тому

    Es muy raro pero el salto de linea hace que no se me imprima nada en la pagina. Me he vuelto loco buscando el fallo y era eso.

  • @zero_hancco
    @zero_hancco 6 років тому

    Para el problema de (fetch_all(MYSQLI_ASSOC)) que les salga pueden simplemente actualizar el PHP a la version 7 , a mi me funciono ya que en la version php 5 .4 me salia error

  • @jaimesalazar8478
    @jaimesalazar8478 2 роки тому

    una ayuda, me sale : "aviso: índice no definido", pero cuando uso var_dump($elementos), si funciona pero con la tabla no. Gracias

  • @miguellopezt86
    @miguellopezt86 8 років тому +1

    Buen video, tengo una duda respecto a las clases que creaste. Es necesario abrir y/o cerrar las conexiones a la base de datos en los ejemplos de tu video?
    Saludos!.

  • @paulvalencia9243
    @paulvalencia9243 6 років тому

    Profesor cual es la diferencia entre definir las constantes asi define('name','value') o Const name = 'value'

  • @banyquezada8795
    @banyquezada8795 6 років тому

    una consulta ¿si en vez de heredar de la clase conexión se crea un objeto o una instancia estaríamos ejecutando de la misma forma el constructor de la clase conexión?, siempre me da problemas el saber cuando usar la herencia, porque de igual forma si se crea una instancia de la clase se tiene acceso a sus métodos y atributos son pequeñas las cosas que cambian como el hecho de las variables protected y la sobre escritura de métodos.

  • @alextaype5202
    @alextaype5202 7 років тому +1

    si justamente ese no es el problema, el problema esta en esta linea
    $resultado=$this->conectar_bd()->query($sql); me arroja error Call to a member function query() on null
    el metodo conectar_bd debe ser y lo hice private ,para que cuando llame funciones del controlador no me aparesca este metodo

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому

      Pues no caigo ahora mismo en qué puede estar causando el error...

    • @expo-jc6lt
      @expo-jc6lt 6 років тому

      Si lo hiciste private no puedes usarlo en la clase Devuelveproductos ya que queda encapsulado en la clase conexion por eso el profe lo ah hecho protected paraque pueda usarse conectar_db en ambas clases

  • @tetragis1
    @tetragis1 7 років тому +7

    me parece mucho mas dificil el metodo poo que el otro no se. si este metodo es casi igual que copiar y pegar pero con un monton de flechis -> -> => ->esto por aqui ->>> me vueve loco ::

    • @lserranoit
      @lserranoit 5 років тому +1

      Igual a mi, pero creo como todo en la programacion con la practica va teniendo mas sentido.

  • @guilledragx1204
    @guilledragx1204 6 років тому +1

    es necesario poner Public Function ?? si ignoras el Public y solo pones Function y el nombre , no seria lo mismo??

    • @pildorasinformaticas
      @pildorasinformaticas  6 років тому

      No, no sería lo mismo. Tal vez funcione pero todo dependerá desde donde quieras acceder a la función. Expliqué en el curso los modificadores de acceso (public, private, protected) con ejemplos. Si tienes dudas echa un vistazo a vídeos anteriores. Un saludo!

  • @brianjohnson1863
    @brianjohnson1863 7 років тому

    Saludos Juan.
    Una pregunta curiosa:
    Al aprender PHP y MySQL usando PDO, ¿ya no vale la pena aprender a trabajar con los métodos de mysqli?

  • @rociopinzon5840
    @rociopinzon5840 5 років тому

    Cuando usamos require "Conexion.php", por qué a veces utilizas los paréntesis y otras no? Cuál sería la forma correcta para el require?? muchas gracias

  • @yacoobsc.m3269
    @yacoobsc.m3269 7 років тому

    Creo que te falto cerrar la conexión echa a la BBdd de la tabla, supongo que debería de estar colocada al dentro de la función get_productos
    $this->conexion_db->close();
    Saludos

  • @enriquecastaneda4614
    @enriquecastaneda4614 Рік тому

    tengo un problema en los cursos POO desde el principio no se ven las herencias solo me marca un error en este caso coloque un error en el nombre de la tabla y no me manda error solo me manda el error en el index
    que podria ser

  • @alejandromonzon8659
    @alejandromonzon8659 7 років тому +1

    y para reutilizar codigo en otros proyectos, por ejemplo lo de las consultas sql, tendría que en el archivo nuevo, hacer un require a devuelveProductos.php y hacer un extend a dicha clase y sobreescribir el metodo con otra consulta? y después instanciar en la vista la nueva clase y con el nuevo metodo? no se me ocurre otra forma de reutilizar... corrijanme porfavor.

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +1

      Tú mismo te has respondido correctamente a todas tus preguntas. Un saludo!!

    • @alejandromonzon8659
      @alejandromonzon8659 7 років тому

      Gracias profesor, ya se está complicando el curso!! me gusta!! ya quiero terminarmelo para pasar al de JS :D, se le quiere desde Venezuela.

  • @MsLuimenel
    @MsLuimenel 7 років тому +1

    Hola espero y me puedas ayudar a mi me da el siguiente error " Fatal error: call to undefine method mysqli_result::fecth_all() in C:\AppServ\www\EjerciciosPhp\POO\DevuelveProductos.php on line 20

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому

      Sin ver el resto del código del programa es complicado que te pueda ayudar. Parece ser que hay un error de sintaxis anterior que impide que se reconozca la función. Puedes enviar si quieres todo tu código a cursos@pildorasinformaticas.es Recibo muchos mails y tardo en contestar, pero al final siempre contesto. Un saludo!!

  • @dennisquispe6849
    @dennisquispe6849 3 роки тому

    Cuál es el vídeo de constructor

  • @victoriabarragan2892
    @victoriabarragan2892 5 років тому

    Hola! En dado caso que se requiera una conexión a un motor de base de datos diferente (Oracle, SQL Server, Postgres, etc.) que archivos serían lo que habría que modificar? Agradezco de antemano su respuesta. Slds.

    • @robertomelendez1266
      @robertomelendez1266 5 років тому +1

      Mira el siguiente video donde habla de PDO, la otra forma para hacer conexiones con otros gestores BD

  • @isabelantolin8720
    @isabelantolin8720 6 років тому

    hola , me gustaría saber porque me sale este error al poner en carpetas diferentes los archivos por ejemplo yo creo la carpeta conexion y dentro de ella pongo el archivo conexion pero en el minuto que lo pongo en la pagina index con require me aparece en el navegador-------> require(../conexion/Conexion.php): failed to open stream: No such file or directory in C:\xampp\htdocs\ProgramacionOrientadaObjetos(POO)\MostrarTodo\Query.php on line 2, pero si pongo todos los archivos en la misma carpeta no me pasa eso

  • @jorgeperez6994
    @jorgeperez6994 6 років тому

    hola me da este error
    Parse error: syntax error, unexpected '$this' (T_VARIABLE), expecting function (T_FUNCTION) or const (T_CONST) in C:\xampp\htdocs\poo\conexion.php on line 10
    en la linea 10 del archivo conexion.php tengo esto :
    $this->conexion_db=new mysqli(DB_HOST, DE_USUARIO, DB_CONTRA, DB_NOMBRE);
    AYUDAAA

  • @alexiswitt9402
    @alexiswitt9402 7 років тому

    buen dia profesor, tengo una duda cuando aparece esto Fatal error: Call to undefined method mysqli_result::fetch_all() in /var/www/Poo-conexion/DevuelveProducto.php on line 15.
    y mi linea 14 y 15 son esta:
    14) $resultado=$this->conexion_db->query("SELECT * FROM productos");
    15) $productos=$resultado->fetch_all(MYSQLI_ASSOC);
    16) return $productos;

    • @alexiswitt9402
      @alexiswitt9402 7 років тому

      no era un error de codigo sino que me faltaba instalar esto:
      sudo apt-get install php5-mysqlnd
      y luego agregue esto:
      entrar a el archivo phpini() y agrgar esto : ;extension=mysqlnd.so
      y listosi a alguien le pasa lo mismo y es un usuario linux

  • @Gabriel-tv2rk
    @Gabriel-tv2rk 7 років тому

    Hola profe, tengo una duda, ya veo que es mucho mas fácil heredar Productos de Conexion, pero no seria igual recomendable utilizar las clases por separado, y en la clase Productos declarar la variable private $db = new Conexion(); y ahí utilizar esa conexion dentro de Productos? Que es mas optimo y eficiente? a la hora de reutilizacion de codigo, eficiencia etc. También vi que faltaría el $result->free_result(); antes del return de getProductos.

    • @Gabriel-tv2rk
      @Gabriel-tv2rk 7 років тому

      jejeje intente hacerlo con return $db->fetch_assoc() directamente y no funcionaba, si o si hay que retornar desde las clases los vectores que contienen las columnas de la BD, en un FETCH_ALL????

    • @Gabriel-tv2rk
      @Gabriel-tv2rk 7 років тому +1

      van a pensar que estoy loco, jajaja. creo que me respondi a mi mismo, al heredar de Conexion, seria como en el lenguaje smalltalk la clase Object de la cual todos heredan de dicha clase no? asi como una analogia. Por ende si tengo Conexion -> modeloProductos->modeloRemeras y modeloRemeras extends de modeloProductos, tambien va a poder utilizar la variable $db de Conexion?

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +1

      Si la cadena de herencia es la que tú dices, sí. Podrás utilizar la variable. Un saludo!!

  • @minigames204
    @minigames204 5 років тому

    Buenas Profesor :) quiero saber como puedo hacer una consulta preparada de busqueda con los caracteres comodines... busque y busque pero no encuentro referencias

  • @pixelstudios7480
    @pixelstudios7480 5 років тому

    A quienes les de error en la parte de los constructores coloque
    public function __construct()
    {
    $this->conexion_db=new mysqli(DB_HOST, DB_USUARIO, DB_CONTRA , DB_NOMBRE);
    if ($this->conexion_db->connect_errno)
    {
    echo "Fallo al conectar a MYSQLI " . $this->conexion_db->connect_error;
    return;
    }
    $this->conexion_db->set_charset(DB_CHARSET);
    }
    }

  • @expo-jc6lt
    @expo-jc6lt 6 років тому

    Hola el metodo fetch_all no me funciona prob con fetch_array y si funciona pero me repeti demasiadas veces la misma fila de la tabla cuando ejecuta el codigo,y en ningin momento los datos de la tabla estan repetidos

  • @humbertomazariegos3431
    @humbertomazariegos3431 7 років тому

    Profesor, es un gran maestro, he aprendito todo lo que se gracias a usted, tengo un problema, he probado todo lo que esta en mis capacidades, pero la linea.
    $resultado=$this->conexion_db->query("SELECT * FROM PRODUCTOS");
    me saca el error Fatal error: Uncaught Error: Call to a member function query() on null
    gracias.

    • @federicolozano8751
      @federicolozano8751 7 років тому

      Hola. Probable que el problema esté en la línea (parent::__construct();) lleva doble guion bajo. Espero te funcione.

    • @humbertomazariegos3431
      @humbertomazariegos3431 7 років тому

      Gracias Federico Lozano, pero no he logrado resolver este problema.

    • @federicolozano8751
      @federicolozano8751 7 років тому

      Para poder ayudarte pon aquí todo tú código. Saludos

  • @2sagitario1
    @2sagitario1 7 років тому

    Estimado tengo un problema al momento de que mi clase devuelvedatosproductos hereda de la clase conexion ya que cuando creo el metodo get_productos no me trae el constructor de la clase conexion y cuando utilizo el operador parent tampoco me muestra los constructores de la clase padre. Necesito de tu ayuda a ver que pudiera tener mal

  • @diegopichaco9384
    @diegopichaco9384 7 років тому +1

    a mi me da un error al final me devuelve por pantalla los datos del archivo index.php
    Document

    si alguien me puede decir a que se me puede deber?

    • @diegopichaco9384
      @diegopichaco9384 7 років тому +3

      SOLUCIONADO....VERÉIS ESTE CÓDIGO..parent::__construct(); VA CON DOBLE UNDERLINE Y SOLO LE PUSE UNA TAL QUE ASÍ parent::_construct();
      EL DREAMWAVER AYUDA PERO YO ESTABA REALIZÁNDOLO CON SUBLIME TEXT QUE NO TIENE UN ASISTENTE TAN POTENTE PARA PHP

    • @michaelvargas3359
      @michaelvargas3359 6 років тому +1

      Perfecto!

  • @mauriciotorresvblog
    @mauriciotorresvblog 7 років тому

    Buen día profesor, el ejercicio no me quiere funcionar reviso una y otra vez y no encuentro el error; Voy a dejar el código aquí para ver si por favor profe me ayudas :( o algún compañero.
    Esta página no funciona
    localhost no puede procesar esta solicitud en este momento.
    HTTP ERROR 500
    config.php
    ========================================
    Conexion.php
    ====================================================
    DevuelveProductos.php
    =============================================================
    index.php
    Documento sin titulo

  • @tortiman
    @tortiman 8 років тому +1

    Buenas noches, el codigo me da error, no se si será por la versión de php que tengo, que es la 5.3.1. El error me lo da en la funcion fetch_all que no la reconoce, ¿como se resuelve esto?
    Saludos.

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Jose Bedmar Copia y pega por aquí todo tu código para comprobar que efectivamente es un error de tu PHP, ordenador o lo que sea y no un error de sintaxis. Un saludo

  • @jonathandias2272
    @jonathandias2272 8 років тому +1

    Oye quisiera preguntarte una cosa
    Estoy en 2do año de la Lic. en desarrollo de software
    Estoy en la utp que quedo en la posición 70 de mejores universidades
    Pero a mi la verdad me ha llamado mas la atención estudiar en la universad de granada España
    Quisiera tu consejo para prepararme desde ya para obtener mi postgrado en esa universidad
    Es muy duro entrar los extranjeros hay?
    Has escuchado si es demaciado dificil?yo hasta ahora soy disque el mas pro en el salon
    Pero es porque no solo me quedo con lo que me enseña la u sino que busco tutoriales y cursos en UA-cam como los tuyos sin contar que busco en foros y paginas
    Soy estudiante de B trabajo deves en cuando y habeces falto mucho o llego tarde etc
    y me preguntaba si sabras si esa u solo acepta estudiandes de pueras AMuchas gracias desde ahora

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +jonathan dias Hola !! Pues siento no poder ayudarte con esto porque desconozco cómo trabaja la Universidad de Granada. Tampoco conozco a nadie que haya cursado allí. ¿De dónde eres? Un saludo

    • @jonathandias2272
      @jonathandias2272 8 років тому

      +pildorasinformaticas bueno soy de panama pero tranquilo en foros alomejor comentan algo al respecto
      porcierto sabes algo de progracion en android o ios
      talvez si es asi deberias hacer un curso del mismo; yo ya toy investigando en otros canales y eso pero jamas explican igual que tu
      solo dicen has esto luego esto ydespues esto pero jo te explican mucho el porque?

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому +1

      Es mi intención comenzar un curso de Android en breve. Un saludo

  • @ezq2604
    @ezq2604 4 роки тому

    Hola como estas ahora en 2020 es que estoy aca en este video me gustan mucho tus videos excelente....
    me gustaria que me ayudaras a resolver un error que me lanza php con el catch $e->getCode()
    el error se genera cada vez que quiero resetear el ID en sql server, con esto se puede resetear el ID autoincrementable "DBCC CHECKIDENT (PRODUCTOS, RESEED,1)"
    en mi codigo yo coloque que al eliminar una fila con DELETE ejecute tambien el RESET del ID pero me genera error-> 23000 cuando quiero insertar un nuevo registro y tengo que recargar la pagina como 4 veces para que logre insertar el nuevo registro, me puedes dar una idea de como puedo resolver este problema que tengo. Solo me gustaría saber si alguna solución a esto..

  • @wilwerrodriguez1787
    @wilwerrodriguez1787 7 років тому +1

    hola buen dia gracias. tengo una pregunta si usamos los metodos costructores: function __construct() {}
    el codigo funcionaria igual o es cuestion de preferencias.

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому

      El código funcionaría igual. Es más, se debe usar function __construct() para crear los métodos constructores. Desde la reciente aparición de PHP 7, ha quedado oficialmente obsoleto crear un constructor con el mismo nombre de la clase. Un saludo!!

    • @wilwerrodriguez1787
      @wilwerrodriguez1787 7 років тому +1

      gracias por la respuesta muy agradecido.