Comunidad de diseño web y desarrollo en internet online

interpretar PHP en un TPL

Citar            
MensajeEscrito el 21 Abr 2009 03:41 pm
Buenas...

Soy completamente novato en el tema del PHP, o mas bien, se leerlo pero "hablarlo". Me he puesto a hacer un proyectito mas o menos facil (vale, no es muy facil que digamos xD). El problema es que, yo creia que se podia usar PHP desde un TPL. Me explico.

Yo he hecho todo el codigo en un archivo PHP normal, he hecho un include a un TPL y en el, he usado variables declaradas en el archivo PHP. El problema es que me salta error y pues, ya no se por donde tirar. Dejo el codigo PHP y HTML, seguro que hay alguna cagada de las gordas XD

Código PHP

Código :

<?php

$link = mysql_connect('localhost', 'usuario', 'contraseña');
if (!$link) {
    die('No se ha podido conectar: ' . mysql_error());
}
$bd = mysql_select_db('guias', $link);
if ( !$bd ) {
   die('No se ha podido conectar a la Base de Datos: ' . mysql_error());
}

$query = "SELECT * FROM guia_fases JOIN guia_juego ON guia_fases.juego = guia_juego.Titulo";
$res = mysql_query($query);

while( $row = mysql_fetch_assoc($res) ) {
   $registros[] = $row;
}

include("templates/MaverickStyle/guias.tpl");
?>


Código HTML

Código :

<TABLE style="font-size: 8pt;text-align: left;">
   <? foreach($registros as $registro): ?>
    <TR>
          <TD><?$registro['titulo']?></TD>
    </TR>
    <? endforeach; ?>
</TABLE>




Aparte del head y toda esa historia.

Seguramente la consulta SQL este mal, lo de los enlaces no se me da muy bien :P El error que salta la página es este:

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\guias\templates\MaverickStyle\guias.tpl on line 11
Que coincide con esta otra linea
<? foreach($registros as $registro): ?>

Agradeceria cualquier ayuda.

Un saludo.

Por Mave

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Abr 2009 04:55 pm
te faltan argumentos para el foreach revisa como es la sintaxis porque ese es error de argumentos del foreach , definitivamente revisa como se crea el foreach y te daras cuenta

http://www.codigolandia.com/index-Ciclo+foreach+PHP-php-57.tc

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 21 Abr 2009 06:36 pm
Ahmm...No veo que es lo que falta. Le he puesto el => pero sigue diciendo el mismo error.

El <? echo no hace falta pues uso el metodo abreviado (aunque en el primer post me lo olvide) <?=$registro['algo'];?>...En la página que me das, no veo nada distinto aparte de eso =\

Por Mave

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Abr 2009 08:07 pm
le falta la llave

Código :

foreach ($archivo as $linea_num => $linea) {
    echo "L&iacute;nea #<b>{$linea_num}</b> : " . htmlspecialchars($linea) . "<br />n";
} 

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 21 Abr 2009 09:54 pm
Ahm...ahm...Estoy construyendo un foreach por partes...por llamarlo asi...los : al final de la primera linea simulan la { y el endforeach cierra el foreach. Si abro llave, tengo que cerrar llave y el endforeach sobraria...

Igualmente he probado poniendo llaves y sigue diciendo lo mismo. Ademas, no creo que se un problema en la construccion del foreach, opino que es mas por la variable $registros que en el TPL no existe, la creo en un while, dentro del archivo PHP...No podria ser que me falta alguna cosa y por eso la variable $registros no la encuentra y por logica, la variable $registro['titulo'] no existe y da el error, porque estoy usando un array vacio. Almenos esa era mi duda, si esta bien expresado para poder usar PHP en el TPL, utilizando cosas de ese PHP..

Por Mave

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Abr 2009 11:31 pm
bueno sigue revisando tu codigo a ver

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 22 Abr 2009 12:42 pm
EN FIN

Si pregunto es porque he revisado el codigo y no se que pasa...

He preguntado a un amigo y ya esta solucionado. Simplemente faltaba declarar la variable y decir antes del while, que era un array porque no encuentra ningun registros. Solo pasaba eso.

En fin, gracias por responder.

Por Mave

2 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.