Когда я пытаюсь выполнить следующий запрос в MySQL, я получаю идеальный результат:
SELECT DATE_FORMAT(p.date_arrivee, '%d/%m/%Y'),
DATE_FORMAT(p.date_depart, '%d/%m/%Y'), p.prix, s.photo,
s.ville, s.capacite FROM produit p, salle s
WHERE p.id_salle = s.id_salle AND etat=0 ORDER BY id_produit DESC
LIMIT 0,3
вставляя это в PHP:
$query = "SELECT DATE_FORMAT(p.date_arrivee, \'%d/%m/%Y\'), DATE_FORMAT(p.date_depart, \'%d/%m/%Y\'), p.prix, s.photo, s.ville, s.capacite FROM produit p, salle s WHERE p.id_salle = s.id_salle AND etat=0 ORDER BY id_produit DESC LIMIT 0,3 ";
Я получаю пустое место, и если я удаляю обратную косую черту из кавычек, я получаю неопределенную ошибку индекса.
Может ли кто-нибудь объяснить, что я делаю неправильно, чтобы попытаться убрать время из DATETIME
,
Вот полный код PHP для создания моей таблицы:
$query = "SELECT DATE_FORMAT(p.date_arrivee, '%d/%m/%Y'), DATE_FORMAT(p.date_depart, '%d/%m/%Y'), p.prix, s.photo, s.ville, s.capacite
FROM produit p, salle s
WHERE p.id_salle = s.id_salle AND etat=0
ORDER BY id_produit";if ($result = $mysqli->query($query))
{
while ($row = $result->fetch_assoc()) {
echo '<img src="'.RACINE_SITE. '/img/thumbnail/' . $row['photo'] . '"/>';
echo '<p> Du ' . $row['date_arrivee'] . ' au ' . $row['date_depart'] . ' - ' . $row['ville'] . '<br/>'
. $row['prix'] . '€ pour ' . $row['capacite'] . ' personnes.</p>';if(!isset($_SESSION['utilisateur'])) {
echo '<a href="connexion.php"><p>Connectez-vous pour ajouter l\'article à votre panier</p></a>';
}
else
{
echo '<button type="button">Ajouter au panier</button>';
}
}
};
Инструкция CREATE TABLE следующая (вместе с данными и т. Д.)
CREATE TABLE IF NOT EXISTS `produit` (
`id_produit` int(5) NOT NULL AUTO_INCREMENT,
`date_arrivee` datetime NOT NULL,
`date_depart` datetime NOT NULL,
`id_salle` int(5) NOT NULL,
`id_promo` int(2) DEFAULT NULL,
`prix` int(5) NOT NULL,
`etat` int(1) NOT NULL,
PRIMARY KEY (`id_produit`),
KEY `id_promo` (`id_promo`),
KEY `id_salle` (`id_salle`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=25 ;
--
-- Contenu de la table `produit`
--
INSERT INTO `produit` (`id_produit`, `date_arrivee`, `date_depart`, `id_salle`, `id_promo`, `prix`, `etat`) VALUES
(14, '2015-06-08 09:00:00', '2015-06-10 18:00:00', 1, NULL, 900, 1),
(16, '2015-06-11 09:00:00', '2015-06-12 18:00:00', 2, NULL, 750, 0),
(17, '2015-06-08 09:00:00', '2015-06-10 18:00:00', 2, NULL, 900, 0),
(18, '2015-06-11 09:00:00', '2015-06-13 19:00:00', 1, NULL, 800, 0),
(19, '2015-06-08 09:00:00', '2015-06-10 22:00:00', 3, NULL, 1100, 0),
(20, '2015-06-08 07:45:00', '2015-06-10 22:00:00', 4, NULL, 1300, 0),
(21, '2015-06-11 09:00:00', '2015-06-13 21:00:00', 4, NULL, 2300, 0),
(22, '2015-06-08 06:00:00', '2015-06-13 19:00:00', 5, NULL, 2500, 0),
(23, '2015-06-11 09:00:00', '2015-06-13 19:00:00', 2, NULL, 1400, 0),
(24, '2015-06-11 09:00:00', '2015-06-13 19:00:00', 3, NULL, 1800, 0);
--
-- Contraintes pour les tables exportées
--
--
-- Contraintes pour la table `produit`
--
ALTER TABLE `produit`
ADD CONSTRAINT `produit_ibfk_1` FOREIGN KEY (`id_salle`) REFERENCES `salle` (`id_salle`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `produit_ibfk_2` FOREIGN KEY (`id_promo`) REFERENCES `promotion` (`id_promo`) ON DELETE CASCADE ON UPDATE CASCADE;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
И оператор CREATE TABLE для ‘salle’
--------------------------------------------------------
--
-- Structure de la table `salle`
--
CREATE TABLE IF NOT EXISTS `salle` (
`id_salle` int(5) NOT NULL AUTO_INCREMENT,
`pays` varchar(20) NOT NULL,
`ville` varchar(20) NOT NULL,
`adresse` text NOT NULL,
`cp` varchar(5) NOT NULL,
`titre` varchar(200) NOT NULL,
`description` text NOT NULL,
`photo` varchar(200) NOT NULL,
`capacite` int(3) NOT NULL,
`categorie` enum('reunion') DEFAULT NULL,
PRIMARY KEY (`id_salle`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;
--
-- Contenu de la table `salle`
--
INSERT INTO `salle` (`id_salle`, `pays`, `ville`, `adresse`, `cp`, `titre`, `description`, `photo`, `capacite`, `categorie`) VALUES
(1, 'France', 'Paris', '55, rue Boussingault', '75013', 'Salle Boussingault', 'Lokisalle propose des salles de réunion modernes et spacieuses ajusté à vos besoins. \nNos salles de réunion sont adaptées pour vos conférences, des réunions du conseil,\ndes rencontres internationales ou des événements. \nLa salle de réunion peut accueillir jusqu''à 80 délégués.\nVous avez également la possibilité de diviser la salle de réunion en trois chambres \nséparées avec des cloisons insonorisées.\nLes espaces publics offrent une atmosphère chaleureuse qui est idéal pour servir \ndes rafraîchissements lors de votre conférence.', 'salle11.jpg', 80, 'reunion'),
(2, 'France', 'Paris', '46, Boulevard Garibaldi', '75015', 'Salle Garibaldi', 'La salle de conférence Garibaldi offre 26 places assises dans le style de salle de direction, avec de superbes vues sur le boulevard Garibaldi. Une grande table avec 7 m de longueur et 150 cm de largeur se dresse au milieu de la salle .\n\nLes salles privées peuvent être séparés ou reliés au besoin et maintenus ensemble comme une unité de la belle tapisserie de couleur pourpre spécialement produite pour Lokisall, d''un motif inspiré par Orsta galerie d''art à Kumla préalablement conçu par le studio.\n\nPour les réunions , vous avez dans toutes nos salles privées sans fil haut débit .', 'salle12.jpg', 26, 'reunion'),
(3, 'France', 'Paris', '231 Boulevard st Germain', '75005', 'Salle Saint Germain', 'La salle Saint Germain est le lieu de rencontre idéal pour l''inspiration et la pensée créatrice. \nLa salle de la conception , de l''espace et de la lumière vous donne l''énergie dont vous avez besoin pour créer de nouvelles idées.\nLes places à la table de conférence , se pencher en arrière sur les canapés ou à demi couché dans les confortables fauteuils en face des fenêtres panoramiques et laissez-vous fasciner\nLa salle peut accueillir 40 personnes et est équipée d''un projecteur , de rideaux occultant et tableau blanc.', 'salle13.jpg', 40, 'reunion'),
(4, 'France', 'Lyon', '3 Rue de l''Humilité', '69003', 'Salle Humilis', 'La salle Humilis est notre salle de conférence la plus populaire avec la possibilité d''un aménagement souple. La chambre est située à un demi cran au dessus de l''entrée de gamme et offre un cadre tranquille et isolé . Deux grandes fenêtres donnant sur notre belle cour intérieur.', 'salle9.jpg', 25, 'reunion'),
(5, 'France', 'Lyon', '240 Rue Vendôme', '69003', 'Salle Vendôme', 'Notre plus grande salle de réunion est disponible dans la cour intérieur . Une installation nouvellement construite , qui sert aussi de salle de dégustation pour les grandes dégustations. Les locaux, fraîches et lumineuses sont naturellement dotées d''un mobilier confortable et la dernière technologie : Wi- Fi , projecteur, grand écran , DVD, VHS , système de son avec microphone , ventilation, éclairage réglable et plus.', '', 120, 'reunion'),
(6, 'France', 'Marseille', '45 Quai des Belges', '13001', 'Salle Belge', '', '', 25, 'reunion'),
(7, 'France', 'Marseille', 'Escalier Gare Saint-Charles', '13001', 'Salle Saint Charles', '', '', 400, 'reunion'),
(9, 'France', 'Marseille', '416 Boulevard National', '13003', 'Salle Nationale', '', '', 80, 'reunion'),
(10, 'France', 'Lyon', '168 Rue Paul Bert', '69003', 'Salle Paul Bert', '', '', 30, 'reunion'),
(11, 'France', 'Lyon', '25 Place des Terreaux', '69001', 'Salle des Terreaux', '', '', 45, 'reunion'),
(12, 'France', 'Lyon', '11-13 Rue du Général Plessier', '69002', 'Salle Plessier', '', '', 60, 'reunion'),
(13, 'France', 'Lyon', '6 Rue de l''Université', '69007', 'Salle de l''Université', '', '', 400, 'reunion'),
(14, 'France', 'Lyon', '262 Rue de Crèqui', '69003', 'Salle Crèqui', '', '', 12, 'reunion'),
(15, 'France', 'Paris', '7 Place Denfert-Rochereau', '75014', 'Salle Denfert-Rochereau', '', '', 75, 'reunion'),
(16, 'France', 'Paris', '35 Quai André Citroën', '75015', 'Salle André Citroën', 'Test 3', 'salle15.jpg', 18, 'reunion'),
(17, 'France', 'Paris', '60 Rue de Passy', '75016', 'Salle Passy', 'Test 2', 'salle16.jpg', 24, 'reunion'),
(18, 'France', 'Paris', '154-156 Rue la Fayette', '75010', 'Salle de la Fayette', 'Test 1', 'salle17.jpg', 50, 'reunion');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Мы много раз обновляли сообщение о том, что я действительно даже не помню, какие изменения мы сделали, но я попробовал код, и он работает
<?php
//Change this values to your values
$mysqli = new mysqli("localhost", "root", "admin", "test");
define('RACINE_SITE', '/');
$query = "SELECT DATE_FORMAT(p.date_arrivee, '%d/%m/%Y') as date_arrivee,
DATE_FORMAT(p.date_depart, '%d/%m/%Y') as date_depart, p.prix, s.photo,
s.ville, s.capacite FROM produit p, salle s
WHERE p.id_salle = s.id_salle AND etat=0 ORDER BY id_produit DESC
LIMIT 0,3";if ($result = $mysqli->query($query))
{
while ($row = $result->fetch_assoc()) {
echo '<img src="'.RACINE_SITE. '/img/thumbnail/' . $row['photo'] . '"/>';
echo '<p> Du ' . $row['date_arrivee'] . ' au ' . $row['date_depart'] . ' - ' . $row['ville'] . '<br/>'
. $row['prix'] . '€ pour ' . $row['capacite'] . ' personnes.</p>';if(!isset($_SESSION['utilisateur'])) {
echo '<a href="connexion.php"><p>Connectez-vous pour ajouter l\'article à votre panier</p></a>';
}
else
{
echo '<button type="button">Ajouter au panier</button>';
}
}
};
Выход:
Других решений пока нет …