Sistema de noticias en PHP y MySQL

Quiero hacer un sistema de noticias en PHP y MySQL para un weblog que tengo ya diseñado. Me basta con que sea posible postear comentarios y organizar las noticias por categorías y meses.

El caso es que tengo conocimientos en estos dos lenguajes, pero no sé por dónde empezar para hacer todo esto...

¿Alguien se ofrece a ayudarme?

La idea sería contactar con el/los voluntario/voluntarios por MSN, ya que tengo demasiadas dudas como para postearlas en el foro. Casi me haría falta empezar desde el principio e ir paso a paso...

Descarto totalmente usar un script ya hecho, lo que quiero es afianzar lo que sé a la par que programo el weblog.

Gracias. [oki]
Dahn II escribió:Quiero hacer un sistema de noticias en PHP y MySQL para un weblog que tengo ya diseñado. Me basta con que sea posible postear comentarios y organizar las noticias por categorías y meses.

El caso es que tengo conocimientos en estos dos lenguajes, pero no sé por dónde empezar para hacer todo esto...

¿Alguien se ofrece a ayudarme?

La idea sería contactar con el/los voluntario/voluntarios por MSN, ya que tengo demasiadas dudas como para postearlas en el foro. Casi me haría falta empezar desde el principio e ir paso a paso...

Descarto totalmente usar un script ya hecho, lo que quiero es afianzar lo que sé a la par que programo el weblog.

Gracias. [oki]


yo tengo entre manos lo mismo... y por donde voy a empezar..... pues por el formulario de enviar la noticia!

En principio voy a hacer solo lo de la noticias y que salgan en la portada, (el tema de usuarios y tal ya lo tengo hecho), mas adelante ya le pondre lo de los comentarios, y quizas moderacion colectiva.

Basicamente, no me parece excesivamente dificil hacer el sistema de envio/recuperacion de noticias de la base de datos, lo voy a hacer de la siguiente forma:
una tabla en la BD en la que meter toda la info de la noticia, cada una con su ID, y otra tabla para los comentarios... y claro, en cada comentario, a parte de poseer su ID propia, tendria la id de la noticia... asi q para mostrarlos solo habria que buscar en la tabla de comentarios todos los que tubiesen la id de la noticia en orden ascendente o descendente, segun convenga.

Para las categorias, hacer una tabla en la que poner el nombre de la categoria y una id unica para cada una... y entonces, en la tabla de las noticias, en la columna correspondiente, se pone el numero de la categoria.
Para recuperarlas, pues lo mismo, un query donde la condicion sea un determinado ID de categoria.


Si tienes alguna duda pregunta por aqui, por si te puedo echar un cable, y asi ademas si lo lee alguien y ve una barbaridad nos lo advierte (yo de esto aprendo sobre la marcha).
yo lo que pensaria primero seria el desarrollo de la bbdd, si haces una bbdd simple, luego igual quieres ampliar, y te es mas dificil
he leido algunos manuales en los que recomiendan que sobren campos de la bbdd a que falten, ya que si sobran, no los eliges en el select, insert, etc... y no se usan, en cambio, si algun dia los necesitas, pues no los tienes, y ale, a modificar la bbdd

es solo un consejo, eh?
Gracias por el consejo, DooBie. Lo tendré en cuenta. ;)

Por cierto, ¿para hacer un buscador valdría con poner algo parecido a "select * from noticias where titulo == "%terminobuscado%" or contenido == "%terminobuscado%""?
si, aunque, ahi va otro consejo, yo nunca suelo hacer los select muliples (select * from bla bla...) por que elegir todos los campos, si posiblemente solo uses dos o tres?
si haces un select acotando los campos, la bbdd ira mas desahogada, el servidor, y todo el conjunto en general :)

saludos compañero!
¡Thx otra vez, DooBie! ;)

Vamos a ver, tengo instalado el AppServ y estoy haciendo pruebas en él.

He ejecutado el siquiente archivo SQL:

drop database if exists nosomosnadie;
create database nosomosnadie;
use nosomosnadie;

create table noticias(idnot bigint, idcat tinyint, leermas bit, textonotleer bigint, titulo varchar(65), textonot longtext, fechanot varchar(8), horanot varchar(5));
create table comentarios(idnot bigint, idcom bigint, nombrecom varchar(15), textocom longtext, fechacom varchar(8), horanot varchar(5), ip varchar(15));
create table ipsbaneadas(ip varchar(15));
create table categorias(idcat tinyint, nombrecat varchar(20));

insert into categorias values('1', 'Cine');
insert into categorias values('2', 'Televisión');
insert into categorias values('3', 'Música');
insert into categorias values('4', 'Gadgets');
insert into categorias values('5', 'Videojuegos');
insert into categorias values('6', 'Informática');
insert into categorias values('7', 'Motor');
insert into categorias values('8', 'Deporte');
insert into categorias values('9', 'Humor');
insert into categorias values('10', 'Miscelánea');

El problema es que al poner esta página PHP no aparece nada (se queda en blanco):


$conectar = mysql_connect('localhost');

mysql_select_db('nosomosnadie');

$consulta = 'select * from categorias';
mysql_query($consulta);

mysql_close($conectar);

?>

¿Cuál es el problema?
Que no muestras nada [tomaaa] En esa página PHP sólo se hace la consulta SQL ¿Cómo quieres que salga nada? jejeje

Pon algo asi como:
$prueba=mysql_query($consulta);

echo $prueba;
A ver que sale :P No soy muy experto en esto, pero de trastear un poco mi web phpnuke, algo se pega [+risas]

Saludos!
asi, con suerte te sale "array" o algo parecido.
Debes usar mysql_fetch_array($prueba), mysql_fetch_row() o algo similar, para poder acceder a los datos que te devuelva la consulta...
Algo asi como (ojo, esto esta hecho de memoria y puede no funcionar:)
while($resultados = mysql_fetch_array($prueba)) {
echo $resultados['elnombredelacolumnaquequieresmostrar'];
}


mirate en php.net el uso de esas funciones...
keo01 escribió:asi, con suerte te sale "array" o algo parecido.
Debes usar mysql_fetch_array($prueba), mysql_fetch_row() o algo similar, para poder acceder a los datos que te devuelva la consulta...
Algo asi como (ojo, esto esta hecho de memoria y puede no funcionar:)


mirate en php.net el uso de esas funciones...
[+risas] jejeje no si ya decía yo después de postear que faltaba algo :P en phpnuke lo que más se usa es el mysql_fetch_row().

Para mostrar, por ejemplo, las categorías pues sería algo así (usando lo que ha puesto keo01):
$prueba=mysql_query($consulta);

echo "<b>Categorías</b><br><br>";
while($resultados = mysql_fetch_row($prueba)) {
echo $resultados['nombrecat'] . "<br>";
}
y te saldrían los nombres de las categorías, uno debajo de otro.

Saludos!

PD: Sí, un día de estos me cogeré mi tocho-libro de PHP y MySQL y me lo empollaré, que siempre ando buscando algo cuando hace falta o mirando código de otros :P
ashitaka escribió:Que no muestras nada [tomaaa] En esa página PHP sólo se hace la consulta SQL ¿Cómo quieres que salga nada? jejeje

Pon algo asi como:
$prueba=mysql_query($consulta);

echo $prueba;
A ver que sale :P No soy muy experto en esto, pero de trastear un poco mi web phpnuke, algo se pega [+risas]

keo01 escribió:asi, con suerte te sale "array" o algo parecido.
Debes usar mysql_fetch_array($prueba), mysql_fetch_row() o algo similar, para poder acceder a los datos que te devuelva la consulta...
Algo asi como (ojo, esto esta hecho de memoria y puede no funcionar:)


mirate en php.net el uso de esas funciones...

Vaya, ya decía yo que era muy poco código como para estar bien... [tomaaa]

Al final me ha funcionado poniendo esto:


$conectar = mysql_connect('localhost');

mysql_select_db('nosomosnadie');

$consulta = mysql_query('select * from categorias');

while ($row = mysql_fetch_array($consulta, MYSQL_ASSOC))
{ printf("ID: %s | Nombre: %s
", $row["idcat"], $row["nombrecat"]); }

mysql_free_result($consulta);

mysql_close($conectar);

?>

Gracias a los dos. [oki]
9 respuestas