Foros del Web » Programando para Internet » PHP »

error con php y msql, urgente

Estas en el tema de error con php y msql, urgente en el foro de PHP en Foros del Web. Hola amigos, tengo un error, al pasar un trozo de código de un fichero a otro, en el fichero donde he cogido el código, como ...
  #1 (permalink)  
Antiguo 11/05/2010, 05:19
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
error con php y msql, urgente

Hola amigos, tengo un error, al pasar un trozo de código de un fichero a otro, en el fichero donde he cogido el código, como es normal funciona correctamente.

Cuando paso el código siguiente, me sale error, el código es el siguiente:

Código PHP:

<?php
$land
=isset($_POST['land'])?(int)$land:0// 'post'
$acsv=array();
$aland=array();
if(
$land>0$aland[]=array('id'=>0,'text'=>TEXT_INFORMATION_TODOS);
$sql="SELECT * from countries WHERE country_visible>0 ORDER BY name_".$g_language_code;
$h=tep_db_query($sql);
while(
$r=tep_db_fetch_array($h)){
    
$acsv[]=$r;
    
$aland[]=array('id'=>$r['countries_id'],'text'=>$r['name_'.$g_language_code]);
}
echo 
tep_draw_form('filtro_tarifas_pais',tep_href_link(FILENAME_SHIPPING),'post'); // post
echo TEXT_INFORMATION_SELECCCIONE;
echo 
tep_draw_pull_down_menu('land'$aland$land>0?$land:$g_country_IP['countries_id'], ''false);
echo 
tep_draw_input_field('''OK''''submit'true);
echo 
'</form>';
?>
y el error que me sale es el siguiente:


1054 - Unknown column 'name_' in 'order clause'

SELECT * from countries WHERE country_visible>0 ORDER BY name_


Me pueden ayudar??
  #2 (permalink)  
Antiguo 11/05/2010, 05:24
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: error con php y msql, urgente

Diría que la variable $g_language_code no está definida.
  #3 (permalink)  
Antiguo 11/05/2010, 05:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: error con php y msql, urgente

No está definida? en el código que te he pasado si lo esta..no?
  #4 (permalink)  
Antiguo 11/05/2010, 05:34
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: error con php y msql, urgente

Antes de la línea dónde se define la query ('SELECT...') yo no la veo por ningún lado.

Entiendo que en la base de datos habrá un campo name_* por cada idioma. Me imagino algo como name_esp, name_eng, etc...

Prueba a instanciar esa variable con 'esp' o 'eng' a ver si te funciona para saber si van por ahí los tiros.
  #5 (permalink)  
Antiguo 11/05/2010, 05:34
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: error con php y msql, urgente

El error te dice que la columna name_ no existe, en la base de datos hay un campo que se llame exactamente "name_"?, no creo, el problema es que la variable que completa el nombre no está definida, como dice jerkan.

Un saludo
  #6 (permalink)  
Antiguo 11/05/2010, 05:41
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: error con php y msql, urgente

Como puedo probar si es esa variable?
  #7 (permalink)  
Antiguo 11/05/2010, 05:45
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: error con php y msql, urgente

No hacen falta muchas comprobaciones, simplemente:

$sql="SELECT * from countries WHERE country_visible>0 ORDER BY name_".$g_language_code;

Ahi dices ORDER BY name_(y al nombre se le añade el valor de g_language_code)

Pero en cambio el servidor mysql te dice:

1054 - Unknown column 'name_' in 'order clause'

unknown 'name_', si la variable g_language_code tuviese algún valor te diria, unknown 'name_+elvalordelavariable'.

Y efectivamente no veo que la definas en ningún sitio.

Un saludo
  #8 (permalink)  
Antiguo 11/05/2010, 05:45
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: error con php y msql, urgente

Cita:
Iniciado por pacorubio77 Ver Mensaje
Como puedo probar si es esa variable?
Antes del SELECT prueba:
Código PHP:
$g_language_code 'esp'
  #9 (permalink)  
Antiguo 11/05/2010, 05:50
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: error con php y msql, urgente

Hola, voy a probarlo, pero lo que quiero es mostrar una tabla, ordenada según el idioma de la pagina web, mi página web tiene tres idiomas, entonces según el idioma , pues asi será la ordenacion...se entiende..verdad?

en la base de datos, dentro de countries, existen tres campos name_es,name_de y name_en, pero ese 'es', 'de' y 'en' no se de donde vienen en el otro fichero que funciona correctamente.
  #10 (permalink)  
Antiguo 11/05/2010, 05:51
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: error con php y msql, urgente

Entonces muéstranos ese fichero, y el include que realizas para que el script recoja esas variables.

Un saludo
  #11 (permalink)  
Antiguo 11/05/2010, 06:18
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: error con php y msql, urgente

me parece que hay otro fichero donde cojo las variables.

Código PHP:
require('includes/application_top.php'); 
ese aplication_top.php en la página que funciona ese no es igual, porque cambia esto:


Código PHP:

if(true){
    require_once
'GeoIP/geoip.inc';
    
$gidat=DIR_FS_CATALOG.'/includes/GeoIP/GeoIP.dat';
    if(
true ||$es_local){
        
$gi geoip_open($gidat,GEOIP_STANDARD);
    }else{
        
geoip_load_shared_mem($gidat);
        
$gi geoip_open($gidat,GEOIP_SHARED_MEMORY);
    }
    
$geoip_country_code=geoip_country_code_by_addr($gi,tep_get_ip_address());
    
geoip_close($gi);
    if(
$geoip_country_code==''$geoip_country_code='DE';
    
//$geoip_country_code='AT'; // ALA PARCHE para pruebas, AQ
    
$sql="SELECT * FROM ".TABLE_COUNTRIES." WHERE countries_iso_code_2='".$geoip_country_code."'";
    
$h=tep_db_query($sql);
    if(
tep_db_num_rows($h)>0){
        
$r=tep_db_fetch_array($h);
        
$g_country_IP=$r;
    }else{
        
$g_country_IP=null;
    }
    
    switch(
$language){
        case 
'english':
            
$g_language_code='en';
            break;
        case 
'espanol':
            
$g_language_code='es';
            break;
        default:
            
$g_language_code='de';
    }
    

PUede ser por esto?
  #12 (permalink)  
Antiguo 11/05/2010, 07:10
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: error con php y msql, urgente

Aquí estamos en lo mismo, no veo donde defines $language, la variable que le pasas al switch.


Un saludo

Etiquetas: msql
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 11:17.