Foros del Web » Programando para Internet » PHP »

dos consultas en el mismo script

Estas en el tema de dos consultas en el mismo script en el foro de PHP en Foros del Web. Hola, como se podria hacer para meter 2 consultas en el mismo script? este es el codigo de las noticias: <? include("config.inc.php"); $mostrar = 6 ...
  #1 (permalink)  
Antiguo 24/07/2004, 09:31
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 13 años, 7 meses
Puntos: 0
dos consultas en el mismo script

Hola, como se podria hacer para meter 2 consultas en el mismo script? este es el codigo de las noticias:

<?
include("config.inc.php");
$mostrar = 6 ;
$sql = "SELECT * FROM noticias ORDER BY id desc LIMIT $mostrar";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo "<br><br>
<table width=100% border=0 cellpadding=5 cellspacing=1 bgcolor=#000000>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/borde.jpg>
<td width=80%><span class=Estilo7>$row[titulo]</span></td>
<td width=20%><div align=right>$row[fecha]</div></td>
</tr>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/bloque_noticias.jpg>
<td colspan=2>
$row[noticia]
</td>
</tr>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/borde.jpg>
<td colspan=2>
<table width=100% border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=85%><b>Enviada por:</b> $row[usuario]</td>
<td width=15%><a href=seccion/noticias.php>Leer más</a></td>
</tr>
</table></td>
</tr>
</table>";
}
?>

y aki esta el de las noticias completas:

<?
include("config.inc.php") ;
$id=$_GET['id'];
$sql = "SELECT * FROM noticias where ID='$id'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
// Se agregarán los <br> correspondientes a la noticia extendida
$noticiaext = $row[noticiaext];
$noticiaext = str_replace("\r\n","<br>",$noticiaext);

echo "<table width=100% border=0 cellpadding=5 cellspacing=1 bgcolor=#000000>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/borde.jpg>
<td width=80%><span class=Estilo7>$row[titulo]</span></td>
<td width=20%><div align=right>$row[fecha]</div></td>
</tr>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/bloque_noticias.jpg>
<td colspan=2>
$row[noticia]
<br><br>$noticiaext</td>
</tr>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/borde.jpg>
<td colspan=2>
<table width=100% border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=85%><b>Enviada por:</b> $row[usuario]</td>
</tr>
</table></td>
</tr>
</table>";
echo "<a href=../index.php>Volver</a>";
}
?>

el problema esta cuando el doy a leer mas, ke las noticias completas se abren en una nueva pagina en blanco y ya no se me mantiene el estilo de la web, haber si me pueden ayudar .
Gracias y saludos.
  #2 (permalink)  
Antiguo 24/07/2004, 11:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero esos scripts .. como los llamas?

así como están por separado o el de listar las noticias lo haces llamando por un include() de otra página que contiene el formato (HTML/presentación) de tu página?

Si es así .. para el código del "leer más", debes implementar tu sitio como "web modular" (si es que no lo haces ya de cierta manera). Lee esta FAQ:

http://www.forosdelweb.com/showthrea...278#post265278

Un saludo,
  #3 (permalink)  
Antiguo 24/07/2004, 11:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 13 años, 7 meses
Puntos: 0
Hola Cluster, al 1º script lo llamo noticias.php y al segundo noticiascom.php, el 1º script (noticias.php) ya esta modularizado (de otra forma distinta a la del FAQ) y es el modulo que se carga x defecto con la pagina, pero si hago un modulo con el 2º script (noticiascom.php) pues simplemente no funciona, x eso keria incluir todo el codigo en el mismo archivo php.
Salu2
  #4 (permalink)  
Antiguo 24/07/2004, 12:49
 
Fecha de Ingreso: julio-2004
Ubicación: Puerto Vallarta, Jalisco, Mexico
Mensajes: 186
Antigüedad: 13 años, 5 meses
Puntos: 0
a ver, si yo entendi lo que quieres hacer, yo no veo donde pasa el ID de la noticia en la primera consulta a la segunda, creo que en tu primer pagina deberia de ser asi

<td width=15%><a href="seccion/noticias.php?id=<?=$row[id]?>">Leer más</a></td>

y en la segunda estoy seguro que no tiene nada que ver pero
$id deberia de ir sin '

$sql = "SELECT * FROM noticias where ID=$id";

tal vez por eso no te funciona en 2 paginas, pruebalo asi.

Espero te ayude
__________________
Shanti Castillo G.
  #5 (permalink)  
Antiguo 24/07/2004, 13:04
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 13 años, 7 meses
Puntos: 0
Hola Shantic gracias x responder pero no es eso lo ke keria hacer, si no ke los dos scripst se ejecuten en el uno mismo, para ke no pierda el estilo de la web, ya ke si los hago x separado si me funcionan pero al ejecutarse el 2º script se abre en una nueva pagina(ke es lo q no kiero).
Salu2
  #6 (permalink)  
Antiguo 24/07/2004, 13:55
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
a ver deja intento eso:
Código PHP:
<?
include("config.inc.php");
$id=$_GET["id"];
IF (
$id) {
$sql "SELECT * FROM noticias where ID='$id'";
$result mysql_query($sql);
$row mysql_fetch_array($result); 

// Se agregarán los <br> correspondientes a la noticia extendida
$noticiaext $row[noticiaext];
$noticiaext str_replace("\r\n","<br>",$noticiaext);

echo 
"<table width=100% border=0 cellpadding=5 cellspacing=1 bgcolor=#000000>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/borde.jpg>
<td width=80%><span class=Estilo7>$row[titulo]</span></td>
<td width=20%><div align=right>$row[fecha]</div></td>
</tr>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/bloque_noticias.jpg>
<td colspan=2>
$row[noticia]
<br><br>$noticiaext</td>
</tr>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/borde.jpg>
<td colspan=2>
<table width=100% border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=85%><b>Enviada por:</b> $row[usuario]</td>
</tr>
</table></td>
</tr>
</table>"
;
echo 
"<a href=../index.php>Volver</a>"
 } ELSE {
$mostrar ;
$sql "SELECT * FROM noticias ORDER BY id desc LIMIT $mostrar";
$result mysql_query($sql);
while(
$row mysql_fetch_array($result)) 
{
echo 
"<br><br>
<table width=100% border=0 cellpadding=5 cellspacing=1 bgcolor=#000000>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/borde.jpg>
<td width=80%><span class=Estilo7>$row[titulo]</span></td>
<td width=20%><div align=right>$row[fecha]</div></td>
</tr>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/bloque_noticias.jpg>
<td colspan=2>
$row[noticia]
</td>
</tr>
<tr bgcolor=#CCCCCC background=file:///C|/FoxServ/www/pchard/imagenes/borde.jpg>
<td colspan=2>
<table width=100% border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=85%><b>Enviada por:</b> $row[usuario]</td>
<td width=15%><a href=seccion/noticias.php>Leer más</a></td>
</tr>
</table></td>
</tr>
</table>"
;
}
?>
Cuando muestre la ID te dará la noticia, sinó, mostrará el resto de las notas que aparecen en tu tabla.

Otro detalle, le quité el while del id, porque no lo veo necesario, porque estás haciendo una consulta a una sola fila (id).

Última edición por lado2mx; 24/07/2004 a las 13:59
  #7 (permalink)  
Antiguo 24/07/2004, 14:03
 
Fecha de Ingreso: julio-2004
Ubicación: Puerto Vallarta, Jalisco, Mexico
Mensajes: 186
Antigüedad: 13 años, 5 meses
Puntos: 0
hmm entonces no entiendo muy bien que es lo que quieres hacer, quieres que la introduccion de la historia se abra en el mismo lugar donde abriras la historia?

estoy casi seguro que no es lo que quieres.

lo que tu quieres es que cuando abran esa pagina, salgan las intros
pero cuando le den click a na historia se abra la misma pagina (mismo nombre) pero con la historia abierta?

por fa trata de explicarlo un poco mejor, si tu caso es el segundo tengo una forma de hacerlo.

EDICION: lado2mx ya te dio la misma idea que yo tenia :)
solo que dejo el mismo problema, cuando le den click a leer mas, no tendra ID que buscar por que no lo pasa

<td width=15%><a href="seccion/noticias.php?id=<?=$row[id]?>">Leer más</a></td>

seria lo que le faltaria al script de lado2mx, por que yo sigo sin ver de donde saca la ID para la noticia si no es de ahi
__________________
Shanti Castillo G.

Última edición por Shantic; 24/07/2004 a las 14:11
  #8 (permalink)  
Antiguo 24/07/2004, 14:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 13 años, 7 meses
Puntos: 0
Acabo de probar el script de lado2mx pero no me funciona :(, haber si me explico ke no se me da muy bien , seria lo ke has dicho Shantic pero con las noticias, ke salgan en el index y al darle a "leer mas" pues ke salga la misma noticia solo ke con el texto completo, lo mismo q el phpnuke vamos, haber si me e explicado ahora un poco mejor.
Salu2
  #9 (permalink)  
Antiguo 24/07/2004, 14:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
hammer ..

Si tu "modularizas" un sitio web vía pHP .. toda página pasa por tu "plantilla" .. Ejemplo:

index.php

y cuando tienes una sección nueva la llamas tipo:

index.php?seccion=noticias

por qué ahí en index tendrás algún switch() o if() simple que decida que código ha de cargar vía un include()

Bien .. ahora tienes un tal "noticiascom.php" que necesita de una variable extra com parámetro para mostrar esa noticia completa (el ID).

El link que haces desde noticias.php a "leer más" .. tendría que ser del tipo:

index.php?seccion=noticiascom&id=<? echo $row['id'] ?>

para que en tu index.php .. añadas un nuevo caso (case en un switch() obien otro IF()) para que puedas hacer el include a:

case "noticiascom":
include ("noticiascom.php");
break;

(o un if() o como "modularizes" tu sitio)

por $_GET te llegará ese ID .. a index.php .. pero que este a su vez llama a noticiascom.php.

Un include() llama al código que ahí mencionas externo, mezcla el código original + el que llamastes en el punto del código del original y todo ello lo ejecuta como UNO sólo.

Un saludo,
  #10 (permalink)  
Antiguo 24/07/2004, 14:58
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 13 años, 7 meses
Puntos: 0
Gracias Cluster voy a probarlo y ya te dire si me funciona, xk soy muy torpe xD.
Salu2
  #11 (permalink)  
Antiguo 24/07/2004, 15:31
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
si, perdón por el script, estaba solo copiando y pegando, mejor hubiera sido explícar bien la situación, perdon por eso.
  #12 (permalink)  
Antiguo 25/07/2004, 11:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 13 años, 7 meses
Puntos: 0
Hola de nuevo, e seguido tu FAQ (Cluster) y me ha funcionado perfectamente menos con el "noticiascom.php", esto es lo q tengo puesto en el index:

<?
$id=$_GET['id'];

switch ($id) {
case 1:
include("seccion/noticiascom.php");
break;
case 2:
include("phpinfo.php");
break;
case 3:
include("pagina3.php");
break;
default:
include("seccion/noticias.php");
// estado default .. nos determina el estado
// "si no es ninguna opcion de las anteriores".
}
?>
entonces como dice en el FAQ tendria q llamarlo x index.php?id=nº, bueno si hago eso con el archivo "noticiascom.php" no me funciona pero en cambio el archivo "phpinfo.php" si funciona.. porke es?
Gracias y saludos.
  #13 (permalink)  
Antiguo 25/07/2004, 12:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ya te decía en mi mensaje anterior que tus links tendría que ser:

index.php?id=nº&id_noticia=nº

Fijate que estás usando un nombre de variable igual para dos cosas .. así que cambia uno u otro .. pero no puede ser iguales además que lo necesitas. Con el "id" seleccionas "el script o sección" que estás .. y el segundo el "ID_noticia" que tendras que usar en noticiascom.php:

$sql = "SELECT * FROM noticias where ID='$id_noticia'";


Un saludo,
  #14 (permalink)  
Antiguo 25/07/2004, 14:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 13 años, 7 meses
Puntos: 0
Ya me funciono, muchas gracias Cluster, es ke estaba poniendo las variables iguales .
Salu2
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 10:02.