Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/03/2006, 10h37   #1
Invité régulier
 
Inscription : janvier 2006
Messages : 51
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 51
Points : 9
Points : 9
Par défaut [Conception] boucle insertion dans table

bonjour , voila , j'ai une boucle d'insertion de valeurs dans une table mais quand $cat pour une nouvelle insertion est identique , il supprime tous les enregistrements précedents au lieu de les rajouter aux precedents puis enregistre les nouveaux
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
 if ($_POST['envoi']=="insertion")
	{ $prefix=$_POST['prefix'];
	$cat=$_POST['cat_photo'];
	$deb=$_POST['debut'];$fin=$_POST['fin'];
	for ($i=$deb;$i<=$fin;$i++)
		{$insertListe = "INSERT INTO imagephoto (nom_photo, id_cat_photo) VALUES ('".$prefix.$i."', '".$cat."')";
		$Result2 = mysql_query($insertListe, $conn) or die(mysql_error()); 
		}
		}
 
?>
Merci
tomtomtomtom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 10h57   #2
Membre éprouvé
 
Avatar de gofono_bass
 
Inscription : décembre 2005
Messages : 385
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 385
Points : 409
Points : 409
je comprends pas tres bien ce que tu veux dire...
__________________
mais pourquoi tu cours?
gofono_bass est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 10h58   #3
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
faut rajouter la contrainte UNIQUE à la colonne de ta variable
Code :
Alter table Imagephoto ADD CONSTRAINT nom_de_la_contrainte UNIQUE (cat)
alors tu peux reprendre ta requete . si $cat est identique alors ta BD te renvera un message d'erreur.
__________________
la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 11h12   #4
Invité régulier
 
Inscription : janvier 2006
Messages : 51
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 51
Points : 9
Points : 9
Par défaut nom

En fait en fonction par exemple d'une catégorie choisie dans un select
, je souhaite rajouter dans une table des enregistrements avec pour valeurs 1,2,3.....par exemple mais quand je rechoisis cette meme categorie , la table m'enleve les enregistrements de ce champ id_cat_photo puis insere dans un deuxieme temps la nouvelle serie 10,11,12 pour le champ nom_photo

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 <form id="form2" name="form2" method="post" action="">
      <table width="434" border="0" align="center" class="produitslist">
        <tr>
          <td width="232">d&eacute;but nom image (sans extension):</td>
          <td width="176">
          <input name="debut" type="text" id="debut" /> 
          ex: 1           </td>
        </tr>
        <tr>
          <td height="18">fin nom image (sans extension):</td>
          <td><input name="fin" type="text" id="fin" />
          ex: 4          </td>
        </tr>
        <tr>
          <td height="18">cat&eacute;gorie photo:</td>
          <td><label>
            <select name="cat_photo" id="cat_photo">
              <?php
do {  
?>
              <option value="<?php echo $row_selectcategoriephoto['id_photo']?>"><?php echo $row_selectcategoriephoto['nom_voyage']?></option>
              <?php
} while ($row_selectcategoriephoto = mysql_fetch_assoc($selectcategoriephoto));
  $rows = mysql_num_rows($selectcategoriephoto);
  if($rows > 0) {
      mysql_data_seek($selectcategoriephoto, 0);
	  $row_selectcategoriephoto = mysql_fetch_assoc($selectcategoriephoto);
  }
?>
            </select>
          </label></td>
        </tr>
        <tr>
          <td height="18">ajout d'un pr&eacute;fix &agrave; un nom d'image </td>
          <td><label>
            <select name="prefix" id="prefix">
              <option value="">aucun</option>
              <option value="0">0</option>
              <option value="00">00</option>
            </select>
          </label></td>
        </tr>
        <tr>
          <td height="18">&nbsp;</td>
          <td><input name="envoi" type="submit" id="envoi" value="insertion" /></td>
        </tr>
      </table>
</form>
tomtomtomtom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 12h10   #5
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
rajoute à id_cat_photo la contrainte d'UNICITE
Code :
alter table  Imagephoto ADD CONSTRAINT nom_de _ta contrainte UNIQUE(id_cat_photo)
puis refais tout simplement tes insertions
__________________
la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 12h32   #6
Invité régulier
 
Inscription : janvier 2006
Messages : 51
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 51
Points : 9
Points : 9
Par défaut aide

Code :
alter table  Imagephoto ADD CONSTRAINT contrainte UNIQUE(id_cat_photo) ;
Duplicate entry '1' for key 1
j'ai une erreur des le premier enregistrement et à quoi sert cette contrainte (je ne connais pas) ?merci


de plus tout à l'heure les enregistrement insérés ne sont pas dans l'ordre
pour les noms 1,2,3 mais 1,10,..
tomtomtomtom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 12h54   #7
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
en fait la contrainte sert à éviter d'avoir une meme valeur lors de ton insertion.l'erreur survenu indique que t'as déjà utilisé 1 et dont tu ne peux plus réutilisé ? tu dois passer à une valeur que ne contient pas encore ta BD. Toutes valeur repétitive rentrées comme nouveau champ te renvera une erreur comme tel.Ainsi t'auras plus de problème quand tu choisira la meme catégorie.
__________________
la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 13h41   #8
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
passe l'attribut id_cat_photo en auto_increment et lors de l'insertion fais ainsi :
Code :
INSERT INTO imagephoto (nom_photo,'')
Tu peux aussi ainsi la mettre en clef primaire
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 17h16   #9
Invité régulier
 
Inscription : janvier 2006
Messages : 51
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 51
Points : 9
Points : 9
Par défaut aide

auto incrementer une var caractere , il ne veut pas
de toute façon meme si ça marchait , je souhaite qu'à chaque nom de photo , le champ suivant id_cat_photo (qui n'est pas le champ id autoincrementer , c'est juste un lien avec une autre table) doit avoir une valeur que je lui insere
rapellant à quelle categorie il appartient .Le '' n'est pas bon ,il lui faut $cat
merci
tomtomtomtom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 17h41   #10
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
Tomtomtomtom, en utilisant la contrainte ke je t'ai passé plus haut les choz devraient pourtant marcher. peut être t'ai je mal saisi?
__________________
la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 17h47   #11
Invité régulier
 
Inscription : janvier 2006
Messages : 51
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 51
Points : 9
Points : 9
Code :
alter table  Imagephoto ADD CONSTRAINT  contrainte UNIQUE(id_cat_photo)
je n'ai pas d'erreur .on peut mettre n'importe quoi à la place du mot contrainte ?

Mais il ne m'insere qu'un enregistrement et au deuxieme post du formulaire, l'enregistrement de la meme categorie est remplacé comme avant
tomtomtomtom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 18h01   #12
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
faut ke le nom de ta contrainte soit explicite. pour mieux te rappeler si t'avait besoin de faire une modif de la contrainte.
pour le reste je comprends plus rien. c'est bizarre. ça devrait marcher pourtant.
bref bocou de courage . peu être ya til kelk'un ki te comprendra mieux.
__________________
la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 18h05   #13
Invité régulier
 
Inscription : janvier 2006
Messages : 51
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 51
Points : 9
Points : 9
Par défaut aide

ce que je n'arrive pas à comprendre un insert rajoute un enregistrement mais quand c'est fait dans une boucle repetitive , ça ne marche pas ...ça remplace les précédents quand un des champs contient une valeur identique
tomtomtomtom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 23h35   #14
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
tu peux contourner le probleme en rajoutant un identifiant de type entier (tiny int) en auto_increment et en primary_key, normalement ça devrais marcher comme ça

ps : la contrainte ne marche pas car il veut pouvoir mettre plus d'une fois des enregistrements avec le même id_cat_photo
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 06h40   #15
Membre éprouvé
 
Avatar de gofono_bass
 
Inscription : décembre 2005
Messages : 385
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 385
Points : 409
Points : 409
c'est egalement ce que je me disais pour les contraintes, je pense pas que ça convienne pour son cas.
Pour le reste, je suis egalement d'accord avec loka, tu mets une clé primaire auto increment,et dans ta boucle tu fais tes insertions sans préciser la valeur de cette clé.
__________________
mais pourquoi tu cours?
gofono_bass est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 09h38   #16
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
Tomtomtomtom, dslé je t'avais mal saisi. la suggestion de loka est judicieuse ç a devrait matcher.alors prière de tester et de nous dire la suite.
__________________
la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h55.


 
 
 
 
Partenaires

Hébergement Web