recuperer variable

Eléphant du PHP | 150 Messages

14 août 2015, 20:16

bonjour,

j'essaye de récupérer une variable mais impossible
la variable est $reduc

Code : Tout sélectionner

class devis { public static function Liste_devis($tri) { $liste = ''; $resultat = Bdd::connectBdd()->prepare(SELECT.ALL.DEVIS.' WHERE devis.client_devis = clients.id_client'/*.$tri*/); $resultat -> execute(); $numBoucle = 0; $id=""; while($donnee = $resultat->fetch(PDO::FETCH_ASSOC)) { //fonction pour resultat societe if (isset ($donnee['entreprise_client'])&&($donnee['entreprise_client'] !="entreprise")) { $corpo= $donnee['entreprise_client']; } else { $corpo= ""; } //fonction pour eviter de mettre x fois le nom du client si plusieurs devis if (isset($donnee['id_client'])&&($donnee['id_client'] !=$id)) { $client= $corpo.' '. $donnee['prenom_client'] .' '. $donnee['nom_client'].'<br>'.$donnee['ville_clients'] ; $saut="<tr><td>&nbsp;</td></tr>"; } else { $client=""; $saut=""; } //fonction pour resultat type de devis if($donnee['type_devis']==1) { $action="action=genesol_pdf.php"; $type="Solaire"; } else { $action="action=genepac_pdf.php"; $type="Pac"; } //fonction colore 1 ligne sur 2 if($numBoucle %2 == 0) $bgcolor = "style='height: 45px; background-color: #d4d3d3;'"; else $bgcolor = "style='height: 45px;'"; //conextion a une autre table pour remise ----------------------------------------- RECHERCHER DANS LA TABLE ICI $num_devis=$donnee['num_devis']; $num_sub_devis=$donnee['num_sub_devis']; $resultat2 = Bdd::connectBdd()->prepare(SELECT.'prix_devis'.EQUI_DEVIS.' where equi_num_devis="$num_devis" AND equi_sub_devis="$num_sub_devis" AND id_equi_devis="0"'); $resultat2 -> execute(); while($donnee2 = $resultat2->fetch(PDO::FETCH_ASSOC)) { $reduc=$donnee2['prix_devis']; } $liste .= '<tr '.$bgcolor.'> <td>'. $client .'</td> <td>'.$donnee['num_devis'].'-'.$donnee['num_sub_devis'].'</td> <td>'.strftime("%d %B %Y",$donnee['date_devis']).'</td> <td>'.$type.'</td> <td><form method=post '.$action.' target=\"_blank\"> <input type=hidden name=devis_num value="'.$donnee['num_devis'].'"> <input type=hidden name=devis_sub_num value="'.$donnee['num_sub_devis'].'"> -------------------------------------------------- ICI : <input type=hidden name=reduc value='.$reduc.'> <input type=submit value=Imprimer></form></td> -------------------------------------------------- ET ICI : <td>'.$reduc.'</td> <td> <a href=edit_client.php?id_client='.$donnee['id_client'].'><img src="../template/images/b_edit.png" title="editer"></a> <a href=?tri=nom_asc&del_client='.$donnee['id_client'].'><img src="../template/images/b_drop.png" title="supprimer"></a> </td> </tr> '. $saut .' '; $id=$donnee['client_devis']; $numBoucle++; } if(!empty($liste)) { return $liste; } }

merci d'avance

Mammouth du PHP | 1966 Messages

14 août 2015, 20:59

Il te faut vérifier ta requête, si elle ne retourne aucun résultat, ta variable $reduc n'existera pas
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 150 Messages

15 août 2015, 00:59

je viens de la vérifier et toujours indéfini variable

Code : Tout sélectionner

//conextion a une autre table pour remise $num_devis=$donnee['num_devis']; $num_sub_devis=$donnee['num_sub_devis']; $resultat2 = Bdd::connectBdd()->prepare(SELECT.'prix_devis'.EQUI_DEVIS.' where equi_num_devis="$num_devis" AND equi_sub_devis="$num_sub_devis" AND id_equi_devis="0"'); $resultat2 -> execute(); while($donnee2 = $resultat2->fetch(PDO::FETCH_ASSOC)) { if(!empty($donnee2['prix_devis'])){$reduc= $donnee2['prix_devis']; } else{$reduc="";}} // fin

Mammouth du PHP | 2703 Messages

15 août 2015, 01:05

$reduc n'est définie que dans le while.
il faut donc ajouter un $reduc = ""; avant le while pour que la variable existe toujours après.

Eléphant du PHP | 150 Messages

15 août 2015, 01:18

malheureusement toujours sa me retourne rien alors que la table est pleine dans ce champ
mais je n'ai plus l'erreur

Code : Tout sélectionner

//conextion a une autre table pour remise $num_devis=$donnee['num_devis']; $num_sub_devis=$donnee['num_sub_devis']; $resultat2 = Bdd::connectBdd()->prepare('SELECT `prix_devis` FROM `equi_devis` WHERE equi_num_devis="$num_devis" AND equi_sub_devis="$num_sub_devis" AND id_equi_devis=0'); $resultat2 -> execute(); $reduc=""; while($donnee2 = $resultat2->fetch(PDO::FETCH_ASSOC)) { if(!empty($donnee2['prix_devis'])){$reduc= $donnee2['prix_devis']; } else{$reduc="";} } // fin
merci encore

Eléphant du PHP | 150 Messages

15 août 2015, 01:22

au cas ou je met la fonction complete

Code : Tout sélectionner

class devis { public static function Liste_devis($tri) { $liste = ''; $resultat = Bdd::connectBdd()->prepare(SELECT.ALL.DEVIS.' WHERE devis.client_devis = clients.id_client'/*.$tri*/); $resultat -> execute(); $numBoucle = 0; $id=""; while($donnee = $resultat->fetch(PDO::FETCH_ASSOC)) { //fonction pour resultat societe if (isset ($donnee['entreprise_client'])&&($donnee['entreprise_client'] !="entreprise")) { $corpo= $donnee['entreprise_client']; } else { $corpo= ""; } //fonction pour eviter de mettre x fois le nom du client si plusieurs devis if (isset($donnee['id_client'])&&($donnee['id_client'] !=$id)) { $client= $corpo.' '. $donnee['prenom_client'] .' '. $donnee['nom_client'].'<br>'.$donnee['ville_clients'] ; $saut="<tr><td>&nbsp;</td></tr>"; } else { $client=""; $saut=""; } //fonction pour resultat type de devis if($donnee['type_devis']==1) { $action="action=genesol_pdf.php"; $type="Solaire"; } else { $action="action=genepac_pdf.php"; $type="Pac"; } if($donnee['fin_devis']==1) { $fin="Paiment enregistré"; } else { $fin=""; } //fonction colore 1 ligne sur 2 if($numBoucle %2 == 0) $bgcolor = "style='height: 45px; background-color: #d4d3d3;'"; else $bgcolor = "style='height: 45px;'"; //conextion a une autre table pour remise $num_devis=$donnee['num_devis']; $num_sub_devis=$donnee['num_sub_devis']; $resultat2 = Bdd::connectBdd()->prepare('SELECT `prix_devis` FROM `equi_devis` WHERE equi_num_devis="$num_devis" AND equi_sub_devis="$num_sub_devis" AND id_equi_devis=0'); $resultat2 -> execute(); $reduc=""; while($donnee2 = $resultat2->fetch(PDO::FETCH_ASSOC)) { if(!empty($donnee2['prix_devis'])){$reduc= $donnee2['prix_devis']; } else{$reduc="";} } // fin $liste .= '<tr '.$bgcolor.'> <td>'. $client .'</td> <td>'.$donnee['num_devis'].'-'.$donnee['num_sub_devis'].'</td> <td>'.strftime("%d %B %Y",$donnee['date_devis']).'</td> <td>'.$type.'</td> <td><form method=post '.$action.' target=\"_blank\"> <input type=hidden name=devis_num value="'.$donnee['num_devis'].'"> <input type=hidden name=devis_sub_num value="'.$donnee['num_sub_devis'].'"> <input type=hidden name=reduc value='.$reduc.'> <input type=submit value=Imprimer></form></td> <td>'.$fin.' -'.$reduc.'</td> <td> <a href=edit_client.php?id_client='.$donnee['id_client'].'><img src="../template/images/b_edit.png" title="editer"></a> <a href=?tri=nom_asc&del_client='.$donnee['id_client'].'><img src="../template/images/b_drop.png" title="supprimer"></a> </td> </tr> '. $saut .' '; $id=$donnee['client_devis']; $numBoucle++; } if(!empty($liste)) { return $liste; } } }


et je viens de faire un test basique et les valeur ne sorte pas de la bouche while

Code : Tout sélectionner

//conextion a une autre table pour remise $num_devis=$donnee['num_devis']; $num_sub_devis=$donnee['num_sub_devis']; $resultat2 = Bdd::connectBdd()->prepare('SELECT `prix_devis` FROM `equi_devis` WHERE equi_num_devis="$num_devis" AND equi_sub_devis="$num_sub_devis" AND id_equi_devis=0'); $resultat2 -> execute(); $reduc=""; $coucou=""; while($donnee2 = $resultat2->fetch(PDO::FETCH_ASSOC)) { if(!empty($donnee2['prix_devis'])){$reduc= $donnee2['prix_devis']; } else{$reduc="";} $coucou="coucou"; } // fin $liste .= '<tr '.$bgcolor.'> <td>'. $client .'</td> <td>'.$donnee['num_devis'].'-'.$donnee['num_sub_devis'].'</td> <td>'.strftime("%d %B %Y",$donnee['date_devis']).'</td> <td>'.$type.'</td> <td><form method=post '.$action.' target=\"_blank\"> <input type=hidden name=devis_num value="'.$donnee['num_devis'].'"> <input type=hidden name=devis_sub_num value="'.$donnee['num_sub_devis'].'"> <input type=hidden name=reduc value='.$reduc.'> <input type=submit value=Imprimer></form></td> <td>'.$coucou.'</td> <td> <a href=edit_client.php?id_client='.$donnee['id_client'].'><img src="../template/images/b_edit.png" title="editer"></a> <a href=?tri=nom_asc&del_client='.$donnee['id_client'].'><img src="../template/images/b_drop.png" title="supprimer"></a> </td> </tr> '. $saut .' '; $id=$donnee['client_devis']; $numBoucle++; }
normalement je devrai voir coucou dans la colonne ma la rien

Mammouth du PHP | 2278 Messages

15 août 2015, 10:34

tente de remplacer (avec text à la place de hidden pour vérifier):
<input type=hidden name=reduc value='.$reduc.'>
par :
<input type='text' name='reduc' value='$reduc' />


<input type='submit' value'Imprimer' /></form></td>

-------------------------------------------------- ET ICI :
<td>$reduc</td>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 150 Messages

15 août 2015, 11:04

bonjour

pareil sa reste vide

Mammouth du PHP | 2703 Messages

15 août 2015, 11:29

si la requete ne retourne aucun résultat, alors cela ne va pas dans le while
donc afficher la requete executee, la lancer dans phpmyadmin pour confirmer qu'elle ne retourne bien aucun résultat

Eléphant du PHP | 150 Messages

15 août 2015, 11:34

bonjour,

j'ai deja essayer et sa m'affiche bien les resultat dans phpmyadmin

Eléphant du PHP | 150 Messages

15 août 2015, 11:39

ce que je ne compren pas c pourquoi sa ne marche pas sa :

Code : Tout sélectionner

$coucou=""; while($donnee2 = $resultat2->fetch(PDO::FETCH_OBJ)) { if(!empty($donnee2->prix_devis)){ $reduc= $donnee2->prix_devis; } else{ $reduc=""; } $coucou="coucou"; } echo $coucou;
logiquement hors de la bouche "$coucou" devrai valoir "coucou"