Jump to content

[RESOLU] [PDF.php] Transformation en Array d'un morceau de code


Recommended Posts

Bonjour à tous,

 

j'ai un petit bout de code qui est intégré à classes/PDF.php qui me sert à lister des numéros de série par produits.

Voici le code actuel:

for($i=1;$i<$product['product_quantity']+1;$i++){
 $sql="SELECT `numero` FROM `"._DB_PREFIX_."numero_de_serie` where `id_product`='".$product['product_id']."' and `id_order`='".self::$order->id."' and `quantite`='".$i."';";
 if($result=Db::getInstance()->ExecuteS($sql) and $result[0]['numero']!=''){
  $this->Cell(50, 4, self::l('Numero de serie').' '.$i." : ".$result[0]['numero'], 'N');
 }
}

 

Cependant, je dois le transformer en array pour chaque produit afin de les lister suite à ma question sur ce post http://www.prestasho...ost__p__1058538

 

J'ai donc un début du code mais, je ne vois pas comment faire sachant que je dois traiter chaque id_product puis extraire les numéro de série.

Si quelqu'un pouvait m'aider, ce serait trés sympathique de sa part.

Merci d'avance

 

	/* Ici il faudra extraire vos numeros de serie */

	/* On considere qu'ils sont dans le tableau $results */
	$results = array('XXX', 'YYY', 'ZZZ');	// Valeur de test qui sera a supprimer au final !

	if (count($results)) {
		// pour la cellule description on fabriquera une chaine en ligne "Serials : XXX - YYY - ZZZ"
		if ($Aff == 'desc') {  
			$serials = (count($results) > 1 ? 'Serials : ' : 'Serial : ');
			$separateur = ' - ';
		}
		// pour la cellule reference ce sera une chaine avec des retours a la ligne "XXX\nYYY\nZZZ"
		else {			  
			$serials = '';
			$separateur = chr(13).chr(10);	// retour a la ligne "\n"
		}  
		foreach ($results as $key => $result)
			if ($key == 0) $serials .= $result;	// premier numero
			else $serials .= $separateur.$result;	// numeros suivants
	}  
	else
		$serials = null;	// si il n'y a pas de numero de serie

Edited by vanille69 (see edit history)
Link to comment
Share on other sites

D'après ce que je vois de la requete sql, les numéros semblent être récupérés successivement dans $result[0]['numero']

Alors, si je ne me trompe pas, en faisant ça :

   $results = array();
   for($k=1;$k<(int)$product['product_quantity']+1;$k++) {
       $sql="SELECT `numero` FROM `"._DB_PREFIX_."numero_de_serie` where `id_product`='".$product['product_id']."' and `id_order`='".self::$order->id."' and `quantite`='".$k."';";
       if($result=Db::getInstance()->ExecuteS($sql) and $result[0]['numero']!=''){
           $results[] = $result[0]['numero'];    // Ajout dans le tableau
       }
   }

je pense que tu devrais obtenir le tableau $results au bon format pour la suite...

 

PS: j'ai mis $k parce qu'à cette endroit il y a déjà un $i qui se balade.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...