Foros del Web » Programando para Internet » PHP »

Consulta SQL

Estas en el tema de Consulta SQL en el foro de PHP en Foros del Web. Tengo la consulta SQL, todo muy simple y muy bien. Código PHP: $consulta = "SELECT TOP 10 cCharName,iEK FROM CHARACTER_T WHERE cNation = 'elvine' AND sAdminLevel = '0' ORDER BY iEK DESC" ; $result  =  mssql_query ( $consulta ); while( $row = ...
  #1 (permalink)  
Antiguo 14/04/2006, 12:47
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 6 meses
Puntos: 1
Consulta SQL

Tengo la consulta SQL, todo muy simple y muy bien.

Código PHP:
$consulta="SELECT TOP 10 cCharName,iEK FROM CHARACTER_T WHERE cNation = 'elvine' AND sAdminLevel = '0' ORDER BY iEK DESC";
$result mssql_query($consulta);
while(
$row=mssql_fetch_array($result))
{
echo 
$row[cCharName], $row[iEK];

Vale aquí se me imprime algo asi, una tabla:

cCharName1 iEK1
cCharName2 iEK2
...
...
...
cCharName10 iEK10

>> Entonces me gustaría hacer que esos valores, cCharName1, cCharName2....hasta cCharName10, tuvieran solo la primera letra, y las demás letras se considerasen como '_' es decir, si cCharName1 = Papaolo ---> P_ _ _ _ _ _

Saludos, espero que me puedan ayudar.
  #2 (permalink)  
Antiguo 14/04/2006, 13:22
 
Fecha de Ingreso: junio-2002
Mensajes: 750
Antigüedad: 21 años, 10 meses
Puntos: 22
Si lo quieres hacer directamente mediante SQL puedes usar funciones como:
LEFT(string,number) >> extrae X carácteres de la cadena indicada, comenzando por la izquierda.
CHAR_LENGTH(string) >> devuelve el número de carácteras de una cadena
RPAD(string,length,char) >> añade X carácteres por la derecha de la cadena indicada

Un posible ejemplo sería el siguiente (seguro que hay otras formas de hacerlo, pero aunque no soy experto creo que esta debería funcionar):

Código PHP:
$consulta="
SELECT 
TOP 10 RPAD(LEFT(cCharName,1),CHAR_LENGTH(cCharName) , '_') as name,iEK 
FROM CHARACTER_T 
WHERE cNation = 'elvine' 
AND sAdminLevel = '0' 
ORDER BY iEK DESC"
;

while(
$row=mssql_fetch_array($result))
{
echo 
$row[name], $row[iEK];

  #3 (permalink)  
Antiguo 14/04/2006, 14:16
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 6 meses
Puntos: 1
No da ningún error, pero se queda en blanco, a que se debe? No printa nada por pantalla.

Saludos
  #4 (permalink)  
Antiguo 14/04/2006, 16:29
 
Fecha de Ingreso: junio-2002
Mensajes: 750
Antigüedad: 21 años, 10 meses
Puntos: 22
Vale, el problema es que yo te he indicado funciones para mysql y tu necesitas funciones para mssql de microsoft, creo:

- En lugar de RPAD usa PADR
- En lugar de CHAR_LENGTH usa DATALENGTH

Un sitio donde obtener información sobre mssql:
http://msdn2.microsoft.com/en-us/lib...4(SQL.90).aspx
  #5 (permalink)  
Antiguo 15/04/2006, 05:55
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Qué curiosa consulta, puedo preguntar para qué deseais algo así ?
__________________
"Di no al Internet Explorer" -Proverbio Chino-
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:09.