Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta de db a traves de variables

Estas en el tema de Consulta de db a traves de variables en el foro de Mysql en Foros del Web. Hola. Tengo un sitio que quiero desarrollar con una base de datos simple que me permita conmutar el lenguaje del mismo a traves de variables ...
  #1 (permalink)  
Antiguo 23/05/2011, 20:27
 
Fecha de Ingreso: octubre-2010
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Consulta de db a traves de variables

Hola.

Tengo un sitio que quiero desarrollar con una base de datos simple que me permita conmutar el lenguaje del mismo a traves de variables de url.

Muy sencillo de hecho, lo que pasa es que me gustaría no tener que repetir código lo cual me parece horrible desde el punto de vista de la limpieza en el diseño pero en vista de que no me ha dado de ninguna manera, tuve que hacerlo del siguiente modo:

Primero la conexión a la db

Código PHP:
$hostname_acceso "localhost";
$database_acceso "mydatabase";
$username_acceso "mylogin";
$password_acceso "mypasswd";
$acceso mysql_pconnect($hostname_acceso$username_acceso$password_acceso) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_set_charset('utf8',$acceso);
mysql_select_db($database_acceso$acceso); 
Segundo la consulta para cada imagen o elemento dinámico de la página:

Código PHP:
<?php 
        $sql 
"SELECT * FROM elementos_index WHERE idioma = '" $lenguaje "' AND nombre = 'logo_ppal'";
        
$rcset mysql_query($sql$acceso) or die(mysql_error());
        
$row mysql_fetch_assoc($rcset);        
        echo 
$row['link'?>" target="<?php echo $row['destino'?>"><img src="<?php echo $row['origen'?>" alt="<?php echo $row['alt'?>
Y esto es lo que no quiero tener que estar repitiendo. Hice una función de PHP con parámetros como el filtro y el campo a imprimir pero me daba error:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/misitio/public_html/index.php on line 22

Código PHP:
function cmp_dina($cmp,$filtro){
        
$sql "SELECT * FROM elementos_index WHERE idioma = '$lenguaje' AND nombre = '$filtro'";
        
$rcset mysql_query($sql$acceso) or die(mysql_error());
        
$row mysql_fetch_assoc($rcset);
        return 
$row[$cmp];
}
echo 
cmp_dina('alt','logo_ppal'); 
También intenté crear un procedimiento almacenado o función mysql para realizar la misma tarea y llamar solamente a este con algo así:

Código SQL:
Ver original
  1. SELECT cmp_dina('alt','logo_ppal')

Pero me daba el error not database selected.

Como verán ya exploré varias alternativas, seguramente habrán mejores métodos de hacer todo esto pero no los conozco o no los estoy haciendo bien.

Agradecería mucho cualquier guía la respecto.

Gracias de antemano
  #2 (permalink)  
Antiguo 24/05/2011, 10:55
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Consulta de db a traves de variables

Saludos!

Es por que se te pierde la conexión con la base de datos, debes declarar $acceso como una variable global o si no pasarla por parámetro a tu función.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 24/05/2011, 20:03
 
Fecha de Ingreso: octubre-2010
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Consulta de db a traves de variables

Hola Nano_

Claro... declarando global $acceso se pudo sin problemas.

Mil gracias... y que mejor que la ayuda provino de un compatriota.

Etiquetas: function, php
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 07:13.