par
Ellya » 24 janv. 2020, 16:44
La variable
$ferie a été ajouté suite au problème mais pas par moi non plus.
Voici une version antérieure :
//----------------------------------------------------------------------------
// Insert les données des menus dans la BDD à partir de $data_menus
//----------------------------------------------------------------------------
function sql_insert_data_menus() {
global $error, $data_menus;
//----- Boucle de création des menus -----
// On boucle sur chaque ville-typeConvive
foreach ($data_menus as $ville_convive => $menus_ville_convive) {
// On boucle sur chaque jour
foreach ($menus_ville_convive as $date => $menus_date) {
// On teste si le jour est un lundi (1) --> si oui on lance la création du menu HTML
// La date est au format ymd-N : 20181113-1
$dateN = explode("-", $date) [1]; // jour de la semaine
$dateYmd = explode("-", $date) [0]; // date au format ymd
if ($dateN == "1") {
$post_name = $ville_convive . "-" . $dateYmd;
//----- Fabrication du menu au format html
$html_menu = get_html_menu($ville_convive, $dateYmd);
//----- On échappe les caractères spéciaux pour l'insertion en BDD
$html_menu = mysqli_real_escape_string ($mysqli , $html_menu);
//----- Titre du menu
$date_menu = DateTime::createFromFormat ( "ymd" , $dateYmd);
$titre_menu = "Menu " . ucfirst(explode("-", $ville_convive) [0]) . " " .
ucfirst(explode("-", $ville_convive) [1]) . ", Semaine " . $date_menu->format("W") . ", du " .
$date_menu->format("d/m/Y");
$now = date('Y-m-d H:i:s');
$nowgmt = gmdate('Y-m-d H:i:s');
$guid = ""; // A compléter
// Commandes DELETE : On supprime le précédent Menu de même ville/convive/date s'il existe
$format_sql = "DELETE wp_postmeta FROM wp_posts INNER JOIN wp_postmeta ON (wp_postmeta.post_id = wp_posts.id) " .
" WHERE wp_posts.post_name = '%s'; ";
$sql = sprintf($format_sql, $post_name);
if ( !$mysqli->query($sql) ) {
error("Erreur SQL : $mysqli->error");
}
$format_sql = "DELETE FROM wp_posts WHERE wp_posts.post_name = '%s'; ";
$sql = sprintf($format_sql, $post_name);
if ( !$mysqli->query($sql) ) {
error("Erreur SQL : $mysqli->error");
}
// Commande INSERT du nouveau menu
$format_sql = "INSERT INTO wp_posts (post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_name, to_ping, pinged, post_modified, post_modified_gmt, post_content_filtered, post_parent, guid, menu_order, post_type, comment_count ) " .
" VALUES ('%s', '%s', '%s', '%s', '', 'publish', 'closed', 'closed', '%s', '', '', '%s', '%s', '', 0, '%s', 0, 'menu-repas', 0);" ;
$sql = sprintf($format_sql, $now , $nowgmt, $html_menu, $titre_menu, $post_name, $now , $nowgmt, $guid);
if ( !$mysqli->query($sql) ) {
error("Erreur SQL : $mysqli->error");
} else {
msg ( sprintf("Insertion dans la BDD du menu : %s", $titre_menu) );
}
}
}
}
$mysqli->close();
}
}
La variable [b]$ferie[/b] a été ajouté suite au problème mais pas par moi non plus.
Voici une version antérieure :
[PHP]
//----------------------------------------------------------------------------
// Insert les données des menus dans la BDD à partir de $data_menus
//----------------------------------------------------------------------------
function sql_insert_data_menus() {
global $error, $data_menus;
//----- Boucle de création des menus -----
// On boucle sur chaque ville-typeConvive
foreach ($data_menus as $ville_convive => $menus_ville_convive) {
// On boucle sur chaque jour
foreach ($menus_ville_convive as $date => $menus_date) {
// On teste si le jour est un lundi (1) --> si oui on lance la création du menu HTML
// La date est au format ymd-N : 20181113-1
$dateN = explode("-", $date) [1]; // jour de la semaine
$dateYmd = explode("-", $date) [0]; // date au format ymd
if ($dateN == "1") {
$post_name = $ville_convive . "-" . $dateYmd;
//----- Fabrication du menu au format html
$html_menu = get_html_menu($ville_convive, $dateYmd);
//----- On échappe les caractères spéciaux pour l'insertion en BDD
$html_menu = mysqli_real_escape_string ($mysqli , $html_menu);
//----- Titre du menu
$date_menu = DateTime::createFromFormat ( "ymd" , $dateYmd);
$titre_menu = "Menu " . ucfirst(explode("-", $ville_convive) [0]) . " " .
ucfirst(explode("-", $ville_convive) [1]) . ", Semaine " . $date_menu->format("W") . ", du " .
$date_menu->format("d/m/Y");
$now = date('Y-m-d H:i:s');
$nowgmt = gmdate('Y-m-d H:i:s');
$guid = ""; // A compléter
// Commandes DELETE : On supprime le précédent Menu de même ville/convive/date s'il existe
$format_sql = "DELETE wp_postmeta FROM wp_posts INNER JOIN wp_postmeta ON (wp_postmeta.post_id = wp_posts.id) " .
" WHERE wp_posts.post_name = '%s'; ";
$sql = sprintf($format_sql, $post_name);
if ( !$mysqli->query($sql) ) {
error("Erreur SQL : $mysqli->error");
}
$format_sql = "DELETE FROM wp_posts WHERE wp_posts.post_name = '%s'; ";
$sql = sprintf($format_sql, $post_name);
if ( !$mysqli->query($sql) ) {
error("Erreur SQL : $mysqli->error");
}
// Commande INSERT du nouveau menu
$format_sql = "INSERT INTO wp_posts (post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_name, to_ping, pinged, post_modified, post_modified_gmt, post_content_filtered, post_parent, guid, menu_order, post_type, comment_count ) " .
" VALUES ('%s', '%s', '%s', '%s', '', 'publish', 'closed', 'closed', '%s', '', '', '%s', '%s', '', 0, '%s', 0, 'menu-repas', 0);" ;
$sql = sprintf($format_sql, $now , $nowgmt, $html_menu, $titre_menu, $post_name, $now , $nowgmt, $guid);
if ( !$mysqli->query($sql) ) {
error("Erreur SQL : $mysqli->error");
} else {
msg ( sprintf("Insertion dans la BDD du menu : %s", $titre_menu) );
}
}
}
}
$mysqli->close();
}
}[/PHP]