Changement valeur booléen
Résolu/Fermé
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
-
25 mars 2021 à 18:11
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 26 mars 2021 à 21:51
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 26 mars 2021 à 21:51
A voir également:
- Changement valeur booléen
- Changement d'écriture - Guide
- Changement dns - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Changement clavier azerty - Guide
- Changement carte graphique - Guide
9 réponses
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
25 mars 2021 à 20:04
25 mars 2021 à 20:04
Bonsoir,
De quel booleen parles tu ?
NB: Tu peux ( dois ;. ) effacer les ligne 37 à 46 ( qui non seulement n'est pas le bon code.. mais en plus est mal placé )
Pour rappel :
Tu dois placer TOUT le "contenu" de ta page ... entre les balises <body> et </body>
Il ne peut rien y avoir entre le </head> et le <body>
ni après le </body>
De quel booleen parles tu ?
NB: Tu peux ( dois ;. ) effacer les ligne 37 à 46 ( qui non seulement n'est pas le bon code.. mais en plus est mal placé )
Pour rappel :
Tu dois placer TOUT le "contenu" de ta page ... entre les balises <body> et </body>
Il ne peut rien y avoir entre le </head> et le <body>
ni après le </body>
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
25 mars 2021 à 20:12
25 mars 2021 à 20:12
hey d'acc merci je l'ai enlevé , pour les booléen c'est depuis ma base de donnée dans la table salle il y a les attributs id_table et reserver , reserver est un booléen et donc je sais que je dois faire un SELECT mais pour le where je ne sais pas quoi mettre donc si tu as une idée je suis preneur eheh
<?php session_start(); if (isset ($_POST['commander'])) //a t on cliqué sur valider ? { //on se connecte à la base connectMaBase(); $query = mysql_query("SELECT reserver FROM salle WHERE "?" "); if($query==0) { $_SESSION['mail']=$mail; header("Location: commander.php"); } else echo '<p class="error2">La place est reservé</p>'; } ?>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
25 mars 2021 à 20:23
25 mars 2021 à 20:23
Déjà,
Ce code php .. il se trouve où ?
A la place des lignes 3 à 5 du code précédent ?
Ensuite,
L'extension mysql_* est obsolète.
Il faut désormais utiliser PDO ou mysqli.
(moi j'ai une grosse préférence pour PDO )
Et enfin ... ben... tu veux update cette table ok ... mais tu as déjà des données dedans ?
Comment fais tu l'insert ?
Sur quoi veux tu te baser ?
Lorsqu'un utilisateur clique sur une chaise ( et clique ensuite sur le bouton commander sinon ça ne marchera pas ) ... il a déjà une réservation ?
Quelle est la structure de ta base de données ?
Quelles sont les étapes pour arriver à la page de choix des chaises ?
Ce code php .. il se trouve où ?
A la place des lignes 3 à 5 du code précédent ?
Ensuite,
L'extension mysql_* est obsolète.
Il faut désormais utiliser PDO ou mysqli.
(moi j'ai une grosse préférence pour PDO )
Et enfin ... ben... tu veux update cette table ok ... mais tu as déjà des données dedans ?
Comment fais tu l'insert ?
Sur quoi veux tu te baser ?
Lorsqu'un utilisateur clique sur une chaise ( et clique ensuite sur le bouton commander sinon ça ne marchera pas ) ... il a déjà une réservation ?
Quelle est la structure de ta base de données ?
Quelles sont les étapes pour arriver à la page de choix des chaises ?
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
25 mars 2021 à 20:42
25 mars 2021 à 20:42
alors mysql_ est surement obsolète mais comme je te le disais c'est un projet pour le lycée donc pas grande importance ensuite je veux faire un update de cette table c'est ça et oui il y a deja des données dedans il y à l'id et reserver qui est donc ici False car aucune chaise est reservé , sur quoi je veux me baser , ben en gros j'aimerai que quand je selectionne la chaise puis que j'appuie sur le bouton "commander" le booléen devienne "True" pour dire que cette chaise est reservé et si possible que cette chaise change de couleur pour montrer qu'elle est reservé , ma base de donnée est construite comme ça et je pense que ma table lcoation ne sert pas et pour finir pour arrive a la page de choix chaise il a fallut soit se créer un compte soit se connecter voilà je crois que je t'ai tout dit :)
CREATE TABLE Locations ( id_place INTEGER, id_client INTEGER, date date, duree INTEGER ); CREATE TABLE Salle ( id_place INT PRIMARY KEY NOT NULL AUTO_INCREMENT, reserver BOOL ); INSERT INTO Salle(id_place, reserver) VALUES (' ',false), ("",false), ("",false), ("",false), ("", false), ("",false), ("", false), ("", false), ("", false), ("", false), ("", false), ("",false), ("", false), ("", false), ("", false), ("", false), ("", false), ("",false), ("", false), ("", false), ("", false), ("", false); CREATE TABLE Clients ( id_client INT PRIMARY KEY NOT NULL AUTO_INCREMENT, nom TEXT NOT NULL, prenom TEXT NOT NULL, tel INTEGER(10) NOT NULL, mail TEXT NOT NULL, mdp VARCHAR(20) NOT NULL );
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
25 mars 2021 à 21:00
25 mars 2021 à 21:00
Et j’avais mis ce code à la toute fin parce que je savais pas où le placer ....
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
>
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
25 mars 2021 à 21:38
25 mars 2021 à 21:38
Comment sais-tu quelle place correspond à quelle chaise ?
par exemple la chaise B2 correspond à quelle chaise dans ta table ?
par exemple la chaise B2 correspond à quelle chaise dans ta table ?
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
Modifié le 25 mars 2021 à 22:09
Modifié le 25 mars 2021 à 22:09
Ben c’est ça le truc est ce que je dois mettre comme id non pas une incrémentation mais le nom de la chaise ça serait plus simple nan ? Je vais essayer ça
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
26 mars 2021 à 00:17
26 mars 2021 à 00:17
Je crois que c'est ça
-- phpMyAdmin SQL Dump -- version 3.3.9 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Ven 26 Mars 2021 à 00:16 -- Version du serveur: 5.5.8 -- Version de PHP: 5.3.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Base de données: `reservation` -- -- -------------------------------------------------------- -- -- Structure de la table `clients` -- CREATE TABLE IF NOT EXISTS `clients` ( `id_client` int(11) NOT NULL AUTO_INCREMENT, `nom` text NOT NULL, `prenom` text NOT NULL, `tel` int(10) NOT NULL, `mail` text NOT NULL, `mdp` varchar(20) NOT NULL, PRIMARY KEY (`id_client`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table `clients` -- -- -------------------------------------------------------- -- -- Structure de la table `locations` -- CREATE TABLE IF NOT EXISTS `locations` ( `id_place` int(11) DEFAULT NULL, `id_client` int(11) DEFAULT NULL, `date` date DEFAULT NULL, `duree` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Contenu de la table `locations` -- -- -------------------------------------------------------- -- -- Structure de la table `salle` -- CREATE TABLE IF NOT EXISTS `salle` ( `id_place` varchar(2) NOT NULL, `reserver` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id_place`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Contenu de la table `salle` -- INSERT INTO `salle` (`id_place`, `reserver`) VALUES ('A1', 0), ('A2', 0), ('A3', 0), ('A4', 0), ('A5', 0), ('A6', 0), ('B1', 0), ('B2', 0), ('B3', 0), ('B4', 0), ('B5', 0), ('B6', 0), ('C1', 0), ('C2', 0), ('C3', 0), ('C4', 0), ('C5', 0), ('C6', 0), ('D1', 0), ('D2', 0), ('D3', 0), ('D4', 0), ('D5', 0), ('D6', 0);
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
26 mars 2021 à 11:24
26 mars 2021 à 11:24
L'extension mysql_* étant obsolète et ne fonctionnant plus sur les nouvelles versions de php, je te propose de passer à PDO. ( utilisable à partir de php.5.6 (voir 5.2 ))
Donc:
1 - Création d'un fichier contenant la connexion à la bdd cnxbdd.php
Ensuite, ton fichier pour réserver ( attention, il faudra compléter la partie id_client ... (voir commentaire dans le code ))
Il faut également modifier ta table location .. le champ id_place n'est plus un tinyint mais un varchar. ( je te conseille aussi de le mettre sur 4 caractères et non deux .. si jamais ta salle contenait plus de 9 places par ragng... )
Donc:
1 - Création d'un fichier contenant la connexion à la bdd cnxbdd.php
<?php //cnxbdd.php // voir : https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs $user = "tyty"; $password = "tyty"; $host = "localhost"; // hostname ou IP du serveur $dbname = 'yy'; // nom de la base de données try{ $bdd =new PDO('mysql:host='.$host.';dbname='.$dbname.'; charset=utf8', $user, $password); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }
Ensuite, ton fichier pour réserver ( attention, il faudra compléter la partie id_client ... (voir commentaire dans le code ))
<?php //-----------------------------------------// //affichage des erreurs PHP //-----------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-----------------------------------------// //connexion à la bdd //-----------------------------------------// require_once "cnxbdd.php"; //-----------------------------------------// // Liste des places //-----------------------------------------// //préparation de la requête et des variables $sql = "SELECT * FROM salle ORDER BY id_place ASC"; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute() ; $places = $requete->fetchAll(); // on stocke le resultat de la requête dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } // Récupération PROPRE des variables AVANT de les utiliser $id_client = "1"; // Ici.. je te laisse compléter... je ne sais pas d'où vient l'id du client.. de variable de SESSION peut-être ?? //-----------------------------------------// //traitement de la commande //-----------------------------------------// if(isset($_POST['commander'])) { $choix = !empty($_POST['chaise']) ? $_POST['chaise'] : ""; // ON MET A JOUR LE STATUT DE LA PLACE CHOISIE : $sql = "UPDATE salle SET reserver=1 WHERE id_place =:id_place"; $datas = [':id_place'=>$choix]; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } // ON REGARDE SI LE CLIENT AVAIT DEJA UNE RESERVATION $sql = "SELECT * FROM locations WHERE id_client =:id_client"; $datas = [':id_client'=>$id_client]; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; $location = $requete->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } // SI LE CLIENT AVAIT DEJA UNE PLACE .. ON MET A JOUR LA TABLE LOCATION ET ON REMET A ZERO L'ANCIENNE CHAISE QUI ETAIT SELECTIONNEE if(!empty($location)){ $old_id_place = $location['id_place']; // ICI .. IL FAUDRA CODER LA MISE A ZERO DE L'ANCIENNE CHAISE $sql = "UPDATE salle SET reserver=0 WHERE id_place =:old_id_place"; $datas = [':old_id_place'=>$old_id_place]; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } // POUR METTRE à 1 LA NOUVELLE CHAISE $sql = "UPDATE locations SET id_place=:id_place WHERE id_client =:id_client"; $datas = [':id_place'=>$choix,':id_client'=>$id_client]; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } }else{ // SINON.. ON AJOUTE UNE LIGNE DANS LA TABLE LCOATION $sql = "INSERT INTO locations (id_place,id_client,date) VALUES(:id_place,:id_client,now())"; $datas = [':id_place'=>$choix,':id_client'=>$id_client]; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } } } ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Réservation</title> <link rel="stylesheet" href="CSS/Reserver.css"> <link href="CSS/Reserver.css" rel="stylesheet" media="all" type="text/css"> <style> /* HIDE RADIO */ [type=radio] { position: absolute; opacity: 0; width: 0; height: 0; } /* IMAGE STYLES */ [type=radio] + img { cursor: pointer; } /* CHECKED STYLES */ [type=radio]:checked + img { outline: 2px solid #f00; } .dejareservee{ cursor:not-allowed; } </style> </head> <body class="background-image" style="background-image: url(image/fond.png)"> <header> <img class="logo" src="image/logo.png" ></img> <h2><a href="index.html">Cassin Seat</a></h2> <hr> <h1 class="titre2" >RESERVATION </h1><br> <div class="hr2"> <hr> </div> <nav> <li><a href="index.html">Home</a></li> <li><a href="#">À Propos</a></li> <li><a href="#">Contacts</a></li> </nav> </header> <nav> <img class="classe" src="image/classe.png" align="center"></img> <img class="commande" src="image/commande.png" align="right"></img> </nav> <form method="post" action=""> <button type="submit" class="btn" name="commander">COMMANDER</button> <div class="grid2_radios-chaises"> <?php //on boucle sur le résultat de la recherche if(!empty($places)){ foreach($places as $R){ $reserver = $R['reserver']; $dejaReservee = !empty($reserver) ? "dejareservee" : ""; echo '<label> <input id="radio_'.$R['id_place'].'"" type="radio" class="chaise '.$dejaReservee.'" name="chaise" id="" title="'.$R['id_place'] .'" value="'.$R['id_place'] .'"> <img class="chaise" src="image/chaise.png"> </label> <label for="radio_'.$R['id_place'].'">'.$R['id_place'].'</label>'; ; } } ?> </div> </form> <p class='place_texte'> </p> <script type="text/javascript"> buttons = document.querySelectorAll(".chaise"); for (i = 0; i < buttons.length; i++) { element = buttons[i]; element.addEventListener("click", function(event){ var targetElement = event.target || event.srcElement; console.log(targetElement); var valChaise = targetElement.value; document.querySelector('.place_texte').innerHTML=" Vous avez choisi le Seat: " +valChaise; }); } </script> </body> </html>
Il faut également modifier ta table location .. le champ id_place n'est plus un tinyint mais un varchar. ( je te conseille aussi de le mettre sur 4 caractères et non deux .. si jamais ta salle contenait plus de 9 places par ragng... )
-- -------------------------------------------------------- -- Hôte : localhost -- Version du serveur: 5.7.24 - MySQL Community Server (GPL) -- SE du serveur: Win64 -- HeidiSQL Version: 10.2.0.5599 -- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET NAMES utf8 */; /*!50503 SET NAMES utf8mb4 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -- Listage de la structure de la table yy. locations DROP TABLE IF EXISTS `locations`; CREATE TABLE IF NOT EXISTS `locations` ( `id_client` int(11) DEFAULT NULL, `id_place` varchar(4) DEFAULT NULL, `date` date DEFAULT NULL, `duree` int(11) DEFAULT NULL, KEY `id_client` (`id_client`), KEY `id_place` (`id_place`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- Listage des données de la table yy.locations : ~0 rows (environ) DELETE FROM `locations`; /*!40000 ALTER TABLE `locations` DISABLE KEYS */; INSERT INTO `locations` (`id_client`, `id_place`, `date`, `duree`) VALUES (1, 'B3', '2021-03-26', NULL); /*!40000 ALTER TABLE `locations` ENABLE KEYS */; -- Listage de la structure de la table yy. salle DROP TABLE IF EXISTS `salle`; CREATE TABLE IF NOT EXISTS `salle` ( `id_place` varchar(4) NOT NULL, `reserver` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id_place`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- Listage des données de la table yy.salle : ~24 rows (environ) DELETE FROM `salle`; /*!40000 ALTER TABLE `salle` DISABLE KEYS */; INSERT INTO `salle` (`id_place`, `reserver`) VALUES ('A1', 0), ('A2', 0), ('A3', 0), ('A4', 0), ('A5', 0), ('A6', 0), ('B1', 0), ('B2', 0), ('B3', 1), ('B4', 0), ('B5', 1), ('B6', 0), ('C1', 0), ('C2', 0), ('C3', 0), ('C4', 0), ('C5', 0), ('C6', 0), ('D1', 0), ('D2', 0), ('D3', 0), ('D4', 0), ('D5', 0), ('D6', 0); /*!40000 ALTER TABLE `salle` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
26 mars 2021 à 12:13
26 mars 2021 à 12:13
Waouh merci beaucoup c'est enorme tout le travail que tu fais pour m'aider juste en utilisant ton code j'ai une petite erreur pour les lignes avec des crochet
et l'erreur est Parse error: syntax error, unexpected '[' in G:\T4\NSI\UwAmp\www\PROJET WEB\reserver.php on line 41 tu as une idée ?
$datas = [':id_place'=>$choix];
et l'erreur est Parse error: syntax error, unexpected '[' in G:\T4\NSI\UwAmp\www\PROJET WEB\reserver.php on line 41 tu as une idée ?
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
26 mars 2021 à 13:23
26 mars 2021 à 13:23
Quelle version de PHP as-tu ?
Tu peux éventuellement remplacer les crochets
des variables $datas par :
Tu peux éventuellement remplacer les crochets
des variables $datas par :
$datas =array(':id_place'=>$choix);
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
26 mars 2021 à 14:16
26 mars 2021 à 14:16
je crois que ça marche mais j'avoue que je ne sais pas quoi mettre dans le id_client car le id vient de nul part je l'ai jamais demandé dans aucune page php :(
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
>
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
26 mars 2021 à 14:23
26 mars 2021 à 14:23
Ben elles te servent à quoi ta table client et le champ id_client dans la table location ?
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
26 mars 2021 à 14:26
26 mars 2021 à 14:26
la table client c'est pour pouvoir se connecter ( mais c'est une connection bidon comme c'est pas un site serieux c'est du bidouillages) mais j'avoue que je sais pas vraiment pourquoi j'ai mis id_client surement parce que on m'a toujours dit de mettre un id
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
Modifié le 26 mars 2021 à 14:33
Modifié le 26 mars 2021 à 14:33
mais comme je te disais c'est vraiment un petit projet pas très important qui peut être bidouillé c'est pour ca tout ce que tu fais c'est génial mais j'ai franchement pas le niveau pour je pense , parce que dans le site il va surement avoir plein de petit bug ou bien des trucs pas cohérent mais moi ce que je veux c'est juste que le client puisse réserver une chaise voilà... par exemple notre prof nous avait donnée un code php a utilisé pour démarrer la base
<?php function connectMaBase(){ $base = mysql_connect ('localhost', 'root', 'root'); mysql_select_db ('reservation', $base) ; } ?>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
26 mars 2021 à 19:24
26 mars 2021 à 19:24
C'est la galère l'ancienne syntaxe mysql_* .. surtout que je ne peux pas tester ayant une version de php récente.
Mais ça devrait être mieux
Mais ça devrait être mieux
<?php include("fonctions.php"); ?> <?php //-----------------------------------------// //affichage des erreurs PHP //-----------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-----------------------------------------// //connexion à la bdd //-----------------------------------------// connectMaBase(); //préparation de la requête et des variables $places = mysql_query( "SELECT * FROM salle ORDER BY id_place ASC") or die(mysql_error()); // Récupération PROPRE des variables AVANT de les utiliser $id_client = "1"; // Ici.. je te laisse compléter... je ne sais pas d'où vient l'id du client.. de variable de SESSION peut-être ?? //-----------------------------------------// //traitement de la commande //-----------------------------------------// if(isset($_POST['commander'])) { $choix = !empty($_POST['chaise']) ? $_POST['chaise'] : ""; // ON MET A JOUR LE STATUT DE LA PLACE CHOISIE : mysql_query ("UPDATE salle SET reserver=1 WHERE id_place ='$id_place'") or die(mysql_error()); // ON REGARDE SI LE CLIENT AVAIT DEJA UNE RESERVATION $sql_location = mysql_query ("SELECT * FROM locations WHERE id_client ='$id_client'") or die(mysql_error()); // SI LE CLIENT AVAIT DEJA UNE PLACE .. ON MET A JOUR LA TABLE LOCATION ET ON REMET A ZERO L'ANCIENNE CHAISE QUI ETAIT SELECTIONNEE $location = mysql_fetch_array($sql_location); if(!empty($location)){ $old_id_place = $location['id_place']; // ICI .. IL FAUDRA CODER LA MISE A ZERO DE L'ANCIENNE CHAISE mysql_query ("UPDATE salle SET reserver=0 WHERE id_place = '$old_id_place'") or die(mysql_error()); // POUR METTRE à 1 LA NOUVELLE CHAISE mysql_query( "UPDATE locations SET id_place='$id_place' WHERE id_client ='$id_client'") or die(mysql_error()); }else{ // SINON.. ON AJOUTE UNE LIGNE DANS LA TABLE LCOATION mysql_query ("INSERT INTO locations (id_place,id_client,date) VALUES('$id_place','$id_client',now())") or die(mysql_error()); } } ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Réservation</title> <link rel="stylesheet" href="CSS/Reserver.css"> <link href="CSS/Reserver.css" rel="stylesheet" media="all" type="text/css"> <style> /* HIDE RADIO */ [type=radio] { position: absolute; opacity: 0; width: 0; height: 0; } /* IMAGE STYLES */ [type=radio] + img { cursor: pointer; } /* CHECKED STYLES */ [type=radio]:checked + img { outline: 2px solid #f00; } .dejareservee{ cursor:not-allowed; } </style> </head> <body class="background-image" style="background-image: url(image/fond.png)"> <header> <img class="logo" src="image/logo.png" ></img> <h2><a href="index.html">Cassin Seat</a></h2> <hr> <h1 class="titre2" >RESERVATION </h1><br> <div class="hr2"> <hr> </div> <nav> <li><a href="index.html">Home</a></li> <li><a href="#">À Propos</a></li> <li><a href="#">Contacts</a></li> </nav> </header> <nav> <img class="classe" src="image/classe.png" align="center"></img> <img class="commande" src="image/commande.png" align="right"></img> </nav> <form method="post" action=""> <button type="submit" class="btn" name="commander">COMMANDER</button> <div class="grid2_radios-chaises"> <?php //on boucle sur le résultat de la recherche if(!empty($places)){ while ($R = mysql_fetch_array($places)){ $reserver = $R['reserver']; $dejaReservee = !empty($reserver) ? "dejareservee" : ""; echo '<label> <input id="radio_'.$R['id_place'].'"" type="radio" class="chaise '.$dejaReservee.'" name="chaise" id="" title="'.$R['id_place'] .'" value="'.$R['id_place'] .'"> <img class="chaise" src="image/chaise.png"> </label> <label for="radio_'.$R['id_place'].'">'.$R['id_place'].'</label>'; ; } } ?> </div> </form> <p class='place_texte'> </p> <script type="text/javascript"> buttons = document.querySelectorAll(".chaise"); for (i = 0; i < buttons.length; i++) { element = buttons[i]; element.addEventListener("click", function(event){ var targetElement = event.target || event.srcElement; console.log(targetElement); var valChaise = targetElement.value; document.querySelector('.place_texte').innerHTML=" Vous avez choisi le Seat: " +valChaise; }); } </script> </body> </html>
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
Modifié le 26 mars 2021 à 19:52
Modifié le 26 mars 2021 à 19:52
super je pense qu'on arrive près du but mes chaises ont réapparu mais il y a toujours une erreur le id_place qui n'est pas défini mais je sens que tu tiens le bon bous !!!! Et d’ailleurs pour le id_client je me demandais si on pouvait le récupérer avec un select car on veut l’id de la personne qui s’est connecté et j’ai le mail et le mdp et grâce à ces infos je pourrais pas récupérer son id?
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
26 mars 2021 à 20:07
26 mars 2021 à 20:07
Je crois avoir vu que tu stocker le mail en variable de session.
L'idéal serait de stocker son id.
Il te sera alors facile de récupérer cette variable dans ton code actuel.
Concernant le message d'erreur sur la variable id_place... En effet... Tu n'as pas utiliser la bonne variable...
Regarde la ligne 28 ....
Et corrige à la ligne 31
L'idéal serait de stocker son id.
Il te sera alors facile de récupérer cette variable dans ton code actuel.
Concernant le message d'erreur sur la variable id_place... En effet... Tu n'as pas utiliser la bonne variable...
Regarde la ligne 28 ....
Et corrige à la ligne 31
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
26 mars 2021 à 20:23
26 mars 2021 à 20:23
Bon tu dois vraiment pensé que je suis nul mais je vois rien de particulier sur la ligne 28 et je ne vois pas de faute sur la ligne 31.... mais je vais essayer de régler le problème d'id
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
>
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
26 mars 2021 à 21:15
26 mars 2021 à 21:15
Tu as utilisé aux lignes 31, 44 et 49 la variable $id_place
Cette variable est initialisée nul-part
Par contre, on dispose de la variable $choix .. qui elle .. contient le "choix" du client lorsqu'il a sélectionné une chaise puis cliqué sur le bouton commander...
Le plus simple, donc, serait de renommer la variable $choix par $id_place
devient donc
Cette variable est initialisée nul-part
Par contre, on dispose de la variable $choix .. qui elle .. contient le "choix" du client lorsqu'il a sélectionné une chaise puis cliqué sur le bouton commander...
Le plus simple, donc, serait de renommer la variable $choix par $id_place
$choix = !empty($_POST['chaise']) ? $_POST['chaise'] : "";
devient donc
$id_place = !empty($_POST['chaise']) ? $_POST['chaise'] : "";
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
26 mars 2021 à 21:20
26 mars 2021 à 21:20
ah ouais d'accord j'ai compris merci eheh par contre pour recuperer l'id je pensais avoir bon mais faut croire que non ! regarde ce que j'ai fais
dans la page ou on se connecte j'ai mis ça (là ou il y à ** devant)
pour ensuite le recuperer dans l'autre page en mode
dans la page ou on se connecte j'ai mis ça (là ou il y à ** devant)
<?php connectMaBase(); session_start(); if (isset ($_POST['btn3'])) //a t on cliqué sur valider ? { $mail = $_POST['mail']; $mdp = $_POST['mdp']; if($mail&&$mdp) /* on teste si les champ sont bien remplis */ { ** $id= mysql_query("SELECT id_client FROM clients WHERE mail='$mail'&&mdp='$mdp'")or die('ERREUR SQL ! <br>'.$sql.'<br>'.mysql_error()); $query = mysql_query("SELECT * FROM clients WHERE mail='$mail'&&mdp='$mdp'")or die('ERREUR SQL ! <br>'.$sql.'<br>'.mysql_error()); $rows = mysql_num_rows($query); if($rows==1) { ** $_SESSION['id_client']=$id; header("Location: reserver.php"); //on ferme la connexion mysql_close(); } else echo '<p class="error2"> mail ou mot de passe incorrect!</p>'; } else echo '<p class="error2">Veuillez saisir les champs</p>'; } ?>mais faut croire qu'il reussi pas à recuperer l'id mais pourtant je pensais que ma methode etait bon...
pour ensuite le recuperer dans l'autre page en mode
session_start(); $id_client = $_SESSION["id_client"];
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
26 mars 2021 à 21:36
26 mars 2021 à 21:36
<?php //Démarrage des sessions ( toujours Au début du code PHP avant tout le reste ! ) session_start(); //connexion à la bdd connectMaBase(); //a t on cliqué sur valider ? if (isset ($_POST['btn3'])) { $mail = $_POST['mail']; $mdp = $_POST['mdp']; /* on teste si les champ sont bien remplis */ if($mail && $mdp) { $query = mysql_query("SELECT * FROM clients WHERE mail='$mail'&&mdp='$mdp'")or die('ERREUR SQL ! <br>'.$sql.'<br>'.mysql_error()); $rows = mysql_num_rows($query); $resultatdelarequete = mysql_fetch_array($query); //permet de récuperer la première ligne de résultat de la requête if($rows==1) { $_SESSION['id_client'] = $resultatdelarequete['id']; $_SESSION['mail'] = $mail; //on ferme la connexion ( si tu la fermes avant de changer de page...ça marchera mieux :-) ) mysql_close(); header("Location: reserver.php"); exit; // toujours mettre un exit après une instruction de redirection. } else { echo '<p class="error2"> mail ou mot de passe incorrect!</p>'; } } else { echo '<p class="error2">Veuillez saisir les champs</p>'; } } ?>
et donc dans ton autre page
<?php //-----------------------------------------// //Démarrage des sessions toujours en premier //-----------------------------------------// session_start(); //-----------------------------------------// //affichage des erreurs PHP //-----------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-----------------------------------------// // On inclus les fonctions //-----------------------------------------// include("fonctions.php"); //-----------------------------------------// //connexion à la bdd //-----------------------------------------// connectMaBase(); //-----------------------------------------// // Récupération des variables AVANT de les utiliser //-----------------------------------------// $id_client = !empty($_SESSION["id_client"]) ? $_SESSION["id_client"] : NULL; //.. puis la suite du code
Bon... va falloir apprendre un peu plus ......
Je ne comprend pas comment un prof peut vous donner un exo de ce genre alors que vous ne connaissez strictement rien au langage .. (ni même que vous n'ayez, me semble t'il, appris un minimum l'algo .. la logique ... )
Yazho
Messages postés
87
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
14 septembre 2022
2
26 mars 2021 à 21:49
26 mars 2021 à 21:49
YEES! ça marche ! alors oui complètement d'accord avec toi en fait le projet était sur les bases de données tu vois mais on a fait en cours que 2h de tp php et donc j'ai vraiment aucune connaissance , bon après c'est moi qui est choisi de faire un site de réservation c'était peut-être trop ambitieux pour un tout tout débutant comme moi ! mais grâce a toi je suis en train d'y arriver !!! bon maintenant je passe à la prochaine étape .... Merci mille fois en tout cas
ps: même si je pense que tu vas encore entendre parlé de moi ... ;)
ps: même si je pense que tu vas encore entendre parlé de moi ... ;)
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
26 mars 2021 à 21:51
26 mars 2021 à 21:51
Pense à mettre ce sujet en résolu.
Le lien pour le fer se trouve au niveau de ta question initiale
Le lien pour le fer se trouve au niveau de ta question initiale