Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
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 20/02/2006, 11h01   #1
Nouveau Membre du Club
 
Inscription : mai 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 131
Points : 35
Points : 35
Par défaut Problème insertion Mysql_query

bonjour,

J'ai crée une page d'installation et lors que je fais des insertions je n'ai que la première ligne d'insertion qui est écrite dans la tbale

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
49
50
51
52
53
54
55
56
57
58
59
60
 
<?php 	
 
 // Charge les paramètres de connexion à la base de données.
   require_once("config.php");   					  
   // Préparation de la connexion persitante 
   $idConnexion = mysql_pconnect($base_serveur, $base_user, $base_password);   		 
   // Préparation de la connexion persitante 
   IF (!$idConnexion) {
        die("<b>Impossible d'établir la connection vace le serveur  $base_serveur </b>");
    }	
 
    IF (!mysql_select_db($base_name)) {
        die("<b>Impossible de se connecter à la base de données  $base_name </b>");
    }     
 
//****************
// Table LIENS
//****************
 
    $table = "lien";
    // Supprime la précédente table
    $requete = "DROP TABLE $table";
    mysql_query($requete, $idConnexion);
 
     // Préparation de la requete de création 
      $requete = "CREATE TABLE $table (lien_num INTEGER(3) PRIMARY KEY ,                                          
                                        lien_nom VARCHAR(15),
										lien_nbclick INTEGER(6),
										lien_texte text,
										lien_profil VARCHAR(2),
										lien_type VARCHAR(10)
										)";
     // lancement de la requete de création 								
        if (!mysql_query($requete, $idConnexion))  
		{	
		echo "La création de la table  $table  a échouée !</br>";
		} else {
        echo "La table  $table vient d'être créée avec succès !</br>";           
    }	
 
	 // alimentation du lien menu accueil avec lien vers articles
     $requete = "INSERT into $table (lien_num,lien_nom,lien_texte,lien_type)       
	                   VALUES('1' , 'Articles' , 'Page Articles' , 'Menu')"; 
     // lancement de la requete d'insertion								
      mysql_query($requete, $idConnexion);	 
 
	 // alimentation du lien menu accueil avec lien vers contacts
     $requete = "INSERT into $table (lien_num,lien_nom,lien_texte,lien_type)       
	                   VALUES('1' , 'Contact' , 'Page contact' , 'Menu')"; 
     // lancement de la requete d'insertion								
      mysql_query($requete, $idConnexion); 
 
	 // alimentation du texte défilant
     $requete = "INSERT into $table (lien_num,lien_nom,lien_texte,lien_type)       
	                   VALUES('1' , 'Défilant' , 'Texte défilant' , 'Defile')"; 
     // lancement de la requete d'insertion								
      mysql_query($requete, $idConnexion);	 	  
 
?>
Dans le cas évoqué , seule la ligne article s'écrit dans la base.
Par contre si je flague , cette ligne alors c'est la ligne contact qui s'écrit mais toujours une seule ligne.

Il n'est pas possible de faire plusieurs insert à la suite ???

Philippe
philippe30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h04   #2
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
biensur que tu peux faire plusieurs insert de suite
mais réfléchi un peu

a chaque fois que tu réécris $requete = ... alors tu changes la valeur de cette variable.

après chaque $requete
écris : mysql_query($requete, $idConnexion);

de cette façon tout se fera d'affilé
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h12   #3
Membre du Club
 
Inscription : février 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 104
Points : 68
Points : 68
ou alors tu fait appel à la connection au début et tu fait une suite de mysql_query(
psykbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h36   #4
Membre habitué
 
Avatar de ciesco
 
Inscription : février 2004
Messages : 110
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 110
Points : 119
Points : 119
dj-julio=> MAis c'est pas ce qu'il fai deja?
ciesco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h42   #5
Membre habitué
 
Inscription : février 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 109
Points : 120
Points : 120
Je ne suis aps un pro de MySql .. mais ne faudrait-il pas faire un commit apres chaque INSERT ?
dev_php_205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h48   #6
Membre du Club
 
Inscription : février 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 104
Points : 68
Points : 68
Voilà ce que j'ai fait dans le mien et qui fonctionne (peut-être pas le meilleur)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql_query("CREATE DATABASE `pcb2b` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_cs");
$bdd="pcb2b";
mysql_select_db($bdd) OR die ("<p>Cr&eacute;ation de la base de donn&eacute;es ...... <span class=Failed>Echec</span></p>");
echo("<p>Cr&eacute;ation de la base de donn&eacute;es ...... <span class=Success>Succ&egrave;s</span></p>");
 
mysql_query("CREATE TABLE `articles` (
`article_id` INT( 8 ) NOT NULL AUTO_INCREMENT ,
`article_code` INT( 8 ) NOT NULL ,
`article_designation` VARCHAR( 150 ) NOT NULL ,
`article_uniteprix` VARCHAR( 8 ) NOT NULL,
`article_groupe` VARCHAR( 25 ) NOT NULL ,
`article_active` INT ( 1 ) DEFAULT 1 NOT NULL,
PRIMARY KEY ( `article_id` ))") OR die ("<p>Cr&eacute;ation de la table Articles ...... <span class=Failed>Echec</span></p>");
Bien sur il fuazt lancer la connection avant
psykbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h53   #7
Nouveau Membre du Club
 
Inscription : mai 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 131
Points : 35
Points : 35
Par défaut Problème Mysql

Bonjour,

J'ai fait la connection au début et ensuite suppression de la table par défaut .
Création de la table
Insert articles , contact etc ...

Dans l'exemple de psykbe , tu fais la créatio nde la table mais pas d'insertion de données .

Le problème c'est qu'il me fait une insertion uniquement sur la premier enreg et là je pige pas ...

Philippe
philippe30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h58   #8
Membre du Club
 
Inscription : février 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 104
Points : 68
Points : 68
Ton problème c'est que tu défini ta primary key (Premier champ) déja, la primary key est auto incrémentée donc tu ne doit pas l'entrer manuellement (en tout cas il faut qu'elle soit configurée comme telle) et ensuite à chaque insertion du lui dit d'aller réecrire sur la ligne '1' étant donné qu'une clé est unique donc soit tu laisse le faire en auto increment soit tu défini pour le 1ier l'id a 1 le 2ième à 2 ...
psykbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h59   #9
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Et de cette manière :

Citation:
<?php
// alimentation du lien menu accueil avec lien vers articles
     
$requete "INSERT into $table (lien_num,lien_nom,lien_texte,lien_type)       
                      VALUES
                      ('1' , 'Articles' , 'Page Articles' , 'Menu'),
                      ('1' , 'Contact' , 'Page contact' , 'Menu'),
                      ('1' , 'Défilant' , 'Texte défilant' , 'Defile')"
;
     
// lancement de la requete d'insertion                        
      
mysql_query($requete$idConnexion); 
?>

Phpsyntaxcolor powered by decabodi
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 12h00   #10
Membre habitué
 
Inscription : février 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 109
Points : 120
Points : 120
suivant la doc officielle :
Code :
1
2
3
4
5
 
Valeurs de retour
Pour les requêtes du type SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur. 
 
Pour les autres types de requêtes, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.
pour tester, recupere le resultat de chaque requete insert et fait un echo de chaque pour voir ce qu'il retourne ... TRUE ou FALSE !
Si c'est trou a chaque fois .. c'est le commit qui manque.. sinon .. probleme de clef primaire .. enfin a voir ...
dev_php_205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 12h01   #11
Membre habitué
 
Inscription : février 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 109
Points : 120
Points : 120


Trou !!! .. TRUE ... pardon ..
dev_php_205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 12h06   #12
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
C'est pas un forum de golfeur ici ?
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 12h15   #13
Membre habitué
 
Avatar de ciesco
 
Inscription : février 2004
Messages : 110
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 110
Points : 119
Points : 119
Oui ce que dit psykbe est pafait, ne mets pas ce champs dans tes insrt et ca ne peut que marcher.
ciesco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 12h26   #14
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
@dev_php_205 : le COMMIT n'est valable que dans les situations de transactions, ce qui n'est pas le cas ici.

+1 pour la proposition de psykbe : code toujours avec mysql_query($sql) or die(mysql_error()); lorsque tu ne sais pas ce qui cloche.
En l'occurence, tu spécifies systématiquement la même clé primaire, qui existe depuis le premier INSERT.
Si tu affiches mysql_error(), je parie qu'il te dira que tu as un duplicate.
La solution est soit de mettre des ID différents, soit de mettre le champ en auto_increment (sans valeur par défaut) et de ne pas spécifier l'ID lors de l'insertion.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 16h21   #15
Nouveau Membre du Club
 
Inscription : mai 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 131
Points : 35
Points : 35
Par défaut Solution Mysql_query

Bonjour,

C'est le déchainement sur mon post , merci de votre intéret .

La solution est effectivement au niveau de la primary key , lors de mes insertions je mettais toujours 1 comme valeur dans la variable lien_num ...

Ah le copier coller ....

Merci pour vos réponses

Philippe
philippe30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h37.


 
 
 
 
Partenaires

Hébergement Web