[SOLUCIONADO] Mostrar determinados registros de MySql dependiendo de la selecion

Iniciado por Only, Octubre 08, 2013, 01:26:23 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola a todos, vengo a pedirles ayuda, les explico rapido

tengo una base de datos llamada noticias, con su id, titulo_noticia, contenido_noticia, y tambien tengo un index el cual me muestra el titulo_noticia, lo que hago es que titulo_noticia es un link a noticias.php.

El problema es que cuando abro noticias.php, quiero mostrar el id, titulo_noticia y contenido_noticia, solo de la noticia que se eligio,

pero no se como hacerlo, espero me puedan ayudar para resolver este problema

Gracias y un saludo a todos

pon el link a noticias.php?id=NUMERO_DE_NOTICIA_SACADO_DE_LA_BASE_DE_DATOS

y luego en tu código noticias.php pones

<?php

$idnoticia = (int) $_GET['id'];

aquí haces la consulta sql poniendo WHERE id_noticia = $idnoticia
para que saque solo el registro que tenga ese id

listo fin del problema xD

Te entendi mas o menos bro , espero me puedas ayudar un poco mas, mira te dejo el codigo donde estoy mostrando los datos en index.php

Código: php
<?php 

include "start_connection.php";

$query = "SELECT * from noticias";
$result = mysql_query($query);

while($row = mysql_fetch_array($result))
{
echo "<article class='slide'>
<time datetime='2013-02-04'>".$row['mes']."<span>".$row['dia']."</span></time>
<div class='holder'>
<h2 class='text-green'>".$row['categoria']."</h2>
<p><a class='ejemplo_4' href='noticias.php'>".$row['titulo']."'</a></p>
</div>
</article>";
}

include "close_connection.php";
?>


No entendi bien donde colocar el id para mandarlo al otro formulario

Código: php

<?php
    include ('start_connection.php');
    $query = 'SELECT id, mes, dia, categoria, titulo from noticias';
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result))
    {
echo '<article class="slide">
         <time datetime="2013-02-04">'.$row['mes'].'<span>'.$row['dia'].'</span></time>
<div class="holder">
<h2 class="text-green">'.$row['categoria'].'</h2>
<p><a class="ejemplo_4" href="noticias.php?id='.$row['id'].'">'.$row['titulo'].'</a></p>
</div>
</article>';
    }
    include ('close_connection.php');
?>


suponiendo que el campo se llama id, ahí puse en el link noticias.php?id={$id}, también hice varias otras cosas
1º quité el *, y lo cambié por los campos que vas a usar, usar el * está totalmente desaconcejado.
di vueltas las comillas dobles y los apostrofes porque estaban mal utilizados.
Si bien el include es un constructor del lenguaje, por lo cual no es necesario poner los parentesis, se aconceja utilizarlos para mejor lectura.

saludos!

Lo quise mandar a noticias.php pero me arrojo otro error , asi es como estan los codigos bro

index.php

Código: php
<?php 
    include ('start_connection.php');
    $query = 'SELECT id, mes, dia, categoria, titulo from noticias';
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result))
    {
  echo '<article class="slide">
        <time datetime="2013-02-04">'.$row['mes'].'<span>'.$row['dia'].'</span></time>
  <div class="holder">
  <h2 class="text-green">'.$row['categoria'].'</h2>
  <p><a class="ejemplo_4" href="noticias.php?id='.$row['id'].'">'.$row['titulo'].'</a></p>
</div>
  </article>';
    }   
    include ('close_connection.php');
?>


noticias.php

Código: php
<?php 
 
include ('start_connection.php');
$id = (int)$_GET['id'];
$query = 'SELECT id, mes, dia, categoria, titulo from noticias WHERE id=$id';
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo $contenido;
}   
include ('close_connection.php');
 
?>

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Lo quise mandar a noticias.php pero me arrojo otro error , asi es como estan los codigos bro

index.php

Código: php
<?php 
    include ('start_connection.php');
    $query = 'SELECT id, mes, dia, categoria, titulo from noticias';
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result))
    {
  echo '<article class="slide">
        <time datetime="2013-02-04">'.$row['mes'].'<span>'.$row['dia'].'</span></time>
  <div class="holder">
  <h2 class="text-green">'.$row['categoria'].'</h2>
  <p><a class="ejemplo_4" href="noticias.php?id='.$row['id'].'">'.$row['titulo'].'</a></p>
</div>
  </article>';
    }   
    include ('close_connection.php');
?>


noticias.php

Código: php
<?php 
 
include ('start_connection.php');
$id = (int)$_GET['id'];
$query = 'SELECT id, mes, dia, categoria, titulo from noticias WHERE id=$id';
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo $contenido;
}   
include ('close_connection.php');
 
?>


como que a noticias? el código que yo puse es el mismo que tienes en el index.php, por que lo pusiste en noticias.php? si el de noticias.php está razonable?

ahora viendo ambos codigos me replanteo que es lo que quieres hacer?

por lo que dice  tu primer mensaje aparentemente quieres hacer que al apretar en el titulo de la noticia te muestre la noticia entera, es eso?

por favor expresate mejor.

saludos!

Lo que quiero hacer es que cuando de click en el titulo me muestre la noticia completa bro en una pagina nueva

Cuando doy clic en el titulo de la noticia se haber noticias.php y en ella se imprime la noticia el titulo y el id

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Lo que quiero hacer es que cuando de click en el titulo me muestre la noticia completa bro en una pagina nueva

Cuando doy clic en el titulo de la noticia se haber noticias.php y en ella se imprime la noticia el titulo y el id

y bueno ahí puse como hacerlo, que es lo que no entiendes?

saludos!

Lo que no entiendo es como recibir el valor id en noticias.php, supongo que despues de recibir el valor, tengo que hacer una consulta y condicionar que solo se muestren los valores correspondientes a ese ID,

Mira te explico bien, el tema es que deberias aprender MySQL y un poco mas de PHP

pero mira es asi...

Tomas el ID mediante GET desde la URL asi:
Código: php
$idnoticia = (int) $_GET['id'];


la url de noticias seria algo asi: elarchivo.php?id=1



para mostrar la noticia correspondiente tenes que hacer una consulta a mysql de la siguiente forma...
Código: php
	$query = 'SELECT id, mes, dia, categoria, titulo from noticias WHERE id=$id';


Bien hasta ahi?.

Bien ahora te digo tu error... lo tienes en el archivo noticias.php

en este codigo:
Código: php
while($row = mysql_fetch_array($result))
{
echo $contenido;
}   


esta totalmente erroneo la variable de $contenido, primero que no existe y segundo que no se muestra asi los datos.

Lo que tenes q poner es:
Código: php
while($row = mysql_fetch_array($result))
{
echo $row['titulo_noticia'];
                       echo $row['contenido_noticia'];
}


Y es que mas que eso no se puede explicar, porque ya con lo que te explique tiene que funcionar.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Mira te explico bien, el tema es que deberias aprender MySQL y un poco mas de PHP

pero mira es asi...

Tomas el ID mediante GET desde la URL asi:
Código: php
$idnoticia = (int) $_GET['id'];


la url de noticias seria algo asi: elarchivo.php?id=1



para mostrar la noticia correspondiente tenes que hacer una consulta a mysql de la siguiente forma...
Código: php
	$query = 'SELECT id, mes, dia, categoria, titulo from noticias WHERE id=$id';


Bien hasta ahi?.

Bien ahora te digo tu error... lo tienes en el archivo noticias.php

en este codigo:
Código: php
while($row = mysql_fetch_array($result))
{
echo $contenido;
}   


esta totalmente erroneo la variable de $contenido, primero que no existe y segundo que no se muestra asi los datos.

Lo que tenes q poner es:
Código: php
while($row = mysql_fetch_array($result))
{
echo $row['titulo_noticia'];
                       echo $row['contenido_noticia'];
}


Y es que mas que eso no se puede explicar, porque ya con lo que te explique tiene que funcionar.

sobre la primera parte, es lo que puse hace dos comentarios, y sobre tu noticias.php arreglado creo que también está mal, o explicamente entonces, para que recorres el arreglo que tira el fetch_array si se trata de un solo registro que corresponde a ese id? (suponiendo que al menos el campo id de la tabla noticias está como clave primaria).

en todo caso hasta puedes quitar el while y dejarlo así:

Código: php

$row = mysql_fetch_array($result)
echo $row['titulo_noticia'];
echo $row['contenido_noticia'];


no reparé en el archivo noticias.php porque su pregunta no era esa, supuse que lo tendría bien asique ni lo miré.

saludos!