Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2011, 20:27
davidmov
 
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