Page 1 sur 1

générer un PDF

Posté : 07 juin 2011, 17:45
par PDFman
Bonjour,

En me servant de la classe MPDF, je veux générer un pdf qui contiendrais tous les produits qui sont dans ma base de données ( soit 4 000produits).
Le truc c'est que j'arrive toujours à un : Fatal error: Out of memory (allocated 1974206464) (tried to allocate 261904 bytes)

En limitant ma requête avec un LIMIT, ca fonctionne. Je peux aller jusque 1000 produits grâce à :

ini_set("memory_limit",'-1');
ini_set('max_execution_time', 0);

Mon code est tout bête :
<?php

ini_set("memory_limit",'-1');
ini_set('max_execution_time', 0);

	
		$SQL1 = "SELECT nom as nom_prod,parfum as parfum,poids as poids,prix_TTC as prix
FROM  produits
LIMIT 1000

";

sql_mysql_query ($SQL1, 'nom');
		?>
		<span style="font-size:6pt">
		<table  class="tableau">
		<tr>
	    <th align="left" nowrap>Produit</th>
	    <th align="left" nowrap>parfum</th>
		<th align="left" nowrap>poids</th>
		<th align="center" nowrap>prix</th>
		<?php
		while ($row1 = mysql_fetch_object($query_nom)) {
	
		echo '<tr>';
		echo '<td>'; echo $row1->nom_prod; echo '</td>'; echo '<td>'; echo $row1->parfum; echo '</td>'; echo '<td>'; echo $row1->poids; echo '</td>'; echo '<td>';echo $row1->prix;echo '</td>';
		echo '</tr>';
		}
	echo '</table>';
	echo '</span>';



$titre_pdf = 'Produits commandes';
include("../../_modele/html/modele_pdf.php"); // apelle la classe pour générer pdf
?>
Comment dois je m'y prendre ?? J'essaye de générer un catalogue.
Découper en plusieurs script ?? genre le premier limite la requête entre 0 et 1000 puis il appelle le deuxième script qui génère un nouveau PDF de qui limite la requête entre 1000 et 2000 ect..
Ou je sais pas , une idée plus intelligente ??

Là pour 1000 produits , mon pdf fait 22 pages, bon une fois que j'arriverai a faire sortir tous mes produits dedans , je rangerai les données en deux colonnes.

Re: générer un PDF

Posté : 07 juin 2011, 18:57
par baneagle
t'as essayé de faire sans le pdf pour voir si le problème venait du pdf ou du fetch?

Re: générer un PDF

Posté : 08 juin 2011, 11:37
par PDFman
Nan le problème vient bien du pdf, si je l'affiche dans une page HTMl, j'ai bien toutes les informations ..

Re: générer un PDF

Posté : 08 juin 2011, 12:02
par baneagle
Pour être honnête les seules bases de la programmation objet que je possède sont en java. J'ai plutôt tendance à ne pas l'utiliser en php et je n'ai jamais eu ce genre de problème.
Donc, je ne pense pas que ca puisse résoudre le problème mais quand on est dans l'impasse, pour trouver une autre voie il faut savoir faire demi-tour ^^.

Je te proposerais donc de remplacer
sql_mysql_query ($SQL1, 'nom');

while ($row1 = mysql_fetch_object($query_nom)) {
       
                echo '<tr>';
                echo '<td>'; echo $row1->nom_prod; echo '</td>'; echo '<td>'; echo $row1->parfum; echo '</td>'; echo '<td>'; echo $row1->poids; echo '</td>'; echo '<td>';echo $row1->prix;echo '</td>';
                echo '</tr>';
                }
        echo '</table>';
par
$sql = mysql_query ($SQL1);

while ($row1 = mysql_fetch_assoc($sql)) {
       
                echo '<tr>
                           <td>'.$row1['nom_prod'].'</td><td>'.$row1['parfum'].'</td><td>'.$row1['poids'].'</td><td>'.$row1['prix'].'</td>
                        </tr>';
                }
        echo '</table>';
juste histoire de voir la différence.
Après c'est pareil, je connais pas MPDF et je te conseillerais d'essayer FPDF. Après je te parle d'objet et companie mais je ne sais même pas si l'édition PDF fonctionne sans programmation objet. Enfin bref j'éspère au moins t'avoir donné des idées. :lol:

Re: générer un PDF

Posté : 08 juin 2011, 12:08
par PDFman
Bjr,

non malheureusement ca ne change absolument rien.
J'ai essayé de découper la requête en plusieurs requête.
La première allant de 0 à 1000, la deuxième de 1000 à 2000. J'arrive toujours à un Fatal error: Out of memory

:p :p:p:p:p:p

Re: générer un PDF

Posté : 08 juin 2011, 12:13
par PDFman
Et MPDF est en fait basée sur trois grandes librairies: FPDF, HTML2PDF et UFPDF.

Re: générer un PDF

Posté : 08 juin 2011, 12:19
par baneagle
Un bout de piste, essayes de rajouter ces 2 lignes dans. htacess

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

Re: générer un PDF

Posté : 08 juin 2011, 12:34
par moogli
salut,

a priori ton affaire est pas gagnée si avec le ini_set("memory_limit",'-1'); tu dépasse la mémoire c'est bizard ;) voir si cette possibilité n'est pas bridé (si cela est possible) (que retourne le ini_set ?)


je te proposerais une solution alternative que j'ai vue récemment à base de latex (nan c'est pas du plastique pppfffffff :D ) => http://phpsolmag.org/decouvrez-comment- ... df-en-php/

A voir si ton serveur te permet d'utiliser tous ça ;)

@+