elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Mostrar banderas según codigo de pais hubicado en una BD
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar banderas según codigo de pais hubicado en una BD  (Leído 2,782 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Mostrar banderas según codigo de pais hubicado en una BD
« en: 29 Abril 2012, 01:31 am »

Hola a todos, tal como lo dice el título tengo el siguiente problema:
tengo una BD (mssql) en donde en un campo se encuentra un número, este número representa un país, me gustaría que se mostrara una banderita en la web según el código obtenido de la BD, la estructura de la BD es la siguiente:

BD:MuOnline

Tabla:MEMB_INFO

campo:country



Quiero implementar un PHP que muestre un ranking (el nº 1 de un juego).
Funciona casi todo perfecto, el único problema que encontré es al momento de querer mostrar las banderas, según el país en donde reside el personaje Nº1, este me muestra siempre la 1era bandera (1.png).

para entenderlo de manera visual pueden visitar la página (en el mismo index, abajo muestra el TOP 1):
www.mu-caos.cl

El código es el siguiente:
Código
  1. <table border=0 align=left width="476" height="234" cellpadding=0 cellspacing=0  background="template/<?=$core['config']['template'] ?>/images/Top1.png">
  2. <tr>
  3. <td>
  4. <b>
  5.  <div align="center">
  6.    <blockquote>
  7.      <p><font color="#FFFFFF" size=3 face="arial,verdana" align="right" >
  8. <br>
  9. <br>
  10. <br>
  11. <br>
  12. <br>
  13.        <?
  14.  
  15. function flag($country){
  16. $flags_array=array(
  17.  
  18. 1=>"1",2=>"2",3=>"3",4=>"4",5=>"5",6=>"6",7=>"7",8=>"8",9=>"9",10=>"10",11=>"11",12=>"12",13=>"13",14=>"14",15=>"15",16=>"16",17=>"17",18=>"18",19=>"19",20=>"20",21=>"21",22=>"22",23=>"23",24=>"24",25=>"25",26=>"26",27=>"27",28=>"28",29=>"29",30=>"30",31=>"31",32=>"32",33=>"33",34=>"34",35=>"35",36=>"36",37=>"37",38=>"38",39=>"39",40=>"40",41=>"41",42=>"42",43=>"43",44=>"44",45=>"45",46=>"46",47=>"47",48=>"48",49=>"49",50=>"50",51=>"51",52=>"52",53=>"53",54=>"54",55=>"55",56=>"56",57=>"57",58=>"58",59=>"59",60=>"60",61=>"61",62=>"62",63=>"63",64=>"64",65=>"65",66=>"66",67=>"67",68=>"68",69=>"69",70=>"70",71=>"71",72=>"72",73=>"73",74=>"74",75=>"75",76=>"76",77=>"77",78=>"78",79=>"79",80=>"80",81=>"81",82=>"82",83=>"83",84=>"84",85=>"85",86=>"86",87=>"87",88=>"88",89=>"89",90=>"90",91=>"91",92=>"92",93=>"93",94=>"94",95=>"95",96=>"96",97=>"97",98=>"98",99=>"99",100=>"100",101=>"101",102=>"102",103=>"103",104=>"104",105=>"105",106=>"106",107=>"107",108=>"108",109=>"109",110=>"110",111=>"111",112=>"112",113=>"113",114=>"114",115=>"115",116=>"116",117=>"117",118=>"118",119=>"119",120=>"120",121=>"121",122=>"122",123=>"123",124=>"124",125=>"125",126=>"126",127=>"127",128=>"128",129=>"129",130=>"130",131=>"131",132=>"132",133=>"133",134=>"134",135=>"135",136=>"136",137=>"137",138=>"138",139=>"139",140=>"140",141=>"141",142=>"142",143=>"143",144=>"144",145=>"145",146=>"146",147=>"147",148=>"148",149=>"149",150=>"150",151=>"151",152=>"152",153=>"153",154=>"154",155=>"155",156=>"156",157=>"157",158=>"158",159=>"159",160=>"160",161=>"161",162=>"162",163=>"163",164=>"164",165=>"165",166=>"166",167=>"167",168=>"168",169=>"169",170=>"170",171=>"171",172=>"172",173=>"173",174=>"174",175=>"175",176=>"176",177=>"177",178=>"178",179=>"179",180=>"180",181=>"181",182=>"182",183=>"183",184=>"184",185=>"185",186=>"186",187=>"187",188=>"188",189=>"189",190=>"190",191=>"191",192=>"192",193=>"193",194=>"194",195=>"195",196=>"196",197=>"197",198=>"198",199=>"199",200=>"200",201=>"201",202=>"202",203=>"203",204=>"204",205=>"205",206=>"206",207=>"207",208=>"208",209=>"209",210=>"210",211=>"211");
  19.  
  20. $img= isset($flags_array[$country]) ? $flags_array[$country] : "2";
  21.  
  22. return "<img src=template/DarkBrown/images/banderas/{$img}.gif  width='25' height='15' >";
  23. }
  24.  
  25.  
  26.  
  27.  $Top = mssql_query("select top 1 name from MuOnline.dbo.character where ctlcode<32 order by Grand_Resets desc");
  28.  for($i;$i<mssql_num_rows($Top);$i++) {
  29.  $MuTop = mssql_fetch_row($Top);
  30.  
  31.  $country = mssql_query("Select memb___id,country from  MEMB_INFO where memb___id='".$MuTop[0]."'");
  32.  $country->fields[1] = flag($country->fields[1]);
  33. echo '
  34.  <u>Personaje</u>: &nbsp <font color="#FF0000"><strong>'.$MuTop[0].'</strong></font> &nbsp <font color="#FFFFFF"><u>Pais</u>: '.$country->fields[1].'
  35. '; }
  36. ?>
  37.        <br/>
  38.      </font></p>
  39.    </blockquote>
  40.  </div></td>
  41. </tr>
  42. </table>

Si alguien me explicara en que estoy fallando se lo agradecería mucho, tengo nociones muy básicas de PHP, por eso acudo a ustedes. Muchas Gracias



En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Mostrar banderas según codigo de pais hubicado en una BD
« Respuesta #1 en: 29 Abril 2012, 02:57 am »

sin que lo tomes a mal D: pero quien usa mssql? D:

bueno aqui unas cositas primero usa

Código:
mssql_get_last_message()

para ver si es un error en la llamada a la DB (sospecho esto porque tienes
Código:
mssql_query("select top 1 name from MuOnline.dbo.character where ctlcode<32 order by Grand_Resets desc")

no se si mssql acepte espacios en los nombres de las tablas, en este caso usarías comillas para encerrar "top 1 name"

por otro lado para

Código:
flags_array=array( 
 
1=>"1",2=>"2",3=>"3",4=>"4",5=>"5", .............. ,211=>"211");
 
$img= isset($flags_array[$country]) ? $flags_array[$country] : "2";
 
return "<img src=template/DarkBrown/images/banderas/{$img}.gif  width='25' height='15' >";
}


joder XD no tenias que escribirte un array de 211 indices para hacer de un numero un string, puedes pasarlo como numero ya que php lo interpretará como string de ser necesario,

si lo necesitas es para saber si está dentro del rango de números bastaría con un

Código:
if($country>=1 && $country<=211){ //algo }

o si quieres el array por x razon

Código:
$a;
for($i=1;$i<=211;$i++){
    $a[$i]="$i";
}


en {$img} no necesitas las llaves, con "comillas dobles" las variables son tomadas por su valor (mas no en 'comillas simples'),( en el for procura siempre inicializar la variable a 0)

chequea esos detallitos, principalmente el error, si sigue presentando el mismo error y no es la llamada a mssql avisa :P


« Última modificación: 29 Abril 2012, 03:50 am por engelx » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Mostrar banderas según codigo de pais hubicado en una BD
« Respuesta #2 en: 29 Abril 2012, 18:37 pm »

engelx, MSSQL no creo que acepte espacios en los nombres de la tabla, pero en este caso, quiere obtener solo el primer registro (seria el LIMIT 1 en MySQL)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines