Page 1 sur 1
Inscrire une donnée MySQL dans une page web
Posté : 16 oct. 2021, 14:09
par clickern
Bonjour,
J'ai confectionné une BDD de type MySQL. Les informations sont ainsi : users (nom de la table), composée de 'username', 'passeword', 'id' (incrémentation autommatique) et 'classe' (c'est l'appartenance de la classe de l'élève étudiant enregistré dans la base de données).
L'élément 'classe' est défini comme une entité de type INT(1)
Voici la composition HTML
<?php
session_start();
if (!isset($_SESSION['username'])) {
header("Location: index.php");
}
?>
<!DOCTYPE html>
<head>
<html lang="fr">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Espace élève</title>
<link rel="stylesheet" href="css/profile.css">
</head>
<body>
<link href="//netdna.bootstrapcdn.com/font-awesome/3.1.1/css/font-awesome.min.css" rel="stylesheet">
<div class=topbar>
<div class='logo-outer'>
<img class="fit-picture"
src="/img/logo.png">
</div>
<ul class='statusbuttons'>
<li class='btn logindetails'>
<img class=avatar src='http://placekitten.com/g/55/55' />
<?php echo "Salle de cours de : " . $_SESSION['username'] . ""; ?>
<?php echo "Classe de " . $classe[username] . " ème"; ?>
Je n'ai pas d'affichage de la classe de l'élève qui devrait s'afficher juste avant " ème"
Re: Inscrire une donnée MySQL dans une page web
Posté : 16 oct. 2021, 14:23
par or 1
$_SESSION est une variable globale donc il est bien possible d'utiliser $_SESSION['username'].
$classe n'en est pas une, donc, utiliser $classe sans jamais l'avoir initialisé ne peut pas marcher.
afficher les erreurs php est utile pendant la phase de développement.
Re: Inscrire une donnée MySQL dans une page web
Posté : 16 oct. 2021, 15:19
par clickern
Lors de la création de la page php, J'avais mis cela à la fin de la section php
$classe = $_POST['classe'];
ceci l'initialise, mais rien n'apparait
Re: Inscrire une donnée MySQL dans une page web
Posté : 16 oct. 2021, 15:24
par or 1
cette ligne initialise une variable $classe avec un contenu de type chaine, cela n'initialise pas $classe[username]
Re: Inscrire une donnée MySQL dans une page web
Posté : 16 oct. 2021, 17:44
par clickern
pourquoi ceci n'est pas la solution ?
<?php echo "Classe de : " . $_POST['classe'] . " ème"; ?>
Re: Inscrire une donnée MySQL dans une page web
Posté : 16 oct. 2021, 19:22
par or 1
c'est la solution si un formulaire est renvoyé vers ce script php.
ce n'est pas la solution s'il faut pouvoir afficher cette page sans choisir avant la classe dans un formulaire.
pour faire ce qui est dit dans le titre de la discussion, il faut sauver le contenu du formulaire en bdd, et dans la page qui affiche les données d'un élève, faire une requête sql.
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 00:07
par clickern
" Il faut sauver le contenu du formulaire en bdd ".
la base de donnée accueille déjà la classe avec une valeur de cette classe.
J'ai fait une requete sql ainsi :
session_start();
if (!isset($_SESSION['username'])) {
header("Location: index.php");
}
$sql = "SELECT * FROM 'users' ";
$labdd = "alphanbf_marcovka";
$pass = "ET2Sa62S6rV7";
$database = "alphanbf_alphavit";
$hostname = "localhost";
$bdd = new PDO('mysql:host='.$hostname.';dbname='.$database, $labdd, $pass);
if(isset($_SESSION['id'])) {
$requser = $bdd->prepare("SELECT * FROM users WHERE classe = ?");
$requser->execute(array($_SESSION['classe']));
$user = $requser->fetch();}
Je patine, cela ne marche pas. La classe de l'élève ne s'inscrit pas
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 00:10
par or 1
quel est la ligne de ce code sensée afficher quelque chose ?
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 02:00
par clickern
Elle est dans le début du post. je la donne de nouveau en entier ?
<!DOCTYPE html>
<head>
<html lang="fr">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Espace élève</title>
<link rel="stylesheet" href="../css/profile.css">
</head>
<body>
<link href="//netdna.bootstrapcdn.com/font-awesome/3.1.1/css/font-awesome.min.css" rel="stylesheet">
<div class=topbar>
<div class='logo-outer'>
<img class="fit-picture"
src="/img/logo.png">
</div>
<ul class='statusbuttons'>
<li class='btn logindetails'>
<img class=avatar src='http://placekitten.com/g/55/55' />
<?php echo "Salle de cours de : " . $_SESSION['username'] . ""; ?>
<?php echo "Classe de : " . $_POST['classe'] . " ème";
?>
<span class='lastlogin'>Dernière session: il y a 0 jours</span>
</li>
<li class='btn inbox'>
<span class='label pull-left'>0</span>
<i class='icon icon-horizontal icon-envelope-alt'></i>
</li>
<li class='btn'>
<i class='icon icon-desktop'></i>
<span class='label label-bottom'><a href="profile.php">Mon profile</span></a>
</li>
<li class='btn'>
<i class='icon icon-phone'></i>
<span class='label label-bottom'>Contact</span>
</li>
<li class='btn'>
<i class='icon icon-off'></i>
<span class='label label-bottom'><a href="logout.php">Fin session</span></a>
</li>
</ul>
</div>
<ul class=sidebar>
<li class='active'>
<i class='icon icon-home'></i>
<span>accueil</span>
</li>
<li>
<i class='icon icon-dashboard'></i>
<span><a href="situation.php">situation</span>
</a>
</li>
<li>
<i class='icon icon-bar-chart'></i>
<span><a href="cours.php">cours</span></a>
</li>
<li>
<i class='icon icon-rss'></i>
<span><a href="exercices.php">Exercices</span></a>
</li>
<li>
<i class='icon icon-user'></i>
<span><a href="bulletin.php">Mon bulletin</span></a>
</li>
<li>
<i class='icon icon-edit'></i>
<span><a href="result.php">Mes résultats</span></a>
</li>
<li>
<i class='icon icon-wrench'></i>
<span><a href="prob.php">Problèmes</span></a>
</li>
<li>
<i class='icon icon-phone'></i>
<span><a href="contactprof.php">contact prof</span></a>
</li>
</ul>
<div class='pagebody'>
<h1>
Accueil
</h1>
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 12:06
par or 1
pas de requête sql dans le code du 1er message, une requête dans l'autre message. c'est donc à partir du code de l'autre message qu'il faut partir pour afficher quelque chose issue d'une table de la bdd.
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 13:01
par clickern
Les phrases sans verbe me désarçonnent.
Puis-je rephraser ?
"Dans le script qui initialise le message, il n'y a pas de requête SQL, mais elle a été ajoutée dans le dernier message. C'est suffisant à présent pour travailler sur la ligne :
<?php echo "Classe de : " . $_POST['classe'] . " ème"; ?>
.. pour afficher l'élément "
Est-ce cela le sens de votre post ?
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 13:10
par or 1
j'ajoute des verbes :
il n'y a pas de requête sql dans le code du 1er message, il y a une requête dans l'autre message. c'est donc à partir du code de l'autre message qu'il faut partir pour afficher quelque chose issue d'une table de la bdd.
$requser->execute(array($_SESSION['classe']));
j'en déduit qu'il existe une variable de session contenant la classe de la personne connectée.
<?php echo "Salle de cours de : " . $_SESSION['username'] . ""; ?>
affiche le nom de la personne connectée. il ne doit donc pas être trop difficile d'afficher sa classe.
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 16:22
par clickern
écrire <?php echo "Salle de cours de : " . $_SESSION['classe']. ""; ?> ne produit rien, ce fut la première tentative faite il y a déjà 2 jours.
Vous faisiez allusion à ceci sans doute ??
Si . $_SESSION['username'] . place l'identifiant dans la page html, alors que <?php echo "Salle de cours de : " . $_SESSION['classe'] . ""; ?> ne place pas la classe est déconcertant.
C'est pourtant la même base de donnée qui a été placée sous la requête : $requser = $bdd->prepare("SELECT * FROM users WHERE classe = ?");
Donc pour quelle raison ne peut il pas l'afficher ?? ????
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 17:32
par or 1
par défaut, dans un script, $_SESSION['username'] n'existe pas. il faut donc trouver où cette variable est initialisée. créer en même temps la variable $_SESSION['classe'] si c'est utile.
mais cela donnera le nom et la classe de la personne connectée, pas le nom d'un autre élève.
Re: Inscrire une donnée MySQL dans une page web
Posté : 19 oct. 2021, 19:55
par clickern
J'ai réussi ..
Mais le plus important est que j'ai compris
Merci de votre patience