Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Urgente novato en funciones php

Estas en el tema de Urgente novato en funciones php en el foro de PHP en Foros del Web. Muy buenas, soy novato en php y estoy viendo las funciones. Tengo dos archivos, uno que llama a la funcion ver_hora($code); y le envio esa ...
  #1 (permalink)  
Antiguo 09/09/2014, 03:35
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 12 años
Puntos: 1
Urgente novato en funciones php

Muy buenas, soy novato en php y estoy viendo las funciones. Tengo dos archivos, uno que llama a la funcion ver_hora($code); y le envio esa variable y el otro archivo contiene la funcion,

Código PHP:
function ver_hora($code){
    global 
$db_conn;
    
$query="select route_hora from premium_routes where hotel_code='$code'";
    
$resul=$db_conn->prepare$query );
    
$horas $resul->fetchALL(PDO::FETCH_ASSOC);
    return 
$horas;
          


el problema es que no se que hacer con el return y como tratarlo en el archivo principal, no se si me explico...

un saludo y gracias!!
  #2 (permalink)  
Antiguo 09/09/2014, 04:35
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 12 años
Puntos: 1
Respuesta: Uergente novato en funciones php

Muy buenas, voy avanzando muy poco a poco.

Cuando llamo a la funcion y lo hago así
Código PHP:
echo ver_hora($code); 
me salia array, por lo que he intentado contar los registros que me saca así
Código PHP:
  $res=ver_hora($code);
        
$n=count($res); 
y $n me sale 0, cuando debería salir uno.

En la funcion:
Código PHP:
function ver_hora($code){
    global 
$db_conn;
    
$query="select route_hora from premium_routes where hotel_code='$code'";
    
$resul=$db_conn->prepare$query );
    
$n=count($resul);
    echo 
"n vale:".$n;
    
$horas $resul->fetchALL(PDO::FETCH_ASSOC);
    
    return 
$horas;

cuando visualizo $n me da 1, y no soy capaz de sacar los resultados dela consulta en la llamada de la funcion...
  #3 (permalink)  
Antiguo 09/09/2014, 06:43
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Uergente novato en funciones php

Si te devuelve un array puedes utilizar print_r ($tu_array); para ver que contiene.
  #4 (permalink)  
Antiguo 09/09/2014, 06:59
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Uergente novato en funciones php

Prueba con

return $horas['route_hora'];
return $horas[0];
return $horas[0]['route_hora'];
return $horas[0][0];

No me queda claro cuál es la estructura del array $horas (para eso xerifandtomas te sugiere que uses la función print_r), pero alguno de esos return te debería entregar el valor correcto.

Saludos
  #5 (permalink)  
Antiguo 09/09/2014, 09:18
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 12 años
Puntos: 1
Respuesta: Uergente novato en funciones php

print_r() me devuelve Array(), es es que está vacio?

Donde debo llamar a print_r, en la funcion o en la llamada a la funcion?

Sería print_r($horas)? porque así no me sale nada
  #6 (permalink)  
Antiguo 09/09/2014, 09:27
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 12 años
Puntos: 1
Respuesta: Uergente novato en funciones php

Otra cosa que me he dado cuenta es que si en el phpmyadmin hago la consulta:
Código PHP:
Ver original
  1. "select route_hora from premium_routes where hotel_code='$code'"
me salen 3 registrios y al hacer el count me dice que sale 1.

La cosa es que esta aplicación es de otra persona y la manera de programar es distinta para mi, pues no usa funciones de mysql_query para las consultas y eso...

estoy más perdio...

De todas maneras alguien me puede decir si esa funcion esta bien hecha?

Última edición por baravaro; 09/09/2014 a las 09:40
  #7 (permalink)  
Antiguo 09/09/2014, 12:34
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Uergente novato en funciones php

La otra persona estaba usando PDO, que agrega una capa de abstracción a mysqli (hace más cómodo y seguro el acceso a datos, no sé si afecta la eficiencia. En general se recomienda usar PDO en vez de mysqli a secas).

Lo que yo hago es esto:

Código PHP:
Ver original
  1. $resul=$db_conn->prepare( $query );
  2.     $resul->execute();
  3.     $n=count($resul);
  4.     echo "n vale:".$n;
  5.     $horas = $resul->fetchALL(PDO::FETCH_ASSOC);

O sea $resul en la primera línea es un objeto con una consulta preparada.
Y en la segunda línea ejecutas la consulta y el objeto se carga con el resultado de la consulta.
Yo creo que te falta execute();
  #8 (permalink)  
Antiguo 10/09/2014, 02:22
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 12 años
Puntos: 1
Respuesta: Urgente novato en funciones php

rodrigo_temuco, cierto y muchas gracias, me faltaba el execute...
Nunca había usado esas funciones y estaba un poco liado, siempre cuando he estudiado y en internet veo mysql_query y funciones del estilo...

Suele usarse mas PDO?, en cualquier caso dejo el tema como solucionado!
  #9 (permalink)  
Antiguo 10/09/2014, 02:25
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 12 años
Puntos: 1
Respuesta: Uergente novato en funciones php

Otra consultita aunque este el tema solucionado...

No tiene nada uqe ver con lo anterior.

La persona que programaba tiene todos los modulos separados y por ejemplo una pantalla de la app en cada archivo, y al principio del documento veo mucho eso

Código PHP:
<?php

$premium_hotel 
$get_xtract_hdata;
$xtract_premium_tickets extract_premium_tickets($premium_hotel['hotel_code'], 'full');

?>
Que hace realmente? extraer dichas tablas de la bd y guardarlas en variables como¿ no hay ninguna conexion a la bd enel documento, sin embargo accede a la bd, quizas es una funcion creada que se encarga de acceder a la bd?
  #10 (permalink)  
Antiguo 10/09/2014, 07:44
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Urgente novato en funciones php

En este caso tiene que haber al menos un módulo que se carga al principio de cualquier llamada.

Busca al inicio cualquier módulo algún código parecido a estos:

require "path/archivo.php";
include "path/archivo.php";
require_once "path/archivo.php";
include_once "path/archivo.php";

require e include son sentencias que leen y cargan otro archivo php en ese punto. Puede haber varios.

En esos archivos que se cargan silenciosamente con deben estar las conexiones, valores por defecto, funciones globales, etc., etc..., o sea toda la programación subyacente que hace que los demás módulos funcionen coordinados.

Entonces vas a el/los "archivoxxx.php" que te aparezcan ahí, y busca dos cosas:

- con qué se está llenando la variable $get_xtract_hdata (probalemente con información de la base de datos) y
- qué hace la función extract_premium_tickets().

Ojalá que te sirva.
  #11 (permalink)  
Antiguo 10/09/2014, 09:18
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 12 años
Puntos: 1
Respuesta: Urgente novato en funciones php

al principio de los modulos solo aprece eso
Código PHP:
<?php 

$premium_hotel 
$get_xtract_hdata
$xtract_premium_tickets extract_premium_tickets($premium_hotel['hotel_code'], 'full'); 

?>
y al usarlos evidentemente no saca nada de las consultas, debido a que no conectara con la bd...

los require los veo en otros modulos que aparentemente no tienen nada que ver con el que estoy...


Gracias por todo, me estás ayudando en esto, algo que desconocia por completo!

Sabes que, ocurre? que la aplicación es grande de cojones y muy avanzada y tiene 2000 y pico entre modulor de programa y carpetas y follones, y no me estoy enterando de un carajo porque aunque se php, hace poco que termine mis estudios y no tengo tanta experiencia en algo tan grande, y porque lo que estoy viendo aqui no lo he visto cuando estudié... entonces estoy más liao que cualquier cosa... Tardo una vida en encontrar algo referente a otro modulo...

Siento si son cosas demasiado evidentes o tontas, pero es que ya estoy mareado con abrir archivo aqui abrir archivo alla

Última edición por baravaro; 10/09/2014 a las 09:29
  #12 (permalink)  
Antiguo 10/09/2014, 18:11
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Urgente novato en funciones php

Probablemente todas las llamadas parten en index.php, busca ese archivo y síguele la pista.
  #13 (permalink)  
Antiguo 11/09/2014, 02:16
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 12 años
Puntos: 1
Respuesta: Urgente novato en funciones php

hay alguna manera de obtener los datos de la bd sin usar esa forma? por ejemplo, me funcionaria un mysql conect al principio de cada documento?
porque lo he intentado y me sale esto:

Access denied for user 'root'@'localhost' (using password: YES)
  #14 (permalink)  
Antiguo 11/09/2014, 05:48
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Urgente novato en funciones php

Tienes que conocer la información de acceso a la base de datos: nombre de la base de datos, usuario y password.
Te sugiero usar algún software que busque archivos que contengan cierto texto, y que encuentre todos los archivos del proyecto que tengan textos como "password" , "mysql", "mysqli", "PDO", y ahí los lees y pillas los datos de acceso y quizás también las funciones.

Etiquetas: funciones, select, variable
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 14:06.