Votre question

PHP SQL insert into doublons

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
27 Décembre 2006 14:28:47

bonjour à tous,

Simple documentaliste en proie à la programmation, j'ai un souci avec ma requête SQL et mon code PHP (rien que ça me direz-vous...).

Je vous explique :

j'ai 3 tables : photo indexer indexp
objectif : création d'un formulaire pour la table indexer
pb : je n'arrive pas à empêcher lenregistrement de doublons dans cette table

NB : je sais que DISTINCT peut servir mais pas malheureusement dans une requête INSERT (seulement SELECT)
je sais que l'on peut préciser un UNIQUE mais l'unicité s'applique sur deux champs et pas un !!!

Bref, je ne vois pas comment empêcher les doublons sur l'ensemble de la table c'est-à-dire sur le couple IDP et IDM (clés étrangères présentes dans ma table indexer)

Pour plus d'information, voici en résumé mon formulaire et mon fichier de traitement :

Citation :
<form ACTION="f_traitement_indexer.php" METHOD="get" NAME="f_saisie_indexer">

<table>

<tr><td>veuillez saisir les différents renseignements demandés afin d'enregistrer les nouvelles correspondances</td></tr>

<tr><td>numéro de saisie de la photo : </td>
<td><INPUT TYPE="TEXT" NAME="IDP" VALUE="" SIZE="30" MAXLENGTH="20"></td></tr>

<tr><td>numéro de saisie du mot-clé : </td>
<td><INPUT TYPE="TEXT" NAME="IDM" VALUE="" SIZE="30" MAXLENGTH="20"></td></tr>

<tr><td><INPUT TYPE="reset" VALUE="effacer"></td></tr>
<tr><td><INPUT TYPE="submit" VALUE="valider"></td></tr>


<tr><td>pour retrouver le numéro de saisie de la photo en question,
<a href="popup/tableau_saisie_photo_popup.php" onclick="window.open(this.href,'nom_fenetre','width=900 , Height=400, scrollbars=yes, rezisable=yes');return false;">
cliquez ici</a></td></tr>

<tr><td>pour retrouver le numéro de saisie du mot-clé en question,
<a href="popup/tableau_saisie_index_popup.php" onclick="window.open(this.href,'nom_fenetre','width=500 , Height=400, scrollbars=yes, rezisable=yes');return false;">
cliquez ici</a></td></tr>

</table>

</form>

et...
Citation :
<?

//recuperation des variables formulaires et affectation dans des variables php

$IDP=$_GET['IDP'];
$IDM=$_GET['IDM'];

//conditions indispensable pour valider l'enregistrement

if($IDP=='' AND $IDM=='')
{
echo "
tralalilala
";
exit();
}
elseif($IDP=='')
{
echo "
tralalilala
";
exit();
}
elseif($IDM=='')
{
echo "
tralalilala
";
exit();
}

//connexion à la base mysql club et message si probleme

$connexion=mysql_connect('localhost','root','') or die ("tralalilala");
mysql_select_db ('phototheque');


//envoi de la requête SQL a la base de donnees

$query=mysql_query ("insert into indexer (IDP,IDM) VALUES ('$IDP','$IDM')") or die ("tralalilala");

//fermeture de la connection

mysql_close($connexion);

?>


je me dis qu'il faut rajouter un else stipulant que si la valeur de (IDP+IDM) est différente de celle déjà présente dans la base, alors c'est bon...

Mais, comment on traduit ça en PHP...?

PS : si un tutoriel (que je n'ai pas trouvé) explique tout ça, merci de me le préciser.

Cordialement,
un documentaliste à l'arrache

Autres pages sur : php sql insert into doublons

27 Décembre 2006 15:47:54

malgré le fait que ce message soit résolu, je transmet la solution

J'ai commis une erreur dans la création de ma base.

Pour demander à ce qu'un couple de données soit unique, il suffit de préciser lors de la création de la table : PRIMARY KEY (attribut1,attribut2).

J'ai mal écrit la fonction et maintenant ça marche

bonne journée
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS