Comment faire pour modifier les valeurs de la table dans MySQL et PHP?
J'ai que les gens peuvent ajouter des noms d'équipe à ma table MySQL. Maintenant, je veux les modifier. J'ai essayé plusieurs tutoriels mais je ne peux pas le comprendre. Je voudrais savoir ce que je fais de mal.
C'est mon admin.php:
<?php
$username = "root";
$password = "";
$hostname = "localhost";
$dbhandle = mysql_connect($hostname, $username, $password) or die("Could not connect to database");
$selected = mysql_select_db("login", $dbhandle);
if(isset($_POST['team'])){
$team = $_POST['team'];
$ID = $_POST['id'];
$query = mysql_query("SELECT * FROM e2teams WHERE Team='$team' and ID='$ID'");
if(mysql_num_rows($query) > 0 ) { //check if there is already an entry for that username
echo "$team bestaat al!";
}
else{
mysql_query("INSERT INTO e2teams (Team) VALUES ('$team')");
header("location:e2admin.php");
}
}
mysql_close();
?>
<html>
<body>
<h1>Add teams</h1>
<form action="e2admin.php" method="POST">
<input type="text" name="team" placeholder="Team naam" /><br>
<input type="submit" value="Toevoegen" />
</form>
<?php
$table = "e2teams";
$sql = "SELECT * FROM e2teams";
$result = mysql_query($sql, $dbhandle);
if(mysql_num_rows($result) > 0){
while($row = mysql_fetch_array($result)) {
echo $row['Team']. "<a href='edit.php?edit=$row[1]'>Bewerk</a><br>";
}
}
?>
</body>
</html>
Le complément des équipes de travaux. mais le bouton edit ne fonctionne pas encore. Si je clique sur modifier, je vais à la edit.php page; ici, je tiens à ajouter le nouveau nom et le besoin à l'Équipe de changement dans la base de données MySQL ligne.
C'est mon edit.php:
<?php
$username = "root";
$password = "";
$hostname = "localhost";
$dbhandle = mysql_connect($hostname, $username, $password) or die("Could not connect to database");
$selected = mysql_select_db("login", $dbhandle);
if( isset($_GET['edit'])) {
$id = $_GET['edit'];
$res = mysql_query("SELECT * FROM e2teams");
$row= mysql_fetch_array($res);
}
if (isset ($_POST['nieuwenaam'])) {
$newname = $_POST['nieuwenaam'];
$id = $_POST['id'];
$sql = "UPDATE e2teams SET Team='$newname' WHERE id='$id'";
$res = mysql_query($sql) or die ("Fout bij updaten".mysql_error());
echo "<meta http-equiv='refresh' content='0;url=edit.php'>";
}
?>
<html>
<body>
<form action="edit.php" method="POST">
<input type="text" name="nieuwenaam" placeholer="test" /><br>
<input type="hidden" name="id" placeholder="idnaam" value"s" /><br>
<input type="submit" value="Update" />
</form>
</body>
</html>
J'aime aussi savoir comment faire pour supprimer un nom d'équipe, mais c'est peut-être pour une prochaine question.
- Pouvez-vous élaborer sur
doesn't work
? Recevez-vous une sorte de message d'erreur, ou rien ne se passe? S'il vous plaît, partager plus de détails sur votre problème. - Si vous avez du mal à trouver la cause du problème, car aucune erreur ne se produise, coller une bande de echos pour les variables dans votre code, pour s'assurer que tout est à venir à travers comme il se doit.
- Votre
placeholer
attribut est employé à tort, par la manière. - Notez que votre code ci-dessus est vulnérable aux attaques par injection SQL. Aussi la
mysql
extension a été amortis; vous devez utiliser PDO ou mysqli à la place. - Je ne sais pas comment utiliser PDO ou mysqli? est-il facile de faire cela en PDO ou mysqli
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner:
Edit: en outre, à propos de la intval() et mysql_real_escape_string(). Depuis que vous avez été en utilisant $_GET, sans filtre, j'ai ajouté intval() la fonction sur elle. Sans filtrage $id vous auriez pu facilement attaqué par une sorte de par exemple par Injection SQL. Même avec mysql_real_escape_string(). Vous pouvez lire à propos de cette fonction de filtre dans le manuel php. Pour une étude plus approfondie je recommande de changer les fonctions mysql_ à PDO ou mysqli déclarations préparées à l'avance. Amusez-vous bien!
echo $row['Team']. "<a href='edit.php?edit=$row[1]'>Bewerk</a><br>";
assurez-vous de changer$row[1]
à$row['ID']
;echo $row['Team']. '<a href="edit.php?edit='.$row['ID'].'">Bewerk</a><br>';
Aussi, lire ma note que j'ai édité le post.error_reporting(E_ALL ^ E_NOTICE);
dans le debut de la edit.php fichier après<?php
de le cacher. Aussi, vérifiez la réponse comme correcte pour aider les autres aussi. Merci!Vérifier votre formulaire de modification. Vous devez mettre la valeur de l'attribut comme cette valeur="s" pas de valeur"". Je pense que c'est tout.
Je suppose que quand ils cliquent sur le lien "modifier" c'est en passant l'id de la équipe de sorte que le edit.php
select
doit être quelque chose comme:Maintenant, vous avez besoin de modifier le code HTML du formulaire à:
var_dump
votre$_GET
et voir ce que le nom de l'index avez-vous utilisé ou assurez-vous que sur le<a href="edit.php?edit=<?php echo $row[1]">something</a>
a une valeur