Bonjour a tous, je voudrai savoir, sur mon site donc je voulait savoir comment je pouvais faire (la phrase) pour que quand j'écrit un pseudo sur mon site et que j'appuie sur press sa met admin le mec, en GROS
Je voudrai faire une textbox avec un bouton ou quand j'écrit le nom du mec inscrit sur phpmyadmin (dans la colone username) et que j'appuie sur press sa modifie la valeurs ID et au lieu de 2 sa passe a 1.
Merci beaucoup, cordialement
Bonsoir.
la valeurs ID et au lieu de 2 sa passe a 1
Si le champ id
est en auto-incrément, tu ne pourras pas en changer la valeur et c'est une mauvaise idée de vouloir modifier la valeur d'une clé primaire.
Je me suis tromper c'est role_id que je veut changer, c'est une colonne que j'ai fait moi qui n'as pas été generer
En gros si tu veut je voudrai qu'en php quand j'écris l'username d'un membre sa le selectionne dans la bdd et que quand j'appuie sur le bouton a côté de la textbox sa le met admin en gros sa change la valeurs de la colonne role_id que j'ai mis
C'est fait très rapidement mais l'idée est là, après sans code de ta part, c'est difficile, genre j'ai pas pu adapter le code à savoir si tu utilises mysqli ou pdo, etc.. mais c'est ça :
<?php
if(isset($_GET['pseudo']) && !empty($_GET['pseudo'])):
$pseudo = htmlspecialchars($_GET['pseudo']); // Pas sécurisé faute de savoir ce que tu utilises comme méthode
// Ta requête UPDATE ici du genre "UPDATE users SET role_id = 1 WHERE pseudo = '" . $pseudo . "'" ;
// Après tu peux vérifier si le pseudo existe bien dans ta base avant pour éviter toutes erreurs
if($requete) // On vérifie que la requête est bien passée
echo ($pseudo .' est maintenant admin');
else
echo ('Echec, '. $pseudo .' n\'est pas admin');
endif;
?>
<form method="get">
<label for="pseudo">Pseudo :</label>
<input type="text" id="pseudo" name="pseudo" />
<input type="submit" />
</form>
<?php $Auth->allow('admin'); ?>
<?php require 'inc/db.php'; ?>
<?php
$bdd = new PDO("mysql:host=localhost;dbname=cris*_*****;charset=utf8", "cris******", "C!t*****");
if(isset($_POST['username']) AND isset ($_POST['role_id'])AND isset ($_POST['address']))
{
$requete = $bdd->prepare("UPDATE users SET role_id = ?, address = ? WHERE username = ?");
$requete->execute(array($_POST['role_id'], $_POST['address'], $_POST['username']));
}
?>
<html>
<head>
<title>insertion de données en PHP :: partie 1</title>
</head>
<body>
<form method="get">
<label for="username">Pseudo :</label>
<input type="text" id="username" name="username" />
<label for="role_id">role :</label>
<input type="text" id="role_id" name="role_id" />
<label for="address">Badge :</label>
<input type="text" id="address" name="address" />
<input type="submit" />
</form>
</body>
</html>
Voila tout mon code entier mais sa ne marche toujours pas !!
Bon là, première chose qui me frappe, c'est la method get dans le form et post dans le php.
<?php
$Auth->allow('admin');
require 'inc/db.php';
$bdd = new PDO("mysql:host=localhost;dbname=cris*_*****;charset=utf8", "cris******", "C!t*****");
if (isset($_POST['username']) && isset($_POST['role_id']) && isset($_POST['address'])) {
$requete = $bdd->prepare("UPDATE users SET role_id = ?, address = ? WHERE username = ?");
$requete->execute(array($_POST['role_id'], $_POST['address'], $_POST['username']));
}
?>
<html>
<head>
<title>insertion de données en PHP :: partie 1</title>
</head>
<body>
<form method="post">
<label for="username">Pseudo :</label>
<input type="text" id="username" name="username"/>
<label for="role_id">role :</label>
<input type="text" id="role_id" name="role_id"/>
<label for="address">Badge :</label>
<input type="text" id="address" name="address"/>
<input type="submit"/>
</form>
</body>
</html>
Et j'ai dit mysqli, pas mysql, mysql est obsolète oui, mais pas mysqli ;)
Ah oui j'avais pas vu le petit i ^^ mais ducoup j'ai fait les modifs necessaire mais sa ne fonctionne toujours pas :)
Qu'est ce que je hais PDO, je dois être le seul mec au monde à utiliser mysqli, c'est ouf. Bref, là ça me saute pas aux yeux donc on va y aller étape par étape.
remplace ta requête par les vérifs de routine histoire d'éliminer le plus évident :
if (isset($_POST['username']) && isset($_POST['role_id']) && isset($_POST['address'])) {
// $requete = $bdd->prepare("UPDATE users SET role_id = ?, address = ? WHERE username = ?");
// $requete->execute(array($_POST['role_id'], $_POST['address'], $_POST['username']));
echo 'Pseudo : '. $_POST['username'] .'<br />Adresse : '. $_POST['address'] .'<br />Rôle : '. $_POST['role_id'];
}
Si ça fonctionne tu sauras que le problème vient de la requête
ok donc c'est bon j'ai mis j'ai une erreur Parse error: syntax error, unexpected 'if' (T_IF) in /home/cristalh/public_html/bykertix/admin.php on line 6
Et il y a quoi à ta ligne 6 ?
Tu dois avoir une erreur de parenthèse, de point virgule ou autre avant ton if
Ah oui j'avais une erreur c'est bon je l'ai corriger, mais maintenant dès que je rentre les infos et que je clique sur validé sa me dit sa:
Fatal error: Call to a member function prepare() on null in /home/cristalh/public_html/bykertix/admin.php on line 6
Edit: c'est regler j'ai remplacer bdd par pdo
Edit2: sa fonctionne ! :p avec la requette aussi
Edit3: mais je voudrai savoir comment je peut avoir la listes des utilisateurs directement sur le site
Avec un select tout simplement.
Je ne pourrais que te conseiller de te former à php et mysql, tu sembles manquer de formation ;)
Après je te conseille aussi de t'entraîner comme tu fais, mais c'est en cherchant seul qu'on progresse le mieux ;)