Changement du script d'un widget de booking
Ferméjordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 3 août 2022 à 21:39
- Changement du script d'un widget de booking
- Script vidéo youtube - Guide
- Widget windows 11 - Guide
- Changer de dns - Guide
- C'est quoi un widget - Guide
- Changement d'écriture - Guide
3 réponses
2 août 2022 à 21:23
Bonjour,
Ta question concerne d'avantage les requêtes SQL que le langage PHP ... (je la déplace donc dans le bon forum)
Et pour y répondre, il suffirait d'ajouter/modifier une condition dans le WHERE de ta requête
en utilisant la fonction DATEDIFF()
Un truc du genre
OR ( %s > date_start AND %s < date_end AND DATEFIFF(date_end, date_start) >1 )
Bonjour,
Au temps pour moi.
Merci de ta réponse. Juste pour être sur le code devrait ressembler à ça :
$where .= $GLOBALS['wpdb']->prepare( " AND {$wpdb->prefix}posts.ID ".
'NOT IN ( '.
'SELECT listing_id '.
"FROM {$wpdb->prefix}bookings_calendar ".
'WHERE
(( %s > date_start AND %s < date_end )
OR
( %s > date_start AND %s < date_end AND DATEDIFF(date_end, date_start) >1)
AND type = "reservation" AND NOT status="cancelled" AND NOT status="expired"
GROUP BY listing_id '.
' ) ', $format_date_start, $format_date_start, $format_date_end, $format_date_end, $format_date_start, $format_date_end );
3 août 2022 à 00:46
À mon avis tu peux supprimer le début du where...
En mettant ce code, la fonction ne retourne plus rien (No result found) :
$where .= $GLOBALS['wpdb']->prepare( " AND {$wpdb->prefix}posts.ID ".
'NOT IN ( '.
'SELECT listing_id '.
"FROM {$wpdb->prefix}bookings_calendar ".
'WHERE
(( %s > date_start AND %s < date_end AND DATEDIFF(date_end, date_start) >1)
AND type = "reservation" AND NOT status="cancelled" AND NOT status="expired"
GROUP BY listing_id '.
' ) ', $format_date_start, $format_date_start, $format_date_end, $format_date_end, $format_date_start, $format_date_end );
3 août 2022 à 21:39
Il faudrait faire un echo de la requête pour ensuite pouvoir la tester DIRECTEMENT dans ta bdd (via phpmyadmin)
Essaye un truc du genre
echo $GLOBALS['wpdb']->request;