Alors voila, j'ai eu beau chercher, je n'arrive pas à faire évoluer mon script dans le bon sens.
Je vous explique le principe recherché et ce que j'ai actuellement.
Dans une base, j'ai deux tables.
Une table "REVIEWS" avec disons le champs "id_reviews,title, author, tags" pour simplifier l'exemple
ET
Une table "PAGES" avec disons les champs "id_pages, id_parent,titre_page, content_page, page_number"
REVIEWS contient en fait la structure de mes articles, c'est à dire le titre et l'auteur de mon article, alors que PAGE contient le contenu même de mon article, divisé en plusieurs pages sur mon site.
Donc pour résumer, dans PAGES, le champs id_parent va se lier au champs "id" de la page Reviews pour dire à quel article cette page s'associe, et "page_number" dit juste si c'est la page 1, 2 ou 3 de l'article histoire de pouvoir lire l'article dans le bon ordre
Ce que je cherche à faire:
Je cherche à exporter le tout en CSV mais tout en rassemblant le contenu d'un seul et même essai sur une seule ligne du csv.
Donc mon csv devrait au final ressembler à :
LIGNE 1 : id_reviews,title, author, tags,content et dans le champs content, j'aurais en fait : titre_page01 <br> content_page01 <br> titre_page02 <br> contentPage02 ...etc
Ligne 2 : id_reviews"+1", .....etc.
Autant j'arrive à gérer ce problème en php/html, autant je n'arrive pas à exporter cela en CSV car il faut utiliser des classes spéciales que je ne parviens pas à maitriser
Actuellement j'arrive avec le script ci-dessous à faire un export propre de ma table REVIEWS, puis ma table PAGE mais individuellement et avec pour chaque page une ligne..., sans le moindre fusionnage de mes données.
Une idée d’adaptation ? sachant que mon niveau en php est très limité cela n'est pas de refus.
Mon code actuellement:
<?php
/*
* connexion base
*/
$conn = mysql_connect('xxx', 'xxx', 'xxx') or die(mysql_error());
mysql_select_db('xxx', $conn) or die(mysql_error($conn));
/*
* sql query
*/
$query = sprintf('SELECT * FROM reviews WHERE id=1');
$result = mysql_query($query, $conn) or die(mysql_error($conn));
/*
* Header CSV
*/
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=export.csv');
/*-----------------------------Table Review-----------------*/
/*
* Export premiere ligne
*/
$row = mysql_fetch_assoc($result);
if ($row) {
echocsv(array_keys($row));
}
/*
* Export de toutes les lignes
*/
while ($row) {
echocsv($row);
$row = mysql_fetch_assoc($result);
}
/*-----------------------------Table Pages-----------------*/
$query2 = sprintf('SELECT * FROM pages WHERE parent_id=1 ORDER BY pagenumber ASC');
$result2 = mysql_query($query2, $conn) or die(mysql_error($conn));
/*
* Export premiere ligne
*/
$row2 = mysql_fetch_assoc($result2);
if ($row2) {
echocsv(array_keys($row2));
}
/*
* Export de toutes les lignes
*/
while ($row2) {
echocsv($row2);
$row2 = mysql_fetch_assoc($result2);
}
/*
* Creation csv
*/
function echocsv($fields)
{
$separator = '';
foreach ($fields as $field) {
/*-$fields=strip_tags($fields,"<a>,<img>,<embed>,<iframe>");-*/
if (preg_match('/\\r|\\n|,|"/', $field)) {
$field = '"' . str_replace('"', '""', $field) . '"';
}
echo $separator . $field;
$separator = ';';
}
echo "\r\n";
}
?>