/*******************************************\
| * Ce programme est sous liscence GNU GPL * |
| * This software is under GNU/GPL licence * |
| * * * * * * * * * * * * * * * * * * * * * * |
| * http://www.gnu.org/copyleft/gpl.html * |
\*******************************************/
/* Cr er par Laurent Coustet <ed@zehome.com>
* http://ed.zehome.com/
* Made by Laurent Coustet <ed@zehome.com>
*/
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>
#include "mysql.h"
#include "debug.h"
#include "news.h"
/* vim: set shiftwidth=2 tabstop=2
*/
void GetNews ()
{
MYSQL mysql;
MYSQL_ROW row;
MYSQL_RES *result;
MYSQL_FIELD *field;
ST_NEWS *news;
unsigned int num_fields;
unsigned int i,j=-1;
unsigned long *lengths;
connect(&mysql);
query(&mysql,"SELECT id,titre,texte,DATE_FORMAT(date,'%W %%e %M %Y') AS formated_date FROM site_news ORDER by date desc",NULL);
if ((result = mysql_store_result(&mysql))==NULL)
{
printf("Impossible d'executer une requete SQL!\n");
return;
}
num_fields = mysql_num_fields(result);
news = malloc(sizeof(ST_NEWS)*1000);
field = mysql_fetch_field(result);
while((row = mysql_fetch_row(result)))
{
lengths = mysql_fetch_lengths(result);
for(i = 0; i < num_fields && i < 999; i++)
{
if (strcmp(field[i].name,"id")==0)
{
//j = ;
news[j++].id = atoi(row[i]);
//printf("[%u][id: %u]\n",j,atoi(row[i]));
//printf("[%s: %s] ",field[i].name,row[i]);
}
if (strcmp(field[i].name,"titre")==0)
{
news[j].titre = calloc(strlen(row[i]) + 1, 1);
strcpy(news[j].titre, row[i]);
//printf("[%u][Titre: %s]\n",j,row[i]);
}
if (strcmp(field[i].name,"texte")==0)
{
news[j].texte = calloc(strlen(row[i]) + 1, 1);
strcpy(news[j].texte, row[i]);
//printf("[%u][Texte: %s]\n",j,row[i]);
}
if (strcmp(field[i].name,"formated_date")==0)
{
news[j].date = calloc(strlen(row[i]) + 1, 1);
strcpy(news[j].date, row[i]);
//printf("[%u][Date: %s]\n",j, news[j].date);
}
}
} // while
/* Je l'ai commentée, parceque ca génerais un peu de poubelle
* en fin de page, je ne sais pas encore pourquoi.
*/
print_news_head();
for(i=0;i< mysql_num_rows(result);i++)
{
//printf("",i,news[i].id);
//printf("ST_NEWS[%u][date] = %s | ",i,news[i].date);
//printf("ST_NEWS[%u][texte] = %s | ",i,news[i].texte);
printf("<h1 style=\"text-align: left; font-size: 1em;\">%s :%s</h1>\n<br />\n%s",news[i].date,news[i].titre,news[i].texte);
print_news_foot();
free(news[i].date);
free(news[i].titre);
free(news[i].texte);
}
free(news);
mysql_free_result(result);
disconnect(&mysql); // Segfault index.cgi
return;
}
void print_news_head()
{
printf("<h1>Les Nouvelles (en MySQL!)</h1>\n\n");
}
void print_news_foot()
{
// printf ("<hr />\n");
}
void AddNews(char *titre, char *texte)
{
MYSQL mysql;
connect(&mysql);
query(&mysql,"INSERT INTO site_news (titre,texte,date) VALUES (\"%s\",\"%s\",NOW())",titre,texte);
disconnect(&mysql);
}