Foros del Web » Programando para Internet » PHP »

Uso de campos-alias en PHP

Estas en el tema de Uso de campos-alias en PHP en el foro de PHP en Foros del Web. Hola. Si alguien pudiera ayudarme, le agradecería que me respondiese a esta pregunta. Veamos el código primero y luego comento la duda: Código PHP: <?php ...
  #1 (permalink)  
Antiguo 05/06/2008, 08:47
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Uso de campos-alias en PHP

Hola. Si alguien pudiera ayudarme, le agradecería que me respondiese a esta pregunta. Veamos el código primero y luego comento la duda:

Código PHP:
<?php
mysql_select_db
($database_ies$ies);
$query_listados "
    (
    SELECT camp_secretaria_referencia as referencia, camp_secretaria_data as data, camp_secretaria_foto as foto, 
    camp_secretaria_titol as titol, camp_secretaria_text as text, camp_secretaria_paginici as paginici, 
    camp_secretaria_seccio as seccio 
    FROM taula_secretaria 
    WHERE camp_secretaria_paginici ='si'
    )
    UNION 
    (
    SELECT camp_centre_referencia, camp_centre_data, camp_centre_foto, camp_centre_titol, 
    camp_centre_text, camp_centre_paginici, camp_centre_seccio 
    FROM taula_centre 
    WHERE camp_centre_paginici ='si'
    )
    UNION 
    .
    .
    etc hasta 25 tablas en total (consulta probada en MySQL y funciona).
    Devuelve los registros de todas las tablas que cumplen una condición
    y las ordena por fecha descendiente. Asigna alias a los campos.
    .
    .
    ORDER BY data DESC 
    LIMIT 0 , 25
    "
;

$listados mysql_query($query_listados$ies) or die(mysql_error());
$row_listados mysql_fetch_assoc($listados);
$totalRows_listados mysql_num_rows($listados);


$llamada "
    SELECT (
    (SELECT COUNT(*) FROM taula_secretaria WHERE camp_secretaria_paginici ='si')
    + 
    (SELECT COUNT(*) FROM taula_centre WHERE camp_centre_paginici ='si')
    + 
    .
    .
    etc hasta 25 tablas en total. Consulta probada y funciona. Obtiene el número total de
    registros que hay en la consulta anterior, es decir, la almacenada en $query_listados 
    .
    .
    ) 
    AS total
    "
;

$result mysql_query($llamada$ies);
$total_anuncis mysql_result($result,0);

?>
                    <?php
if ($total_anuncis 0) { ?>
                    <?php do { ?>

 <?php
$data 
$row_listados['data'];
setlocale(LC_TIME'ca_ES');
echo 
$fecha=strftime('%d %B %Y',strtotime($data));
?>
<?php 
echo $row_listados[$data]; ?>

<?php 
$seccio 
$row_listados['seccio']

switch (
$seccio) {
    case 
'Secretaria':
                
$ruta_fitxa '03_secretaria/secretaria_fitxa.php?camp_secretaria_referencia=';
                
$ruta_foto '03_secretaria/carpeta_arxius/';
               break;
    case 
'Centre':
                
$ruta_fitxa '02_centre/centre_fitxa.php?camp_centre_referencia=';
               
$ruta_foto '02_centre/carpeta_arxius/';
                break;
    case 
'Biblioteca':
        .
        .
        
Etc para asignar rutas en función del departamento de que se trate
        
.
        .
        }

echo 
'<a href="'$ruta_fitxa $row_listados['referencia'] . '"><img src="' $ruta_foto $row_listados['foto'] . '"/></a>'?>
<p>
<a href="<?php echo $ruta_fitxa $row_listados['referencia']; ?><?php echo $row_listados['titol']; ?>

<?php
$textonoti 
nl2br($row_listados['text']); 
$textonoti str_replace("][",'" target="_blank">',$textonoti);
$textonoti str_replace("[",'<a href="',$textonoti);
$textonoti str_replace("]","</a>",$textonoti);    
?>
<?php 
echo substr($textonoti,1,300); ?>

<a href="<?php echo $ruta_fitxa $row_listados['referencia']; ?><img src="0_comuns/llegir_mes_a.jpg" /a><a href="<?php echo $ruta_fitxa $row_listados['referencia[']; ?>

<a href="<?php echo $ruta_fitxa $row_listados['referencia']; ?>Llegir /a>

<?php } while ($row_listados mysql_fetch_assoc($listados)); ?>
Este código está modificado de otro que acudía a una consulta sencilla y por tanto usaba los nombres de los campos reales de la base de datos. Mi consulta, como veis en el código, utiliza los alias: referencia, data, foto, titol, text, paginici y seccio. Luego, más adelante en el código, me refiero a ellos, asignándoles a variables.

Por tanto, yo he modificado las consultas (y funcionan) y he cambiado los nombres de los campos antiguos por los alias y también he insertado un switch porque según la sección de cada registro, se tiene que ir a buscar dos rutas: una para ir a otra página php y otra para encontrar una foto.

Al hacer estas modificaciones es cuando ha dejado de funcionar. He eliminado todo el formato HTML que había para centrarnos únicamente en lo que he modificado. Por eso puede que haya errores de código HTML, pero en el original está bien.

Os agradecería que echarais un vistazo. Gracias de antemano.

Última edición por fran321; 05/06/2008 a las 08:58
  #2 (permalink)  
Antiguo 05/06/2008, 10:33
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: Uso de campos-alias en PHP

Me puedes pegar un print_r de $row_listados.

Código PHP:
print_r ($row_listados); 
Para revisar este arreglo.
__________________
eft0's stuff! - http://estebanfernandez.net
  #3 (permalink)  
Antiguo 05/06/2008, 15:19
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Uso de campos-alias en PHP

Estoy utilizando Dreamweaver. Al no funcionar el fichero, no sé como utilizar el print_r. Como en cualquier lenguaje, debe haber forma de realizar una trazabilidad de lo que está pasando en el código, pero no sé cómo hacerlo.
  #4 (permalink)  
Antiguo 06/06/2008, 11:51
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Uso de campos-alias en PHP

Antes ejecutaba directamente en el servidor y se ve que por configuración de éste, no se visualizaban errores. Ahora me he instalado el EasyPHP y me muestra este error:

Parse error: parse error, unexpected T_SWITCH in D:\Web IES\index.php on line 506

la línea 506 es donde empieza el switch:

Código PHP:
switch ($seccio) { 

He buscado qué es unexpected T_SWITCH pero no he encontrado nada. También he añadido el:

Código PHP:
print_r ($row_listados); 
pero no muestra nada sobre la variable. Por lo menos sé que la cosa está en el switch.

¿Alguien sabe si la sintaxis del 'switch' está bien? Cogí la sintaxis de la ayuda de PHP y en el ejemplo utilizaba números para cada uno de los 'Case':

Código PHP:
switch ($i) {
    case 
0:
        print 
"i equals 0";
        break;
    case 
1:
        print 
"i equals 1";
        break;
    case 
2:
        print 
"i equals 2";
        break;

Yo tengo que evaluar texto porque así está en la base de datos y por eso lo he puesto así.

Gracias de antemano.

Última edición por fran321; 06/06/2008 a las 11:57
  #5 (permalink)  
Antiguo 06/06/2008, 11:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Uso de campos-alias en PHP

NO es que el switch() este mal... es que tu hiciste algo mal....

unexpected significa... inesperado

mira bien ¿que te hace falta???

Código PHP:
$seccio $row_listados['seccio']
  
// justo aquí va lo que te falta ^
switch ($seccio
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 06/06/2008, 12:15
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Uso de campos-alias en PHP

Primero he asignado un texto que extraigo de la BB.DD. a la variable $seccio, y luego comienzo el switch comparando el contenido de la variable con los distintos 'Case'. No sé lo que me falta......
  #7 (permalink)  
Antiguo 06/06/2008, 12:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Uso de campos-alias en PHP

me doy.... para que te apures!

te falto un punto y coma final .... (deveras)

Código PHP:
$seccio $row_listados['seccio']; // <---- aqui
// justo aquí va lo que te falta ^
switch ($seccio) { // ... 

ya que como bien sabes, es obligatorio el punto y coma final...
como no lo encontraba te decía... T_SWITCH inesperado.... (y si seguias leyendo) diria... se esperaba ',' o ';'

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 06/06/2008, 12:37
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Uso de campos-alias en PHP

Muchas gracias pateketrueke, las pillas al vuelo. Eres un maquinorro...
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 17:51.