Problème affichage valeur sur site web
Résolu
Amos54
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je suis actuellement en terminal STI2D et je devais faire un site web qu devais afficher des variables récupérés sur une base de données.
Tous ce passais bien quand tout à coups mon site web affiche mon Auto incrément partout comme ceci :
Avec mon code :
LA BASE DE DONNEES :
LE PROGRAMME :
Je suis désespérer aidez moi svp c'est pour mon BAC !!!
Je suis actuellement en terminal STI2D et je devais faire un site web qu devais afficher des variables récupérés sur une base de données.
Tous ce passais bien quand tout à coups mon site web affiche mon Auto incrément partout comme ceci :
Numéro de la dernière ligne de la BDD: 1534
Date de la dernière ligne de la BDD: 1534
Stock du trémie: 1534 PLEIN
Stock de gobelet: 1534 PLEIN
Niveau d'eau: 1534 PLEIN
Porte de la machine: 1534 OUVERTE
Avec mon code :
LA BASE DE DONNEES :
<?php
//Connexion au serveur MySQL si la connexion échoue il sera impossible de se connecter au serveur.
mysql_connect("127.0.0.1", "root", "") or die(mysql_error());
//Sélection de la base de données si la selection est inéxistante il sera impossible de se connecter a la base de données.
mysql_select_db('projet_db') or die(mysql_error());
//Requete de récuperation des variables de la base de données.
//MACHINE 1
$variable_de_la_BDD_auto_incrementer = mysql_query("SELECT ID FROM projet_table");
$variable_de_la_BDD_PORTE = mysql_query("SELECT C_PORTE FROM projet_table");
$variable_de_la_BDD_GOBLET = mysql_query("SELECT C_GOBLET FROM projet_table");
$variable_de_la_BDD_TREMIS = mysql_query("SELECT C_TREMIS FROM projet_table");
$variable_de_la_BDD_EAU = mysql_query("SELECT C_EAU FROM projet_table");
$variable_de_la_BDD_DATE = mysql_query("SELECT DATE FROM projet_table");
?>
LE PROGRAMME :
<?php
$auto_incremente = mysql_num_rows($variable_de_la_BDD_auto_incrementer);
$date = mysql_num_rows($variable_de_la_BDD_DATE);
$capteur_de_la_tremis = mysql_num_rows($variable_de_la_BDD_TREMIS);
$capteur_de_goblet = mysql_num_rows($variable_de_la_BDD_GOBLET);
$etat_du_servomoteur = mysql_num_rows($variable_de_la_BDD_PORTE);
$capteur_de_niveau_eau = mysql_num_rows($variable_de_la_BDD_EAU);
print "<br >";print "<br >";
print "<font size='28'>Machine MOSELLE</font><br >";
print "<u> Numero de la derniere ligne de la BDD:</u> $auto_incremente<br >";
print "<u> Date de la derniere ligne de la BDD:</u> $date<br >";
//*******************************************************************************************
echo "<u> Stock du trémie:</u>";
print " $capteur_de_la_tremis";
if( $capteur_de_la_tremis <= 18 ){$valeur_de_la_tremis_sur_le_web = " VIDE";}
else{$valeur_de_la_tremis_sur_le_web = " PLEIN";}
print $valeur_de_la_tremis_sur_le_web;
echo "<br />";
//*******************************************************************************************
echo "<u> Stock de goblet:</u>";
print " $capteur_de_goblet";
if( $capteur_de_goblet <= 0 ){$valeur_du_capteur_de_goblet_sur_le_web = " VIDE";}
else{$valeur_du_capteur_de_goblet_sur_le_web = " PLEIN";}
print $valeur_du_capteur_de_goblet_sur_le_web;
print "<br >";
//*******************************************************************************************
echo "<u> Niveau d'eau:</u>";
print " $capteur_de_niveau_eau";
if( $capteur_de_niveau_eau = 1 ){$valeur_du_capteur_de_niveau_eau_sur_le_web = " PLEIN";}
else{$valeur_du_capteur_de_niveau_eau_sur_le_web = " VIDE";}
print $valeur_du_capteur_de_niveau_eau_sur_le_web;
echo "<br />";
//*******************************************************************************************
echo "<u> Porte de la machine:</u>";
print " $etat_du_servomoteur";
if( $etat_du_servomoteur = 0 ){$etat_du_servomoteur_sur_le_web = " FERMER";}
else{$etat_du_servomoteur_sur_le_web = " OUVERTE";}
print $etat_du_servomoteur_sur_le_web;
?>
Je suis désespérer aidez moi svp c'est pour mon BAC !!!
A voir également:
- Problème affichage valeur sur site web
- Site comme coco - Accueil - Réseaux sociaux
- Site de telechargement - Accueil - Outils
- Création site web - Guide
- Web office - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
4 réponses
salut,
tu indique :
c'est à dire que tu récupère le nombre d'occurence de ta table qui en toute logique, s'il n'y a pas eu de DELETE, est égal au dernier incrément utilisé.
à mon avis c'est "mysql_num_rows" qui n'est pas adapté
ce que je veux dire par là, c'est que ton code et ton affichage correspondent bien, mais c'est peu être pas l'information que tu souhaitais.
naga
tu indique :
$capteur_de_la_tremis = mysql_num_rows($variable_de_la_BDD_TREMIS); $capteur_de_goblet = mysql_num_rows($variable_de_la_BDD_GOBLET); $etat_du_servomoteur = mysql_num_rows($variable_de_la_BDD_PORTE); $capteur_de_niveau_eau = mysql_num_rows($variable_de_la_BDD_EAU);
c'est à dire que tu récupère le nombre d'occurence de ta table qui en toute logique, s'il n'y a pas eu de DELETE, est égal au dernier incrément utilisé.
à mon avis c'est "mysql_num_rows" qui n'est pas adapté
ce que je veux dire par là, c'est que ton code et ton affichage correspondent bien, mais c'est peu être pas l'information que tu souhaitais.
naga
Salut,
Le numéro affiché correspond au nombre de ligne dans ta table.
Il y a effectivement plusieurs erreurs :
Requête sql SELECT : tu utilises une requêtes pour chaque paramètre ce qui n'est pas du tout optimisé. Tu peux tout simplement récupérer toutes les infos en une seule requête comme ceci :
mysql_query("SELECT ID, C_PORTE, C_GOBLET, C_TREMIS, C_EAU, DATE FROM projet_table")
La fonction mysql_query ne retourne pas directement la valeur de tes champs, elle te renvoie une ressource que tu dois parcourir pour récupérer tes infos.
La fonction mysql_num_rows te renvoie le nombre de ligne de ta requête (d'où le fait que tu vois ce nombre partout).
Pour toute cette partie concernant la BDD, je t'invite à reprendre un tutoriel récent, si possible en évitant d'utiliser les fonctions mysql_* qui sont obsolètes et ne devrait plus être utilisé. Préfère PDO ou Mysqli (ce dernier ressemble beaucoup aux fonctions mysql_*)
Bonne journée
Le numéro affiché correspond au nombre de ligne dans ta table.
Il y a effectivement plusieurs erreurs :
Requête sql SELECT : tu utilises une requêtes pour chaque paramètre ce qui n'est pas du tout optimisé. Tu peux tout simplement récupérer toutes les infos en une seule requête comme ceci :
mysql_query("SELECT ID, C_PORTE, C_GOBLET, C_TREMIS, C_EAU, DATE FROM projet_table")
La fonction mysql_query ne retourne pas directement la valeur de tes champs, elle te renvoie une ressource que tu dois parcourir pour récupérer tes infos.
La fonction mysql_num_rows te renvoie le nombre de ligne de ta requête (d'où le fait que tu vois ce nombre partout).
Pour toute cette partie concernant la BDD, je t'invite à reprendre un tutoriel récent, si possible en évitant d'utiliser les fonctions mysql_* qui sont obsolètes et ne devrait plus être utilisé. Préfère PDO ou Mysqli (ce dernier ressemble beaucoup aux fonctions mysql_*)
Bonne journée
Merci pour les infos, même mon prof n'as pas trouvé au bouts de 4 semaines ou je l'ai eu 9h00 par semaines... mdr
Je répond quand tout fonctionne ! :)
Je répond quand tout fonctionne ! :)
Si si ! xD
Mais je n'ais toujours pas reussi, je cherche coment afficher mes valeus, mais je n'y arrive pas du tout ... :3
Mon probleme est la je croit:
Je sais pas quoi mettre à la place de "mysql_fetch_assoc" pour afficher ma variable ...
Mais je n'ais toujours pas reussi, je cherche coment afficher mes valeus, mais je n'y arrive pas du tout ... :3
Mon probleme est la je croit:
$auto_incremente_3 = mysql_fetch_assoc($variable_de_la_BDD_auto_incrementer_3);
$date_3 = ($variable_de_la_BDD_DATE_3);
$capteur_de_la_tremis_3 = ($variable_de_la_BDD_TREMIS_3);
$capteur_de_goblet_3 = ($variable_de_la_BDD_GOBLET_3);
$etat_du_servomoteur_3 = ($variable_de_la_BDD_PORTE_3);
$capteur_de_niveau_eau_3 = ($variable_de_la_BDD_EAU_3);
Je sais pas quoi mettre à la place de "mysql_fetch_assoc" pour afficher ma variable ...
Tu ne lis pas le résultat de ton association.
source : https://www.php.net/manual/fr/function.mysql-fetch-assoc.php
je te conseil de lire, tu devrais comprendre.
Pour faire simple, mysql_fetch_assoc te renvoi une liste d'objet de type tableau, indexé par le nom de la colonne retourné par ta requête. Dans l'exemple du dessus pas exemple, il y a eu un
dis moi si je suis pas clair.
naga
while ($row = mysql_fetch_assoc($result)) { echo $row["userid"]; echo $row["fullname"]; echo $row["userstatus"]; }
source : https://www.php.net/manual/fr/function.mysql-fetch-assoc.php
je te conseil de lire, tu devrais comprendre.
Pour faire simple, mysql_fetch_assoc te renvoi une liste d'objet de type tableau, indexé par le nom de la colonne retourné par ta requête. Dans l'exemple du dessus pas exemple, il y a eu un
select userid,fullname,userstatuseffectué.
dis moi si je suis pas clair.
naga
ah par contre, comme l'a dit Pitet :
si c'est ton prof qui vous a dis d'utiliser
nan plus sérieusement, cette méthode est aujourd'hui obsolète et il est conseillé d'utiliser les nouvelles méthodes (tu as l'avertissement sur mon lien qui te l'indique)
Préfère PDO ou Mysqli (ce dernier ressemble beaucoup aux fonctions mysql_*)
si c'est ton prof qui vous a dis d'utiliser
mysql_fetch_assoc, tu pourrai presque (presque) lui demander s'il fait encore des réserves de nourriture pour l'hiver !
nan plus sérieusement, cette méthode est aujourd'hui obsolète et il est conseillé d'utiliser les nouvelles méthodes (tu as l'avertissement sur mon lien qui te l'indique)
Alors pour que ça fonctionne j'ai fais:
Voila merci pour les petite info ! 1 mois que je cherche sans succes ! MERCI à vous !;)
<?php
$mysqli = new mysqli("127.0.0.1", "root", "", "projet_db");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT * FROM projet_table_3 ORDER by ID LIMIT 3";
$result = $mysqli->query($query);
// Tableau numérique
$row = $result->fetch_array(MYSQLI_NUM);
//Fermeture de la connexion
$mysqli->close();
?><?php
print "<br >";print "<br >";
print "<font size='28'>Machine VOSGES</font><br ><br >";
echo "<u> Date du relever: </u>"; echo $row[5]. "<br>";
//TREMIS
echo "<u> Stock du trémie: </u>";
echo $row[3];
if( $row[3] >= 18 ){$valeur_de_la_tremis_sur_le_web_3 = " VIDE";}
else{$valeur_de_la_tremis_sur_le_web_3 = " PLEIN";}
echo $valeur_de_la_tremis_sur_le_web_3;
echo "<br />";
//GOBELET
echo "<u> Stock de goblet: </u>";
echo $row[2];
if( $row[2] <= 10 ){$valeur_du_capteur_de_goblet_sur_le_web_3 = " VIDE";}
else{$valeur_du_capteur_de_goblet_sur_le_web_3 = " PLEIN";}
echo $valeur_du_capteur_de_goblet_sur_le_web_3;
print "<br >";
//EAU
echo "<u> Niveau d'eau: </u>";
echo $row[4];
if( $row[4] = 1 ){$valeur_du_capteur_de_niveau_eau_sur_le_web_3 = " PLEIN";}
else{$valeur_du_capteur_de_niveau_eau_sur_le_web_3 = " VIDE";}
echo $valeur_du_capteur_de_niveau_eau_sur_le_web_3;
echo "<br />";
//PORTE
echo "<u> Porte de la machine: </u>";
echo $row[1];
if( $row[1] = 0 ){$etat_du_servomoteur_sur_le_web_3 = " FERMER";}
else{$etat_du_servomoteur_sur_le_web_3 = " OUVERTE";}
echo $etat_du_servomoteur_sur_le_web_3;
?>
Voila merci pour les petite info ! 1 mois que je cherche sans succes ! MERCI à vous !;)