Página 1 de 2

Página personalizada con consulta SQL 2

Publicado: 30 Mar 2012, 19:54
por Omega100
Estoy leyendo el tema (http://www.phpbb-es.com/foro/soporte-mo ... ml#p205173) y es practicamente lo que yo intento hacer. Me encuentro en su situacion de que se poco y hago lo que puedo.
Vereis, de html tengo:

Código: Seleccionar todo

<!-- INCLUDE overall_header.html -->

    <h2>Listas de Animes en Animeien</h2>

    <div class="panel">
       <div class="inner"><span class="corners-top"><span></span></span>

			LO PRIMERO: {anime.DATO_1} , Y LO SEGUNDO: {anime.DATO_2} .

       <span class="corners-bottom"><span></span></span></div>
    </div>

    <!-- INCLUDE overall_footer.html -->
y de PHP tengo:

Código: Seleccionar todo

<?php
	define('IN_PHPBB', true);
	$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
	$phpEx = substr(strrchr(__FILE__, '.'), 1);
	include($phpbb_root_path . 'common.' . $phpEx);

	// Start session management
	$user->session_begin();
	$auth->acl($user->data);
	$user->setup('viewtopic'); 
	if ($user->data['user_id'] == ANONYMOUS)
	{
		login_box('', $user->lang['LOGIN']);
	} 
	
	page_header('Lista de Animes');
	
	$consultanombre="SELECT nombre FROM anime"; 
	$resultadonombre=mysql_query($consultanombre); 
	$num_resultadosnombre=mysql_num_rows($resultadonombre);
	echo $resultadonombre;

	for ($y = 0; $y < $num_resultadosnombre; $y++)
{
	$template->assign_block_vars('anime', array(
		'DATO1' => $resultadonombre["dato1"],
		'DATO2' => $num_resultadosnombre["dato2"],
	));
}

	$template->set_filenames(array(
		'body' => 'Animes.html',
	));

	make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
	page_footer();
	?>
El cual me devuelve este error:
[phpBB Debug] PHP Warning: in file [ROOT]/Animes.php on line 17: mysql_num_rows() expects parameter 1 to be resource, boolean given
En la base de datos tengo:

Código: Seleccionar todo

+----------+--------------------+------------------+---------------------+
| ID_SERIE | NOMBRE             | FOTO             | URL                 |
+----------+--------------------+------------------+---------------------+
|        5 | Black Root Shooter | blackrootshooter | blackrootshooterURL |
|        6 | Elfen Lied         | elfenlied        | elfenliedURL        |
+----------+--------------------+------------------+---------------------+
Perdón si se ve algo mal, es copiado de símbolos de sistema jeje


Solo intento representar algo pues cuando tenga algo ya me comeré la cabeza para ponerlo como me guste, pero no consigo ni eso. En ese ejemplo intento representar el primer nombre, y ver la variable pero es que estoy un poco desorientado.

http://www.animeien.com/Animes.php

Ayuda porfavor =D

Re: Página personalizada con consulta SQL 2

Publicado: 31 Mar 2012, 01:22
por Makoto

Código: Seleccionar todo

echo $resultadonombre;
creo que no debe ir adelante echo
para que poner el enlace a la pagina si pide identificacion

Re: Página personalizada con consulta SQL 2

Publicado: 31 Mar 2012, 09:46
por Omega100
Bueno en teoría debe representarlo por el template así que esa linea no debería tener mucho sentido ahí.
Puse la pagina por que no me di cuenta de lo de la identificación, os borro eso y ya se lo pondré cuando resuelva el problema así podréis verlo, eh de decir que en la web me tira 3 errores y en el local solo uno, algo curioso, pero igualmente no me funciona.

Re: Página personalizada con consulta SQL 2

Publicado: 31 Mar 2012, 10:41
por Omega100
Siento el doble post.

Me he dado cuenta de que tenia algo mal:

Código: Seleccionar todo

	$template->assign_block_vars('anime', array(
		'DATO_1' => $resultadonombre["dato1"],
		'DATO_2' => $num_resultadosnombre["dato2"],
	));
Eso debería ser así...
Aun así no me visualiza nada.

Re: Página personalizada con consulta SQL 2

Publicado: 02 Abr 2012, 03:27
por Alorse
Y donde esta la conexión a la base de datos?
Ya que no estas usando los comandos SQL de phpBB, por lo tanto debes tener una conexión a la base de datos y usar los prefijos correctos de phpBB, que son de la forma $db->sql_query($sql);

Re: Página personalizada con consulta SQL 2

Publicado: 02 Abr 2012, 09:49
por Omega100
la base de datos es la misma que la de phpbb3 solo he creado una tabla mas.
Si es la misma también tengo que hacer otra conexión??
He de usar entones prefijos de phpbb3 imagino que serán diferentes, ¿cuales? :roll:

Es decir, donde tengo:
$resultadonombre=mysql_query($consultanombre);

Tengo que poner:
$resultadonombre=sql_query($consultanombre);

quitar los my de las funciones? me quede un poco liado.

Gracias de antemanos =)

Re: Página personalizada con consulta SQL 2

Publicado: 02 Abr 2012, 17:07
por Alorse
Es algo más complejo que eso, si te fijas las tablas de phpBB todas tienen un prefijo que por lo general es [b]phpbb_[/b]nombre_tabla, puedes verificar tu prefijo entrando a la base de datos, así que ese mismo prefijo debes ponérselo a la nueva tabla que has creado.
Luego de ello debes definir la nueva tabla en el archivo includes/constants.php, si detallas el archivos, sabrás donde declararla.

Y la consulta ya quedaría así:

Código: Seleccionar todo

	$consultanombre="SELECT nombre FROM " . ANIME_TABLE; 
	$resultadonombre = $db->sql_query($consultanombre); 

Re: Página personalizada con consulta SQL 2

Publicado: 02 Abr 2012, 22:24
por Omega100
okey, mas o menos entendí, voy a ponerme a trabajar en ello, os comento próximamente las novedades a ver si hay suerte =)

Gracias!!

Re: Página personalizada con consulta SQL 2

Publicado: 03 Abr 2012, 12:44
por Omega100
Siento repetir porst, pero ya no me deja editar el anterior.

He borrado la otra tabla, y he creado la nueva tabla con el prefijo adecuado ya que el resto también lo tienen: phpbb_

Ahora voy al include/constans.php y debajo del comentario de : //Table names

agrego: $consultanombre="SELECT nombre FROM " . ANIME_TABLE;

mi php de la pagina personalizada es:

Código: Seleccionar todo

	$consultanombre="SELECT nombre FROM " . ANIME_TABLE; 
	$resultadonombre = sql_query($consultanombre); 
	$num_resultadosnombre = sql_num_rows($resultadonombre);
	
	for ($y = 0; $y < $num_resultadossid; $y++)
	{
	$template->assign_vars(array(
		'DATO_1' => $resultadonombre["dato1"],
		'DATO_2' => $num_resultadosnombre["dato2"],
	));
	}
pero debo de estar definiendo mal en el include/constans.php pues cuando agrego esa linea, la pagina deja de mostrarse, y se queda entera blanca.

¿como debo definiría si no es así?

Re: Página personalizada con consulta SQL 2

Publicado: 03 Abr 2012, 17:14
por Alorse
Discúlpame pero es falta de perspicacia tuya si ves como se define cualquiera de las otras tablas, la hubieras definido bien.
Después de // Table names agrega:

Código: Seleccionar todo

define('ANIME_TABLE',			$table_prefix . 'anime');
Y los llamados a la base de datos siguen estando malos, son lo de forma $db->sql_query($sql); y no sql_query($sql); como tú los tienes.
De igual manera en en sitio oficial de phpBB hay documentación sobre como hacer consultas SQL.

Re: Página personalizada con consulta SQL 2

Publicado: 03 Abr 2012, 19:09
por Omega100
Disculpa, pero lo hago así desde el principio, al escribir el post copie lo que quería copiar debajo. Uso esto para definirlo en el constants.

Código: Seleccionar todo

define('ANIME_TABLE',			$table_prefix . 'anime');
Mirando lo que as puesto con lo que ponía eh descubierto que ponía en los dos lado mayúsculas, al quitar mayúsculas ya carga la pagina al menos.
Funciona mucho mejor, pero sigue dando problema, pues el prefijo no parece ponerlo solo.

Se puede ver en: http://www.animeien.com/Animes.php

Constans.php -> // Table names
define('ANIMES_TABLE', $table_prefix . 'animes');


Php:

Código: Seleccionar todo

	
	$consultanombre="SELECT nombre FROM " . _ANIME_TABLE; 
	$resultadonombre = $db->sql_query($consultanombre); 
	$num_resultadosnombre = $db->sql_num_rows($resultadonombre);
	
	for ($y = 0; $y < $num_resultadossid; $y++)
	{
	$template->assign_vars(array(
		'DATO_1' => $resultadonombre["dato1"],
		'DATO_2' => $num_resultadosnombre["dato2"],
	));
	}

	$template->set_filenames(array(
		'body' => 'Animes.html',
	));
La tabla se llama: phpbb_ANIMES
debería llamarse: phpbb_ANIMES_TABLE?

Gracias.

Re: Página personalizada con consulta SQL 2

Publicado: 03 Abr 2012, 19:57
por Alorse
Estas llamado mal la tabla, debe ser así $consultanombre = "SELECT nombre FROM " . ANIME_TABLE; sin el
_ que pones la principio [b]_[/b]ANIME_TABLE

Re: Página personalizada con consulta SQL 2

Publicado: 03 Abr 2012, 20:25
por Omega100
Quitado y sigue igual, no adjunta bien el prefijo.

Código: Seleccionar todo

SQL ERROR [ mysqli ]

Table 'db357452799.ANIME_TABLE' doesn't exist [1146]

SQL

SELECT nombre FROM ANIME_TABLE

BACKTRACE

FILE: [ROOT]/includes/db/mysqli.php
LINE: 182
CALL: dbal->sql_error()

FILE: [ROOT]/Animes.php
LINE: 17
CALL: dbal_mysqli->sql_query()
la tabla se llama phpbb_ANIMES
lo de tablet es cosa del phpbb cierto? lo digo por que el resto de tablas tampoco estan terminadas en _tablet, todas son phpbb_nombre

Re: Página personalizada con consulta SQL 2

Publicado: 03 Abr 2012, 20:45
por Alorse
Entonces no definiste bien la tabla en el archivo constants o la tabla no se llama así (phpbb_anime).

Intenta definiarla en el mismo archivo Anime.php haber que pasa.

Re: Página personalizada con consulta SQL 2

Publicado: 03 Abr 2012, 21:10
por Omega100
Bien, lo quito de Constants y lo pongo en el php de animes, y me sale justamente lo mismo.
Este es ahora mi php:

Código: Seleccionar todo

	define('ANIMES_TABLE',			    $table_prefix . 'animes');
	$consultanombre="SELECT nombre FROM " . ANIME_TABLE; 
	$resultadonombre = $db->sql_query($consultanombre); 
	$num_resultadosnombre = $db->sql_num_rows($resultadonombre);
	
	for ($y = 0; $y < $num_resultadossid; $y++)
	{
	$template->assign_vars(array(
		'DATO_1' => $resultadonombre["dato1"],
		'DATO_2' => $num_resultadosnombre["dato2"],
	));
	}
y aquí mi base de datos por si algo esta mal:
Imagen