Code : Tout sélectionner
<?php
include 'Test/fonctions.php';
$date = date("d-m-Y");
$heure = date("H:i");
connec_db();
$auth=mysql_query("SELECT * FROM t_envois_ext where date_envois_ext=now()");
$result=mysql_fetch_object($auth);
mysql_close();
$commentaire_ext=($result->comm_envois_ext);
connec_db();
$envois=mysql_query("SELECT * FROM t_connexions");
while ($go_id = mysql_fetch_array($envois)){
$destinataire_id = $go_id[0];
$envois_m=mysql_query("SELECT * FROM t_profile WHERE id_connexions='$destinataire_id'");
$go = mysql_fetch_array($envois_m);
$destinataire = $go[13];
$auth=mysql_query("SELECT * FROM t_lots WHERE id_residences='$_res' AND (etat_lots='Libre' OR etat_lots='Option') ORDER BY id_lots ASC");
$row = mysql_fetch_array($auth);
$id=$row[1];
$res=mysql_query("SELECT * FROM t_residences WHERE id_residences='$id'");
$result=mysql_fetch_object($res);
$residence=($result->nom_residences);
$message_html = '<html>';
$message_html .= '<head>';
$message_html .= '<title>Etat Stocks</title>';
$message_html .= '</head>';
$message_html .= '<body>';
$message_html .= '<table border="1">';
$message_html .= '<tr>';
$message_html .= '<td colspan="13">Bonjour,<br/><br/>Ce mail est généré automatiquement, veuillez ne pas repondre SVP.<br/><br/>'.$commentaire_ext.'<br/><br/>Merci.</td>';
$message_html .= '</tr>';
$message_html .= '<tr>';
$message_html .= '<td colspan="13">Etat des stocks au '.$date.' a '.$heure.'</td>';
$message_html .= '</tr>';
$message_html .= '<tr>';
$message_html .= '<td colspan="13">';
$message_html .= '<table aligne="center">';
$message_html .= '<tr aligne="center">';
$message_html .= '<td bgcolor="#FFCC33">Option</td>';
$message_html .= '<td>, pour les lots optionnés, vous pouvez vous mettre en liste d\'attente en nous contactant.</td>';
$message_html .= '</tr>';
$message_html .= '</table>';
$message_html .= '</td>';
$message_html .= '</tr>';
$message_html .= '<tr>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1" width="4%">Bat.</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1" width="4%">Niv</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1" width="4%">Num.</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">Type</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">SH</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">VAR</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">Total</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">Jardin</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">Total</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">F. Notaire</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">SD</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">Defisc</td>';
$message_html .= '<td bordercolor="#FFFFFF" bgcolor="#666666" align="center" class="txt1">Loyer</td>';
$message_html .= '</tr>';
$message_html .= '<tr><td bordercolor="#333333" align="center" colspan="13">Programme '.$residence.'</td></tr>';
$auth=mysql_query("SELECT * FROM t_lots WHERE id_residences='$_res' AND (etat_lots='Libre' OR etat_lots='Option') ORDER BY id_lots ASC");
while ( $row = mysql_fetch_array($auth) ) {
$id=$row[1];
$test_resul=$row[15];
$total_surf=$row[6]+$row[7];
$total_prix=$row[11]+$row[12];
if ($row[7]>14){
$sd=$row[6]+14;
} else {
$sd=$total_surf;
}
$res=mysql_query("SELECT * FROM t_residences WHERE id_residences='$id'");
$result=mysql_fetch_object($res);
$residence=($result->nom_residences);
$taux=($result->plafond_residences);
$tauxd=($result->tauxd_residences);
$defisc=round(($sd*$taux*$tauxd)/100);
//-----------------------------------------------
//DECLARE LES VARIABLES
//-----------------------------------------------
$email_expediteur ='[email protected]';
$email_reply ='[email protected]';
$message_texte ='Bonjour,'."\n\n".'Voici l\'etat des stocks';
$bgc = switchcolor();
if ($test_resul=='Option'){
$message_html .= '<tr bgcolor="#FFCC33" align="center">';
} else if ($test_resul=='Libre'){
$message_html .= '<tr bgcolor="#FFFFFF" align="center">';
}
$message_html .= '<td bordercolor="#333333" align="center">'.$row[2].'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$row[3].'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$row[4].'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$row[5].'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$row[6].'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$row[7].'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$total_surf.'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$row[8].'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$total_prix.'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$row[14].'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$sd.'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$defisc.'</td>';
$message_html .= '<td bordercolor="#333333" align="center">'.$row[21].'</td>';
$message_html .= '</tr>';
}
//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------
$frontiere = '-----=' . md5(uniqid(mt_rand()));
//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------
$headers = 'From: "Contact" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: text/html; charset="iso-8859-1"';
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$sujet = 'Etat des stocks';
//}
mail($destinataire,$sujet,$message_html,$headers);
}
$message_html .= '</table> ';
$message_html .= '</body>';
$message_html .= '</html>';
mysql_close();
//redirect('partenaires.php?_page=accueil');
?> <?php
// préparation du message html
ob_start();// démarrer la capture de la sortie
?>
Ici le html avec inclusion des variables php comme ceci <?php echo $var; ?>
Plein de lignes html....
<?php
$message_html = ob_get_contents();// récupérer la sortie
ob_end_clean();// stopper la capture et vider le buffer
Berk, mais ce n'est que mon avis, je prefère ne jamais ouvrir/fermer des balises php et concaténer dans une variable, ou à la rigueur faire un <<< EOF! ou bien faire un fopen et des preg_replace sur un fichier que çaMon dieu ça me fait toujours flipper ces dizaines de concaténations de code html !![]()
Pour avoir le HTML dans du HTML tu peux faire comme ça (mais y a pas d'obligation, je me la pète juste ^^) :<?php // préparation du message html ob_start();// démarrer la capture de la sortie ?> Ici le html avec inclusion des variables php comme ceci <?php echo $var; ?> Plein de lignes html.... <?php $message_html = ob_get_contents();// récupérer la sortie ob_end_clean();// stopper la capture et vider le buffer
function get_partial($file, $datas) {
extract($datas);
ob_start();
include $file;
$partial = ob_get_contents();
ob_end_clean();
return $partial;
}
// et dans le contrôleur j'ai juste
$message_html = get_partial('path/du/template', $datas);
Ainsi je ne ferme ni n'ouvre les balises php dans le contrôleur et du coup je peux même travailler sur mon template dans une page autonome sans devoir passer par mon formulaire d'envoi.function include_partial($file, $datas) {
extract($datas);
include $file;
}
En réalité mes 2 fonctions sont un peu plus complexes car j'y inclus également quelques globales ($request, $user, $config) afin qu'elles soient automatiquement disponibles dans mes vues.
Mon avis est tout aussi subjectif, je vois un avantage ceci dit, c'est qu'en écrivant le html dans une variable php on peut se permettre d'indenter comme on veut, alors qu'une indentation html est synonyme de conséquence niveau affichagePS : quand à l'exemple de mon message précédent, en terme de lisibilité et d'écriture je le préfère à la méthode utilisée par le posteur du sujet mais je reconnais que c'est un avis subjectif et je n'aime pas non plus fermer la balise php dans le code contrôleur mais autrement le html est difficilement lisible et moins facilement manipulable/modifiable.
Code : Tout sélectionner
<td>
texte
</td>
Code : Tout sélectionner
echo '<td>';
echo 'texte';
echo '</td>';
Si je comprend bien il te manque la valeur pour la colone N°3 ce qui correspond à $row[4] qui est sensé être un entier, peut-être que l'erreur est plutôt dans ta base de donnée, si pour cette entrée la colone correspond à NULL ça pourrait donner ça, une façon de voir ça serait de faire unmerci à tous pour ces conseilles. Comme je suis débutant, et autodidacte, j'essaie surtout de faire en sorte que ça marche.
Par contre je suis très intéressé par vos propositions, je vais regarder ça.
Pour mon souci, voici par exemple ce que me retourne ma boucle WHILE :
A 0 6 STUDIO 23.41 5.83 29.24 0.00 82000 1640 29.24 17554 390
A 0 7 STUDIO 23.41 5.83 29.24 0.00 82000 1640 29.24 17554 390
A 0 8 STUDIO 23.41 5.83 29.24 0.00 82000 1640 29.24 17554 390
A 0 STUDIO 23.41 5.83 29.24 0.00 82000 1640 29.24 17554 390
A 0 10 STUDIO 23.41 5.83 29.24 0.00 82000 1640 29.24 17554 390
A 0 12 STUDIO 23.41 5.83 29.24 0.00 82000 1640 29.24 17554 390
A 0 13 STUDIO 23.41 5.83 29.24 0.00 82000 1640 29.24 17554 390
A 1 17 T2 43.48 16.60 60.08 0.00 146000 2920 57.48 34508 620
A 1 19 STUDIO 23.42 6.12 29.54 0.00 84000 1680 29.54 17734 390
A 1 24 T2 43.48 16.60 60.08 0.00 146000 2920 57.48 34508 620
A 1 25 STUDIO 23.42 6.12 29.54 0.00 84000 1680 29.54 17734 390
A 1 26 STUDIO 23.42 6.12 29.54 0.00 84000 1680 29.54 17734 390
A 1 27 STUDIO 23.42 6.12 29.54 0.00 84000 1680 29.54 17734 390
L'erreur est pour cette exemple en ligne 9, pourquoi en plein milieu de la boucle, j'ai un souci et que tout revient ensuite ?...
Merci
Code : Tout sélectionner
var_dump($row)
Code : Tout sélectionner
mail($destinataire,$sujet,$message_html,$headers);
}
$message_html .= '</table> ';
$message_html .= '</body>';
$message_html .= '</html>';
mysql_close();
Code : Tout sélectionner
$message_html .= '</table> ';
$message_html .= '</body>';
$message_html .= '</html>';
mail($destinataire,$sujet,$message_html,$headers);
}
mysql_close();