Obtenir l'identifiant unique de la ligne juste insérée dans la base de données

J'ai un formulaire qui soumet des informations super basiques, juste un nouveau nom (le nom reçoit un identifiant unique). Ce que j'essaie de faire se produire, c'est quand l'utilisateur soumet le nom qu'il est soumis dans la base de données et ils sont redirigés vers une nouvelle page card.php où ils peuvent ajouter des informations plus spécifiques. Cependant, l'identifiant unique associé à la ligne qui vient d'être soumise doit suivre l'URL (id = $ id)

$query = "INSERT INTO name VALUES(NULL, '$name')";

mysqli_query($conn, $query);

$query2 = "SELECT * FROM name ORDER BY id DESC LIMIT 1";
$result = mysqli_query($conn, $query2);

while($row = mysqli_fetch_array($result)) {
  $id = $row['id'];
}

header("Location: http://localhost/card.php?id=$id");

Processus

addName.php -> user submits new name -> add to database -> redirect to card.php WITH unique id value of name that is just submitted

1.) Y at-il un moyen de conserver l'identifiant de la ligne qui vient d'être soumise? Dans le hasard hasardeux 2 ou plus de personnes soumettent en même temps la deuxième requête d'obtenir la dernière rangée insérée dans la base de données renverra la mauvaise identification de rangée
2). Avoir une boucle while return 1 morceau d'info semble être une façon de faire des choses merdiques, cela pourrait être la plus basique de la merde mais je ne peux pas sembler retourner le 1 morceau de données sans le faire

0
parfois nous ne savons pas quelle fonction exacte nous recherchons bourgeon, vous ne savez pas quoi d'autre essayé et quoi d'autre ive cherché. Un simple lien aurait suffi
ajouté l'auteur user934902, source
us2.php.net/manual/fr/mysqli.insert-id. PHP Avez-vous même pris la peine de lire des manuels?
ajouté l'auteur u_mulder, source

2 Réponses

$query = "INSERT INTO name VALUES(NULL, '$name')";

mysqli_query($conn, $query);

$id = mysqli_insert_id();

header("Location: http://localhost/card.php?id=$id");

Reference: http://us1.php.net/manual/en/function.mysql-insert-id.php

0
ajouté
ma compréhension de cette fonction basée sur la lecture rapide que j'ai fait, c'est qu'elle tire la valeur d'identifiant unique de la dernière rangée insérée (parfait). Y at-il une raison pour laquelle il retournerait une valeur NULL même si l'insertion fonctionne correctement et que l'incrémentation automatique est correcte?
ajouté l'auteur user934902, source
ne passait pas les paramètres corrects, l'a maintenant
ajouté l'auteur user934902, source
il utilise MYSQLI pas mysql, donc la fonction dont il a besoin est mysqli_insert_id
ajouté l'auteur Abu Romaïssae, source

Vous pouvez utiliser la fonction mysqli pour récupérer le dernier identifiant inséré (vérifiez mysqli_insert_id comme suggéré dans un commentaire), mais je ne vous recommanderais pas d'utiliser l'identifiant de l'utilisateur dans l'URL, les gens peuvent essayer d'entrer, en utilisant d'autres identifiants

also you can use the PHP function to generate a custom is check out: uniqid

0
ajouté