requête Mysql et librairie odtphp

Eléphant du PHP | 89 Messages

27 déc. 2011, 16:54

Bonjour à tous
J'essaie en vain de construire un document Openoffice avec la libraire odtphp et une requête mysql. En effet, je dispose d'une BDD d'adresses et j'aimerais faire des fiches avec openoffice text. J'ai donc téléchargé la librairie, j'arrive à extraire des données vers le document openoffice car j'ai compris le principe mais je n'arrive pas à formater les fiches!
J'ai utilisé l'exemple du tutorial6
$listeArticles = array(
	array(	'titre' => 'PHP',
			'texte' => 'PHP (sigle de PHP: Hypertext Preprocessor), est un langage de scripts (...)',
	),
	array(	'titre' => 'MySQL',
			'texte' => 'MySQL est un système de gestion de base de données (SGDB). Selon le (...)',
	),
	array(	'titre' => 'Apache',
			'texte' => 'Apache HTTP Server, souvent appelé Apache, est un logiciel de serveur (...)',
	),		
);

$article = $odf->setSegment('articles');
foreach($listeArticles AS $element) {
	$article->titreArticle($element['titre']);
	$article->texteArticle($element['texte']);
	$article->merge();
}
$odf->mergeSegment($article);
// We export the file
$odf->exportAsAttachedFile();
Mais je n'arrive pas à faire des "Array" avec le résultat de ma requete
$Sql = "SELECT * FROM fiche WHERE ".$result."";
$rs = mysql_query($Sql,$conn) or die("Echec lors de l'exécution de la requête à la ligne " . __LINE__ . ": " . mysql_error($conn) . '<br>SQL:' . $Sql);
$num="";
$det="";
$listeArticles = array();
while ($rows= mysql_fetch_array($rs))
{
$num=strtoupper($rows[0]);
$det=strtoupper($rows[1]);
$det=str_replace("\""," ",$rows[1]);
$listeArticles =array( array('rep' => $rows[2],'nom' => $rows[3],'prenom' => $rows[4],'adresse' => $rows[5],'cp' =>$rows[6],'vil' => $rows[7],'tel' => $rows[8],'mob' =>$rows[9],'mag' => $rows[10],'num' => $num,'det' => $det,'int' =>$rows[11],'civ' =>$rows[12],),);
}
j'avoue être un peu perdu avec les array en php

Merci pour votre aide

Mammouth du PHP | 1029 Messages

13 janv. 2012, 11:29

Bonjour,

Ton souci à première vue est que tu remplis tes variables avec les dernières données récupéré dans ta db, si tu veux récupérer l'ensemble de tes données tu dois faire un tableau multidimensionnelle.

Essaye plutôt ceci :
while ($rows= mysql_fetch_array($rs))
{
$num[]=strtoupper($rows[0]);
$det[]=strtoupper($rows[1]);
$det[]=str_replace("\""," ",$rows[1]);
$listeArticles[] =array('rep' => $rows[2],'nom' => $rows[3],'prenom' => $rows[4],'adresse' => $rows[5],'cp' =>$rows[6],'vil' => $rows[7],'tel' => $rows[8],'mob' =>$rows[9],'mag' => $rows[10],'num' => $num,'det' => $det,'int' =>$rows[11],'civ' =>$rows[12],);
}
L'expérience est la somme de toutes nos erreurs.