vérificaion doublon

jojo28
Invité n'ayant pas de compte PHPfrance

21 mai 2014, 15:13

Bonjour, sur mon site dans mon espace administrateur, j' aimerais vérifier que si mon champs titre du répertoire musical est déja dedans éviter de faire l' insert.
Voici mon code que j' ai commencer


Dans mon code pour compter les doublons on fait avec la méthode count sauf qu' elle nest pas prise en compte

et mon insert, je l' est fait dans le form plus bas dans le html
J' aimerais ainsi vérifier que le nom du morceau n' existe pas dans ma bdd avant de l' insérer
Merci de votre aide

<?php
//on inclut Demarrage_SESSION
require_once '../../Demarrage_SESSION.php';


//si on appuie sur le bouton submit
if(isset($_POST['submit']))
{
//on effectue un requête de préparation pour compter le nombre de titre de répertoire musical dans notre base de donnée
$req = $bdd->prepare('SELECT count(*) nom_morceau FROM membre ');

//on éxécute notre requête
$req->execute();


$donnees = $req->fetch();

$nombredoublon = $donnees['nombredoublon'];
$req->closeCursor();

if ($nombredoublon == 0)
{
echo 'pseudo libre';
}
else
{
echo 'pseudo déjà prit';
}

}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Mon blog</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<center>
<!-- Notre fonction d' ajout est placer dans un form -->
<form action="ajouter.php" method="post" enctype="multipart/form-data">

<!-- balise pour renseigner le nom du répertoire musical -->
<li><h3>Nom du morceau <input type="text" name="titre" placeholder=" Nom morceau" required></h3></li><br>

<!-- Bouton de sélection pour ajouter les pistes -->
<input type="file" name="file_array[]"></p>
<p><input type="file" name="file_array[]"></p>
<p><input type="file" name="file_array[]"></p>
<p><input type="file" name="file_array[]"></p>

<!-- bouton de validation -->
<input type="submit" name="envoyer" value="Ajouter les pistes au morceau">
</form>

</center>

</body>
</html>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 mai 2014, 20:06

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Il en faut peu pour être heureux ......

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 mai 2014, 20:10

Ajoute un prédicat a ton select (pour vérifier si quelque chose existe c'est la seule solution. )

@+
Il en faut peu pour être heureux ......

jojo28
Invité n'ayant pas de compte PHPfrance

21 mai 2014, 21:41

Merci de ta réponse mais je ne comprenda pas du tout, si tu peux un peu détailler merci

Mammouth du PHP | 2278 Messages

22 mai 2014, 08:37

Ca ne résout pas, mais ça éclaire:
<?php
//on inclut Demarrage_SESSION
require_once '../../Demarrage_SESSION.php';
//il faudrait vérifier que la connexion existe bien

//si on appuie sur le bouton submit
if(isset($_POST['submit']))
{ 
 //on effectue un requête de préparation pour compter le nombre de titre de répertoire musical dans notre base de donnée
//pourquoi utiliser PREPARE quand il n'y a pas de paramètre ?
 $req = $bdd->prepare('SELECT count(*) nom_morceau FROM membre ');

 //on éxécute notre requête
 $req->execute();
//vérifier qu'il se passe quelque chose ou afficher l'erreur
var_dump($req);

 $donnees = $req->fetch();
//idem ici
var_dump($donnees);

 $nombredoublon = $donnees['nombredoublon'];
 $req->closeCursor();

 if ($nombredoublon == 0)
 {
 echo 'pseudo libre';
 }
 else
 {
 echo 'pseudo déjà prit';
 }

 }
 ?>

Et regarde http://us2.php.net/manual/fr/pdo.prepar ... ements.php exemple 3 qui développe la réponse de moogli
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

jojo28
Invité n'ayant pas de compte PHPfrance

22 mai 2014, 19:31

<?php
//on inclut Demarrage_SESSION
require_once '../../Demarrage_SESSION.php';

//si on appuie sur le bouton submit
if(isset($_POST['submit']))
{
//on effectue un requête de préparation pour compter le nombre de titre de répertoire musical dans notre base de donnée
//pourquoi utiliser PREPARE quand il n'y a pas de paramètre ?
$req = $bdd->prepare('SELECT count(*) nom_morceau FROM morceau ');

//on éxécute notre requête
$req->execute();
//vérifier qu'il se passe quelque chose ou afficher l'erreur
var_dump($req);

$donnees = $req->fetch();
//idem ici
var_dump($donnees);

$nombredoublon = $donnees['nombredoublon'];
$req->closeCursor();

if ($nombredoublon == 0)
{
echo 'pseudo libre';
}
else
{
echo 'pseudo déjà prit';
}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Mon blog</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<center>
<!-- Notre fonction d' ajout est placer dans un form -->
<form action="ajouter.php" method="post" enctype="multipart/form-data">

<!-- balise pour renseigner le nom du répertoire musical -->
<li><h3>Nom du morceau <input type="text" name="titre" placeholder=" Nom morceau" required></h3></li><br>

<!-- Bouton de sélection pour ajouter les pistes -->
<input type="file" name="file_array[]"></p>
<p><input type="file" name="file_array[]"></p>
<p><input type="file" name="file_array[]"></p>
<p><input type="file" name="file_array[]"></p>

<!-- bouton de validation -->
<input type="submit" name="envoyer" onclick="return(confirm('Etes-vous sûr de vouloir ajouter la musique?'))" value="Ajouter les pistes au morceau">
</form>

</center>

</body>
</html>



je ne comprend pas comment je peux faire pour eviter la requete sql par la suite je suis en pdo
Jai une classe qui est stocker dans mon form ajouter.php