Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Consulta a la BD a tráves de la ID

Buenas,
Tengo dos tablas en la base de datos, una llamada posts y otra llamada enlaces, tengo una pagina llamada ver_post.php donde me sale el post a travez de su id, los enlaces me salen a traves de una consulta a la base de datos cogiendo como referencia la id de cada post.

El problema es que en el index quiero hacer los mismo, que en la portada de la pelicula me salga parte de la tabla de los enlaces, cuando hago la consulta a traves de recordID no me sale..

Aquí le dejo el codigo:
<?php require_once('Connections/conexion.php'); ?>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> 
<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
		$(".informa").hover(function(){
			$(this).children('.info').slideToggle('slow');
		});
	});
</script>
<?php
$varEnlac_LinksShow = "0";
if (isset($_GET["recordID"])) {
  $varEnlac_LinksShow = $_GET["recordID"];
}

//Consulta de la BD Links
mysql_select_db($database_conexion, $conexion);
$query_LinksShow = sprintf("SELECT * FROM enlaces WHERE enlaces.idenlace = %s ORDER BY enlaces.id DESC", 
	GetSQLValueString($varEnlac_LinksShow, "int"));
$LinksShow = mysql_query($query_LinksShow, $conexion) or die(mysql_error());
$row_LinksShow = mysql_fetch_assoc($LinksShow);
$totalRows_LinksShow = mysql_num_rows($LinksShow);

//Consulta de la BD
mysql_select_db($database_conexion, $conexion);
$query_ListadoCartelera = "SELECT * FROM posts WHERE posts.cartelera = 1 ORDER BY posts.id DESC LIMIT 20";
$ListadoCartelera = mysql_query($query_ListadoCartelera, $conexion) or die(mysql_error());
$row_ListadoCartelera = mysql_fetch_assoc($ListadoCartelera);
$totalRows_ListadoCartelera = mysql_num_rows($ListadoCartelera);

?>
<?php if ($row_ListadoCartelera == "") {
	echo "No hay ninguna pelicula en cartelera";
} else { ?>
<?php do { ?>
  <div id="post_global" >
    <div id="contenido_post" class="informa"><a href="<?php echo $row_ListadoCartelera['seo']; ?>.html">
    <img src="inc/portadas/<?php echo $row_ListadoCartelera['portada']; ?>" width="157" height="250" /></a>
    <div class="info">
    <div id="titulo">
    	<?php echo $row_ListadoCartelera['titulo'];  ?>
    </div>
    <div id="tipo">
    	<?php echo catcal($row_LinksShow['calidad']); ?>
    </div>
    <div id="auz">
    	<img src="<?php echo cataudio($row_LinksShow['audio']); ?>" width="30" height="20" />
    </div>
    </div>
    </div>
    </div>
  <?php } while ($row_ListadoCartelera = mysql_fetch_assoc($ListadoCartelera)); ?>

<?php }?>
<?php
mysql_free_result($LinksShow);
mysql_free_result($ListadoCartelera);
?>
Tengo otro archivo funciones donde tengo la funcion de return de "cataudio" y "catcal" el problema no está ahí..
Yo creo que el problema está en "WHERE enlaces.idenlace = %s" porque en verdad no le estoy pasando nada por parametro según yo creo...

Si me podrian dar algun indice sobre esto.

Un salu2!

Editado
1
Puntos
1377
Visitas
7
Resp
Por valentinchiflu hace 102 meses
Principiante
Respuesta #1
Hola, en la tabla enlaces tienes que guardar la id del post donde corresponde ese enlace y hacer las 2 consultas que tienes al revés es decir...

primero consultas a la tabla post para sacar sus datos:
//Consulta post
$query_ListadoCartelera = "SELECT * FROM posts WHERE posts.cartelera = 1 ORDER BY posts.id DESC LIMIT 20";
como ahora ya tienes los datos del post incluida su id ya puedes consultar la tabla enlaces donde la id del post sea la que corresponde a ese registro:
//Consulta Links relaccionados con el post
$query_LinksShow = sprintf("SELECT * FROM enlaces WHERE enlaces.idpost = %s ORDER BY enlaces.id DESC", 

  GetSQLValueString($row_ListadoCartelera['id'], "int"));
es un ejemplo pero con esa idea supongo que podrás sacarlo ;)
0
Puntos
Por alber hace 102 meses
Administrador
Respuesta #2
Buenas, me esta sacando lo que buscaba lo unico malo esque no coincide con cada post, me sale el mismo enlace en todas, el "enlace.idpost" ya lo tengo como "idenlace" ahi tengo guardada la id del post, pero no me lo saca por la id..

No se cual puede ser el motivo. Salu2
0
Puntos
Por valentinchiflu hace 102 meses
Principiante
Respuesta #3
Claro por que estas sacando los post mediante un bucle y en cada vuelta que da hay una id del post diferente, la solución es que hagas una función con la segunda consulta (la de los enlaces) y la invoques dentro del bucle pasando la id del post, por hay van los tiros...

Prueba y nos cuentas
0
Puntos
Por alber hace 102 meses
Administrador
Respuesta #4
He intentado hacer lo que tu dices con un "getementbyid" pero no me funciona. Alguna idea de que funcion podria usar?
Salu2
0
Puntos
Por valentinchiflu hace 102 meses
Principiante
Respuesta #5
Hola creo que no me entendiste, te eh hecho un ejemplo completo usando tu código, eh hecho una función con tu consulta a enlaces y la ejecuto dentro del bucle:
<?php require_once('conexion.php');

$varEnlac_LinksShow = "0";
if (isset($_GET["recordID"])) {
  $varEnlac_LinksShow = $_GET["recordID"];
}
//Consulta de la BD
mysql_select_db($database_conexion, $conexion);
$query_ListadoCartelera = "SELECT * FROM posts WHERE posts.cartelera = 1 ORDER BY posts.id DESC LIMIT 20";
$ListadoCartelera = mysql_query($query_ListadoCartelera, $conexion) or die(mysql_error());
$row_ListadoCartelera = mysql_fetch_assoc($ListadoCartelera);
$totalRows_ListadoCartelera = mysql_num_rows($ListadoCartelera);


function sacar_enlaces($idpost){


global $database_conexion, $conexion;
//Consulta de la BD Links
mysql_select_db($database_conexion, $conexion);
$query_LinksShow = sprintf("SELECT * FROM enlaces WHERE enlaces.idpost = %s ORDER BY enlaces.id DESC", 
  GetSQLValueString($idpost, "int"));
$LinksShow = mysql_query($query_LinksShow, $conexion) or die(mysql_error());
$row_LinksShow = mysql_fetch_assoc($LinksShow);

return $row_LinksShow['enlace'];
mysql_free_result($LinksShow);
  
}


?>
<?php if ($row_ListadoCartelera == "") {
echo "No hay ninguna pelicula en cartelera";
} else { ?>

<?php do { ?>

<?php echo $row_ListadoCartelera['titulo'];  ?>
<?php echo sacar_enlaces($row_ListadoCartelera['id']);  ?>

<?php } while ($row_ListadoCartelera = mysql_fetch_assoc($ListadoCartelera)); ?>

<?php }?>
<?php
mysql_free_result($ListadoCartelera);
?>
con esto damos el tema por hecho, si quieres saber como hacer un bucle dentro de la propia función para sacar todos los enlaces por favor abre otro tema ;)
2
Puntos
Por alber hace 102 meses
Administrador
Respuesta #6
prueba en una pagina php en blanco que se conecte a tu base de datos y veras los resultados!
0
Puntos
Por alber hace 102 meses
Administrador
Respuesta #7
Muchisimas gracias,

salu2
0
Puntos
Por valentinchiflu hace 102 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate