Página 1 de 2

Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 15:46
por micasamitelefono
antes de nada decir que no se si este es el mejor lugar para esta cuestión, si no lo es, lo siento y por favor que algún moderador lo mueva al lugar adecuado

bueno pues ahí va.

quiero hacer una página personalizada que muestre ciertos datos que debo sacar de una consulta a una tabla de otra DB (las dos en el mismo server)

la página personalizaa, la tengo, la consulta y resultados tambien, lo que no se hacer es sacarlo por pantalla, me podeis orientar un poco, por favor?

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 16:06
por Makoto
micasamitelefono escribió:la página personalizaa, la tengo, la consulta y resultados tambien
¡?¡? entonces cual es tu duda?

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 16:52
por micasamitelefono
micasamitelefono escribió:lo que no se hacer es sacarlo por pantalla


pues eso, imprimir esos resultados en mi página personalizada

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 17:03
por Alorse
Debes pasar los resultados a variables del template...
Ejemplo:
Tienes una variable encargada de mostrar los resultados, por ejemplo $row, y para mostrar los resultado lo haces de la siguiente manera $row['dato1'], $row['dato2'], $row['dato3'], etc...
Entonces pones el siguiente código php luego de la consulta:

Código: Seleccionar todo

$template->assign_vars(array(
    'DATO_1' => $row['dato1'],
    'DATO_2' => $row['dato2'],
    'DATO_3' => $row['dato3'],
));
Y ya en el archivo .html de la pagina personalizada, llamas las variables de la siguiente manera:

Código: Seleccionar todo

Primero se va a mostrar el {DATO_1} luego el {DATO_2} y por último el {DATO_3}.
Espero haberme hecho entender.

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 17:07
por micasamitelefono
debo deciros que no tengo demasiada idea de mySQL, bueno del resto tampoco a decir verdad, pero me he hecho un código que funciona en PHP perfectamente, os lo voy a poner

Código: Seleccionar todo

<?
$consultasid="SELECT sid FROM oo_jos_sobipro_field_option_selected WHERE optValue = 'Essilor'";
$resultadosid=mysql_query($consultasid);
$num_resultadossid=mysql_num_rows($resultadosid);


echo "numero de filas ".$num_resultadossid;
	
	for ($y=0;$y<$num_resultadossid;$y++)
		{
			$filassid=mysql_fetch_array($resultadosid);
			echo "<br />";	
			echo "esta es la sid: ".$filassid["sid"];


$consultafid="SELECT baseData FROM oo_jos_sobipro_field_data WHERE sid = '".$filassid["sid"]."' AND fid = '51'";
$resultadofid=mysql_query($consultafid);
$filasfid=mysql_fetch_array($resultadofid);
echo ",  y este el nombre del progresivo ".$filasfid["baseData"]; 
echo "<br /><a target=\"_blank\" href=\"http://www.opticos-optometristas.com/index.php?option=com_sobipro&pid=65&sid=".$filassid["sid"]."&Itemid=196\" ><img src=\"http://www.opticos-optometristas.com/images/sobipro/entries/".$filassid["sid"]."/img_1.jpg\" ></a>";

}

?>
no he sabido hacer esto de mejor manera, pero me funciona y me vale

como podeis ver, además hay un loop porque se mostrarán varios resultados de una misma consulta, y además veis que en esta consulta salen resultados para una marca, que es Essilor, pero tendré al menos 5 marcas mas

como puedo traducirlo para meterlo en un página personalizada?

gracias de antemano

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 17:11
por Alorse
Creí que ya tenias hecha la pagina personalizada, primero créala y luego mete ese código en el archivo php de la pagina personalizada, nos lo muestras haber como te queda, para decirte como lo debes organizar.
Otra cosa que veo hace falta es que en ese código que nos pones, no veo la conexión a la base de datos, no sé si lo omitiste o que.

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 17:18
por Makoto

Código: Seleccionar todo

$template->assign_vars(array(
			'INFO'					=> $info,
			'INFO_2'	=> sprintf($user->lang['INFO_2'], $user_row['username']))
		);
	
		$template->set_filenames(array(
			'body' => 'mipagina.html')
		);
debe ser algo asi tu php

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 17:19
por micasamitelefono
perdón , sólo he puesto el código que primeramente diseñé para mostrar en PHP, el código de la página personalizada es este

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();

	page_header('Marcas de Progresivos');

	//vamo a ver si funciona
	
//cambio de db porque phpbb está en la Sql272503_1 pero con iguales datos de conexion
mysql_select_db("Sql272503_2");
$consultasid="SELECT sid FROM oo_jos_sobipro_field_option_selected WHERE optValue = 'Essilor'";
$resultadosid=mysql_query($consultasid);
$num_resultadossid=mysql_num_rows($resultadosid);


	
			$filassid=mysql_fetch_array($resultadosid);


$consultafid="SELECT baseData FROM oo_jos_sobipro_field_data WHERE sid = '".$filassid["sid"]."' AND fid = '51'";
$resultadofid=mysql_query($consultafid);
$filasfid=mysql_fetch_array($resultadofid);

}

//volvemos a la db de phpbb3
mysql_select_db("Sql272503_1");

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

	make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
	page_footer();
?>

y hasta aquí he llegado

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 17:39
por micasamitelefono
estoy pensando que lo que falta es el código que muestra los resultados en PHP

os pongo entonces lo que tengo programado y funcionando en PHP

Código: Seleccionar todo

<?
$consultasid="SELECT sid FROM oo_jos_sobipro_field_option_selected WHERE optValue = 'Essilor'";
$resultadosid=mysql_query($consultasid);
$num_resultadossid=mysql_num_rows($resultadosid);


echo "numero de filas ".$num_resultadossid;
	
	for ($y=0;$y<$num_resultadossid;$y++)
		{
			$filassid=mysql_fetch_array($resultadosid);
			echo "<br />";	
			echo "esta es la sid: ".$filassid["sid"];


$consultafid="SELECT baseData FROM oo_jos_sobipro_field_data WHERE sid = '".$filassid["sid"]."' AND fid = '51'";
$resultadofid=mysql_query($consultafid);
$filasfid=mysql_fetch_array($resultadofid);
echo ",  y este el nombre del progresivo ".$filasfid["baseData"]; 
echo "<br /><a target=\"_blank\" href=\"http://www.opticos-optometristas.com/index.php?option=com_sobipro&pid=65&sid=".$filassid["sid"]."&Itemid=196\" ><img src=\"http://www.opticos-optometristas.com/images/sobipro/entries/".$filassid["sid"]."/img_1.jpg\" ></a>";

}

?>

Re: Página personalizada con consulta SQL  Tema Solucionado

Publicado: 28 Feb 2012, 17:47
por Alorse
Inténtalo de esta manera:

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();

page_header('Marcas de Progresivos');

//vamo a ver si funciona
//cambio de db porque phpbb está en la Sql272503_1 pero con iguales datos de conexion
mysql_select_db("Sql272503_2");
$consultasid = "SELECT sid FROM oo_jos_sobipro_field_option_selected WHERE optValue = 'Essilor'";
$resultadosid = mysql_query($consultasid);
$num_resultadossid = mysql_num_rows($resultadosid);

for ($y = 0; $y < $num_resultadossid; $y++)
{
	$filassid = mysql_fetch_array($resultadosid);

	$consultafid = "SELECT baseData FROM oo_jos_sobipro_field_data WHERE sid = '" . $filassid["sid"] . "' AND fid = '51'";
	$resultadofid = mysql_query($consultafid);
	$filasfid = mysql_fetch_array($resultadofid);

	$template->assign_block_vars('resultados', array(
		'SID' => $filassid["sid"],
		'BASEDATA' => $filasfid["baseData"],
	));
}

//volvemos a la db de phpbb3
mysql_select_db("Sql272503_1");

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

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
Y en el archivo marcas_progresivos.html pones:

Código: Seleccionar todo

<!-- BEGIN resultados -->
<br />
esta es la sid: {resultados.SID},  y este el nombre del progresivo {resultados.BASEDATA}<br />
<a target="_blank" href="http://www.opticos-optometristas.com/index.php?option=com_sobipro&pid=65&sid={resultados.SID}&Itemid=196" ><img src="http://www.opticos-optometristas.com/images/sobipro/entries/{resultados.SID}/img_1.jpg" /></a>
<!-- END resultados -->
Ya el resto depende de ti, ya que yo no tengo las bases de datos para probarlo.
Eso si, por favor deja un enlace a la pagina personalizada que estas intentado crear.

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 17:50
por micasamitelefono
creo que no vale

mira, la url es esta

http://www.opticos-optometristas.com/fo ... esivos.php


y digo yo, pero que yo te confirme que en una página php funciona correctamente, no te vale?
puedo darte una copia de la db, de esas dos tablas si quieres, de momento tiene pocas entradas


veo que en la parte superior se hace referencia a algún problema de DB, aclaro el tema

dispongo de 2 bases de datos con igual servidor/usuario/pass
la del foro phpbb es la Sql272503_1
y la que contiene las tablas con los datos que quiero extraer es la Sql272503_2

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 17:58
por Alorse
Ya te lo había dicho, hace falta la conexión con la base de datos... por eso es el error.

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 18:13
por micasamitelefono
pero al ser la misma sesion no llega con cambiar de base de datos?

entonces en donde tengo

Código: Seleccionar todo

mysql_select_db("Sql272503_2");
pongo

Código: Seleccionar todo

$conexion = mysql_connect("miservidor", "usuario", "clave");
mysql_select_db("demo", $conexion);
y donde pongo

Código: Seleccionar todo

//volvemos a la db de phpbb3
mysql_select_db("Sql272503_1");
pongo

Código: Seleccionar todo

mysql_close();
?

Re: Página personalizada con consulta SQL

Publicado: 28 Feb 2012, 18:34
por Alorse
la base de datos de phpBB, no la debes tocar para nada, no debes cambiar ni nada por el estilo, solo preocúpate por abrir y cerrar la otra cuando corresponda.

Re: Página personalizada con consulta SQL

Publicado: 29 Feb 2012, 09:20
por micasamitelefono
WOW

efectivamente, ha funcionado, una preguntilla más.

el código ha quedado así

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();

page_header('Marcas de Progresivos');

//vamo a ver si funciona
//cambio de db porque phpbb está en la Sql272503_1 pero con iguales datos de conexion
$conexion = mysql_connect("miservidor", "miusuario", "mipassword");
mysql_select_db("Sql272503_2", $conexion);
$consultasid = "SELECT sid FROM oo_jos_sobipro_field_option_selected WHERE optValue = 'Essilor'";
$resultadosid = mysql_query($consultasid);
$num_resultadossid = mysql_num_rows($resultadosid);

for ($y = 0; $y < $num_resultadossid; $y++)
{
	$filassid = mysql_fetch_array($resultadosid);

	$consultafid = "SELECT baseData FROM oo_jos_sobipro_field_data WHERE sid = '" . $filassid["sid"] . "' AND fid = '51'";
	$resultadofid = mysql_query($consultafid);
	$filasfid = mysql_fetch_array($resultadofid);

	$template->assign_block_vars('resultados', array(
		'SID' => $filassid["sid"],
		'BASEDATA' => $filasfid["baseData"],
	));
}

//volvemos a la db de phpbb3
mysql_close();
$template->set_filenames(array(
	'body' => 'marcas_progresivos.html',
));

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
me pregunto si no sería mejor esconder el código referente a la conexion y hacer un include? para evitar tenerlo tan a la vista.