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
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
?
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.