MySQL - Changement Web et Bdd
Fermé
Pifff
-
Modifié le 6 avril 2020 à 22:26
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 - 9 avril 2020 à 08:56
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 - 9 avril 2020 à 08:56
A voir également:
- MySQL - Changement Web et Bdd
- Web office - Guide
- Changement dns - Guide
- Changement d'écriture - Guide
- Traduire une page web - Guide
- Adresse web - Guide
9 réponses
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
6 avril 2020 à 22:58
6 avril 2020 à 22:58
bonjour,
où fais-tu "valider"?
as-tu déjà fais des exercices plus simples avec php et des formulaires?
où fais-tu "valider"?
as-tu déjà fais des exercices plus simples avec php et des formulaires?
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
7 avril 2020 à 08:35
7 avril 2020 à 08:35
Bonjour,
Pour que tes données soient transmises à ton php, il faut les placer dans un FORM dans le quel tu choisi le "mode" de tansmission : soit GET, soit POST
Je te conseille le POST.
Il te faut ensuite récupérer les variables transmises en POST pour les utiliser dans tes requêtes SQL
Voici un petit tuto sur l'utilisation des form
https://www.commentcamarche.net/contents/793-php-recuperation-de-donnees
Je t'invite également à lire ET à appliquer les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ainsi que celui la :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
Pour que tes données soient transmises à ton php, il faut les placer dans un FORM dans le quel tu choisi le "mode" de tansmission : soit GET, soit POST
Je te conseille le POST.
Il te faut ensuite récupérer les variables transmises en POST pour les utiliser dans tes requêtes SQL
Voici un petit tuto sur l'utilisation des form
https://www.commentcamarche.net/contents/793-php-recuperation-de-donnees
Je t'invite également à lire ET à appliquer les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ainsi que celui la :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
<input type="submit"> -> ligne 88
Je suis en plein Projet, j'ai encore 2 mois pour finir ça..
C'est pour ça que j'ai besoin de vous pour m'aider sur cette exercice.
Si vous avez des idées, pour modifier mon code ou l'améliorer ?
Merci d'avance
Je suis en plein Projet, j'ai encore 2 mois pour finir ça..
C'est pour ça que j'ai besoin de vous pour m'aider sur cette exercice.
Si vous avez des idées, pour modifier mon code ou l'améliorer ?
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ReBonjour à tous,
Alors depuis quelques jours j'ai beaucoup avancé sur mon code.
Mais je suis bloqué, je ne comprends pour ça ne marche pas.
Normalement ça devrais modifié les valeurs dans la BDD quand je valide sur la page...
http://82.233.223.249:8088/seuil_alerte/alerte.php
Concernant les erreurs PDO.. je le ferais plus tard.. je m'occupe que ça marche principalement..
Voici mon code :
Database.php :
Page alerte.php :
Code seuils.css :
Voilà, si vous avez des solutions ?
Merci d'avance
Alors depuis quelques jours j'ai beaucoup avancé sur mon code.
Mais je suis bloqué, je ne comprends pour ça ne marche pas.
Normalement ça devrais modifié les valeurs dans la BDD quand je valide sur la page...
http://82.233.223.249:8088/seuil_alerte/alerte.php
Concernant les erreurs PDO.. je le ferais plus tard.. je m'occupe que ça marche principalement..
Voici mon code :
Database.php :
<?php $SmCO=$_POST["SmCO"]; $SMCO=$_POST["SMCO"]; $SmBAT=$_POST["SmBAT"]; $SMBAT=$_POST["SMBAT"]; $SmSTR=$_POST["SmSTR"]; $SMSTR=$_POST["SMSTR"]; $SmLUX=$_POST["SmLUX"]; $SMLUX=$_POST["SMLUX"]; $SmCO2=$_POST["SmCO2"]; $SMCO2=$_POST["SMCO2"]; $SmPIR=$_POST["SmPIR"]; $SMPIR=$_POST["SMPIR"]; $SmLP=$_POST["SmLP"]; $SMLP=$_POST["SMLP"]; $SmTC=$_POST["SmTC"]; $SMTC=$_POST["SMTC"]; $SmHUM=$_POST["SmHUM"]; $SMHUM=$_POST["SMHUM"]; $SmPRES=$_POST["SmPRES"]; $SMPRES=$_POST["SMPRES"]; $SmHALL=$_POST["SmHALL"]; $SMHALL=$_POST["SMHALL"]; class Database { // on se connecte à MySQL $db = mysql_connect('xxxxxx', 'xxxxx', 'xxx'); // on sélectionne la base mysql_select_db('xxxxx',$db); //Envoie de la rêquetes à la base de donnée $mysqli->real_query(Update seuil_alertes SET seuil_mini = 'SmCO', seuil_max ='SMCO' Where Capteur='CO') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmBAT', seuil_max ='SMBAT' Where Capteur='BAT') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmSTR', seuil_max ='SMSTR' Where Capteur='STR') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmLUX', seuil_max ='SMLUX' Where Capteur='LUX') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmCO2', seuil_max ='SMCO2' Where Capteur='CO2') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmPIR', seuil_max ='SMPIR' Where Capteur='PIR') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmLP', seuil_max ='SMLP' Where Capteur='LP') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmTC', seuil_max ='SMTC' Where Capteur='TC') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmHUM', seuil_max ='SMHUM' Where Capteur='HUM') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmPRES', seuil_max ='SMPRES' Where Capteur='PRES') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmHALL', seuil_max ='SMHALL' Where Capteur='HALL') or die("insertion impossible"); $res = $mysqli->use_result(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); } ?>
Page alerte.php :
<!DOCTYPE html> <html> <head> <include 'Database.php'> <title>Seuils_Alerte</title> <meta charset="utf-8"> <link rel="stylesheet" href="seuils.css" /> </head> <body> <p>Modification des seuils d'alertes : </p> <form method="post"> <table> <tr> <td><b>Capteur</b></td> <td><b>Seuils_Mini</td> <td><b>Seuils_Max</b></td> </tr> <tr> <td>CO</td> <td><input type="text" name="SmCO" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMCO" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>BAT</td> <td><input type="text" name="SmBAT" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMBAT" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>STR</td> <td><input type="text" name="SmSTR" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMSTR" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>LUX</td> <td><input type="text" name="SmLUX" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMLUX" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>CO2</td> <td><input type="text" name="SmCO2" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMCO2" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>PIR</td> <td><input type="text" name="SmPIR" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMPIR" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>LP</td> <td><input type="text" name="SmLP" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMLP" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>TC</td> <td><input type="text" name="SmTC" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMTC" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>HUM</td> <td><input type="text" name="SmHUM" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMHUM" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>PRES</td> <td><input type="text" name="SmPRES" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMPRES" minlength="4" maxlength="8" size="10"></td> </tr> <tr> <td>HALL</td> <td><input type="text" name="SmHALL" minlength="4" maxlength="8" size="10"></td> <td><input type="text" name="SMHALL" minlength="4" maxlength="8" size="10"></td> </tr> </table> </br> <input type="submit"> </form> </br> </body> </html>
Code seuils.css :
table{ border-collapse: collapse } td{ border: 1px solid black; padding: 10px; }
Voilà, si vous avez des solutions ?
Merci d'avance
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
8 avril 2020 à 17:06
8 avril 2020 à 17:06
quelle réponse reçois-tu de la page?
la première chose que je ferais, c'est d'ajouter des echo pour comprendre ce que fait le code.
si je voulais progresser, je lirais et j'appliquerais les conseils donnés en #3.
la première chose que je ferais, c'est d'ajouter des echo pour comprendre ce que fait le code.
si je voulais progresser, je lirais et j'appliquerais les conseils donnés en #3.
D'accord, je vais m'occuper des erreurs PDO tout de suite alors.. et je verrais les réponses en cas d'erreurs avec la BDD.
Après avoir finis l'installation PDO je reviens vers vous.
Après avoir finis l'installation PDO je reviens vers vous.
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
8 avril 2020 à 18:11
8 avril 2020 à 18:11
Il n'y a pas que les erreurs PDO à gérer... il y a aussi
Je t'invite également à lire ET à appliquer les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Si j'ai bien suivis les indications..
Ma classe Database...
Pas de résultat sur ma page web..
Ma classe Database...
Pas de résultat sur ma page web..
class Database { private $host = "xxxxx"; private $username = "xxxxx"; private $password = "xxxxx"; private $database = "xxxxx"; public $connexion; function __construct(){ $this->getconnexion(); } public function getconnexion() { $this->connexion = null; try { $this->connexion = new PDO("mysql:host=".$this->host.";dbname=".$this->database .';charset=utf8', $this->username, $this->password); // Activation des erreurs PDO $this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $this->connexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $exception) { echo "Error: ".$exception->getMessage(); die(); } return $this->connexion; } public function closeconnexion() { $this->connexion = null; } //Envoie de la rêquetes à la base de donnée $mysqli->real_query(Update seuil_alertes SET seuil_mini = 'SmCO', seuil_max ='SMCO' Where Capteur='CO') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmBAT', seuil_max ='SMBAT' Where Capteur='BAT') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmSTR', seuil_max ='SMSTR' Where Capteur='STR') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmLUX', seuil_max ='SMLUX' Where Capteur='LUX') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmCO2', seuil_max ='SMCO2' Where Capteur='CO2') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmPIR', seuil_max ='SMPIR' Where Capteur='PIR') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmLP', seuil_max ='SMLP' Where Capteur='LP') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmTC', seuil_max ='SMTC' Where Capteur='TC') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmHUM', seuil_max ='SMHUM' Where Capteur='HUM') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmPRES', seuil_max ='SMPRES' Where Capteur='PRES') or die("insertion impossible"); $mysqli->real_query(Update seuil_alertes set seuil_mini = 'SmHALL', seuil_max ='SMHALL' Where Capteur='HALL') or die("insertion impossible"); $res = $mysqli->use_result(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); }
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
8 avril 2020 à 18:31
8 avril 2020 à 18:31
pas de résultat, malgré les echo que tu as ajoutés?
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
8 avril 2020 à 18:34
8 avril 2020 à 18:34
as-tu examiné la source html de ta page? tu seras surpris par ce qu'on y voit.
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
8 avril 2020 à 18:49
8 avril 2020 à 18:49
- Les instructions qui permettent d'afficher les erreurs PHP se placent AU DEBUT du script pas à la fin.
- Tu as des instructions en mysqli ... alors que ta connexion est en PDO
- Tu as des instructions placées à la fin de ta class... qui ne devraient pas se trouver DANS la class (ou alors, dans une fonction.. pas posées là comme ça au pif ! )
- Tu as des instructions en mysqli ... alors que ta connexion est en PDO
- Tu as des instructions placées à la fin de ta class... qui ne devraient pas se trouver DANS la class (ou alors, dans une fonction.. pas posées là comme ça au pif ! )
En vrai je craque.. ça fais quelques jours que je suis déçu j'ai vraiment envie que ça se termine.
Alors si vous avez la gentillesse de me le faire ?
Je sais que c'est pas bien... mais à un moment..
Alors si vous avez la gentillesse de me le faire ?
Je sais que c'est pas bien... mais à un moment..
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
9 avril 2020 à 08:56
9 avril 2020 à 08:56
tu avais écrit que tu faisais cela pour t'occuper. pourquoi as-tu envie que cela se termine?
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
8 avril 2020 à 22:44
8 avril 2020 à 22:44
Je ne sais pas si tu craques... mais je ne vais pas tarder non plus à craquer......
Je t'ai donné, dans une de tes précédente question un code pour ta class Database et qui montre également comment utiliser l'affichage des erreurs php...
Pour rappel : https://forums.commentcamarche.net/forum/affich-36538219-sql-php-2-requetes-probleme
Autant, une personne qui pose une question et qui a du mal à comprendre.. ok... mais quand il a déjà eu des réponses de notre part et qu'il ne fait aucun effort pour en tenir compte.. franchement... pourquoi s'embêter à continuer à l'aider. Quelle perte de temps !
Quoi qu'il en soit, comme je ne veux pas être la cause de ton craquage .. voila à quoi ton code devrait ressembler.
Je t'ai donné, dans une de tes précédente question un code pour ta class Database et qui montre également comment utiliser l'affichage des erreurs php...
Pour rappel : https://forums.commentcamarche.net/forum/affich-36538219-sql-php-2-requetes-probleme
Autant, une personne qui pose une question et qui a du mal à comprendre.. ok... mais quand il a déjà eu des réponses de notre part et qu'il ne fait aucun effort pour en tenir compte.. franchement... pourquoi s'embêter à continuer à l'aider. Quelle perte de temps !
Quoi qu'il en soit, comme je ne veux pas être la cause de ton craquage .. voila à quoi ton code devrait ressembler.
<?php /** Fichier Database.php Class de connexion à la bdd */ class Database { private $host = "xxxxxx"; private $username = "yyyyy"; private $password = "yyyy"; private $database = "yyyyyyyyyyyyyyyy"; public $connexion; function __construct(){ $this->getconnexion(); } public function getconnexion() { $this->connexion = null; try { $this->connexion = new PDO("mysql:host=".$this->host.";dbname=".$this->database .';charset=utf8', $this->username, $this->password); // Activation des erreurs PDO $this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $this->connexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $exception) { echo "Error: ".$exception->getMessage(); die(); } return $this->connexion; } public function closeconnexion() { $this->connexion = null; } /** Execution d'une requete preparee */ public function db_Exec($sql,$datas=NULL){ //Execution de la requete try{ $requete = $this->connexion->prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); exit; } return $requete; } /** Requête SELECT @sql string @datas array @return Array */ public function db_All($sql,$datas=NULL){ $req = $this->db_Exec($sql,$datas); return $req->fetchAll(); } }
<?php /** Fichier : Capteur.php Class pour gérer les capteurs - extends de la class DataBase */ class Capteur extends Database{ function __construct(){ parent::__construct(); //appel le constructeur du parent } public function update_SeuilAlertes($seuilMini=0,$seuilMaxi=0,$capteur=NULL){ $sql = "UPDATE seuil_alertes SET seuil_mini = :seuilMini , seuil_max = :seuilMaxi WHERE Capteur=:capteur"; $datas = array(':seuilMini'=>$seuilMini ,':seuilMaxi'=>$seuilMaxi ,':capteur'=>$capteur ); return parent::db_Exec($sql,$datas); } }
<?php /** Script de mise à jour des capteurs - Besoin d'inclure la class Database - et la classe Capteur */ //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //class de connexion à la bdd require_once 'Database.php'; require_once 'Capteur.php'; // on instancie la class Capteur $oCapteur = new Capteur(); // si la MAJ ne fonctionne toujours pas, // décommente la ligne en dessous et montre nous : // print_r($_POST); //récupération PROPRE DES VALEURS AVANT DE LES UTILISER $SmCO_min= !empty($_POST["SmCO"]) ? $_POST["SmCO"] : NULL; $SmCO_max= !empty($_POST["SMCO"]) ? $_POST["SMCO"] : NULL; $SmBAT_min= !empty($_POST["SmBAT"]) ? $_POST["SmBAT"] : NULL; $SmBAT_max= !empty($_POST["SMBAT"]) ? $_POST["SMBAT"] : NULL; //etc... //mise à jour des données : if($SmCO_min && $SmCO_max){ $oCapteur->update_SeuilAlertes($SmCO_min,$SmCO_max,'CO'); } if($SmBAT_min && $SmBAT_max){ $oCapteur->update_SeuilAlertes($SmBAT_min,$SmBAT_max,'BAT'); } //etc... ?>