Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1685 connectés 

  FORUM HardWare.fr
  Programmation

  [MYSQL] requête mysql foireuse

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MYSQL] requête mysql foireuse

n°35840
Profil sup​primé
Posté le 30-05-2001 à 23:55:43  answer
 

Commme vous avez étés si bons la dernière fois... je vous redemande de l'aide :) :)
 
je fais ceci :
 
      $result = mysql_query("SELECT nom_mat, valid, nom_sscat, nom_fab FROM materiel, sscategories, fabricants where fabricants.id_fab = materiels.id_fab and where sscategories.id_sscat = materiels.id_sscat ORDER BY materiels.id_mat", $db);
 
mais visiblement $result renvoie false.... à mon avis ma requête est foireuse... sûrement un pb de syntaxe... mais je vois pas où :) :)
 
un ptit coup d'main serait pas de refus :)

mood
Publicité
Posté le 30-05-2001 à 23:55:43  profilanswer
 

n°35849
FLY LM
Posté le 31-05-2001 à 00:35:05  profilanswer
 

Tu as écrit deux fois "WHERE"
 
->$result = mysql_query("SELECT nom_mat, valid, nom_sscat, nom_fab FROM materiel, sscategories, fabricants WHERE fabricants.id_fab = materiels.id_fab AND sscategories.id_sscat = materiels.id_sscat ORDER BY materiels.id_mat", $db);  
 
@+

n°35854
Profil sup​primé
Posté le 31-05-2001 à 00:52:00  answer
 

snif :(
 
on va mettre ça sur le compte de la fatigue ;)
 
merci :) :) :)

n°35858
Profil sup​primé
Posté le 31-05-2001 à 01:35:21  answer
 

ça marche pas... je pige plus rien là.... voici de quoi vous faire une idée.... ça peut aider....
 
http://chevalier.jeanmarc.free.fr/elcap/tables1.gif

n°35859
Profil sup​primé
Posté le 31-05-2001 à 01:41:00  answer
 

cherchez pas.....; j'avais oublié un s sur le nom d'une table....... halalala fatigue quand tu nous tiens.... bref, j'arrête pour ce soir... dodo :)

n°35890
Profil sup​primé
Posté le 31-05-2001 à 09:46:13  answer
 

Bon, là je suis réveillé, ça marche...
 
Mais ! car il y a toujours un mais :):):) je n'arrive pas à ajouter un enregistrement à ma table avec phpmyadmin !!!
j'ai cette erreur, que je ne comprends pas d'un iota...
 
"Duplicate entry '' for key 2"
 
Elcap

n°35892
__Lolo__
C'est pouleversant !
Posté le 31-05-2001 à 09:53:03  profilanswer
 

bah en gros t'essaies d'inserer une ligne ds ta table avec une clé primaire qui existe deja !

n°35899
Profil sup​primé
Posté le 31-05-2001 à 10:12:10  answer
 

c'est bizarre... ma clé primaire c'est :
id_mat qui est en auto_increment
 
je n'ai qu'un enregistrement dans cette base... id_mat est à 1
quand j'insère un nouvel enregistrement, je ne mets rien..... pour qu'il le passe à 2.... et si j'essaye en forcant (cad en mettant 2 voire 3) c'est pareil...
 
:(:(:(:(:(

n°35900
__Lolo__
C'est pouleversant !
Posté le 31-05-2001 à 10:19:09  profilanswer
 

ah ? heu.. joker !
 
la structure de ta table materiels et la requete que t'essaie de faire c koi (en sql of course)

 

[edit]--Message édité par __Lolo__--[/edit]

n°35902
Profil sup​primé
Posté le 31-05-2001 à 10:21:50  answer
 

pour la structure, regarde un peu plus haut dans ce thread... j'ai mis une image :)
 
pour la requête la voici :
 
INSERT INTO materiels VALUES( '', '8', '2', 'A902MT', '0000-00-00', 'http://www.iiyama.fr/documents/Caracteristiques%20Techniques/A902MT_CARACT.htm', '', '', '90', 'o');
 
:)

mood
Publicité
Posté le 31-05-2001 à 10:21:50  profilanswer
 

n°35909
irulan
Posté le 31-05-2001 à 10:33:54  profilanswer
 

2 points bizarres :
 
1- "Duplicate entry '' for key 2" : manifestement il essaie d'insérer une valeur vide ('') dans la table. Est-ce que tu es sûr d'avoir activé l'insertion auto de valeur pour la colonne ?
 
2- "Duplicate entry '' for key 2" : key 2 fait penser à une clé composée. N'y aurait-il pas une deuxième colonne entrant dans la composition de la clé primaire ?

n°35914
__Lolo__
C'est pouleversant !
Posté le 31-05-2001 à 10:37:38  profilanswer
 

elcap a écrit a écrit :

pour la structure, regarde un peu plus haut dans ce thread... j'ai mis une image :)
 
pour la requête la voici :
 
INSERT INTO materiels VALUES( '', '8', '2', 'A902MT', '0000-00-00', 'http://www.iiyama.fr/documents/Caracteristiques%20Techniques/A902MT_CARACT.htm', '', '', '90', 'o');
 
:)




 
essaye ca :  

Code :
  1. INSERT INTO materiels (id_sscat, id_fab, nom_mat, date_fab, fiche_web, achat_web1, chem_img, note_glob, valid) VALUES( '8', '2', 'A902MT', '0000-00-00', 'http://www.iiyama.fr/documents/Caracteristiques%20Techniques/A902MT_CARACT.htm', '', '', '90', 'o');

n°35915
__Lolo__
C'est pouleversant !
Posté le 31-05-2001 à 10:38:20  profilanswer
 

ds ta requete t'essaie de mettre une chaine vide comme clé primaire et ca lui plait pas, forcément...

n°35916
FLY LM
Posté le 31-05-2001 à 10:41:37  profilanswer
 

__Lolo__ a écrit a écrit :

 
 
essaye ca :  

Code :
  1. INSERT INTO materiels (id_sscat, id_fab, nom_mat, date_fab, fiche_web, achat_web1, chem_img, note_glob, valid) VALUES( '8', '2', 'A902MT', '0000-00-00', 'http://www.iiyama.fr/documents/Caracteristiques%20Techniques/A902MT_CARACT.htm', '', '', '90', 'o');






 
C'est exactement la même chose, "elcap" n'a pas besoin de définir les champs pour son insertion puisqu'il en respecte l'ordre et qu'il les insère tous.

n°35918
__Lolo__
C'est pouleversant !
Posté le 31-05-2001 à 10:42:45  profilanswer
 

si tu regardes bien g viré le 1er champ justement ... (la clé primaire est en auto_increment dc pas le droit de l'inserer a la main)

n°35920
FLY LM
Posté le 31-05-2001 à 10:48:15  profilanswer
 

__Lolo__ a écrit a écrit :

si tu regardes bien g viré le 1er champ justement ... (la clé primaire est en auto_increment dc pas le droit de l'inserer a la main)




 
Exact, j'avais pas vu.

n°35923
FLY LM
Posté le 31-05-2001 à 10:52:02  profilanswer
 

_lolo_-> Par contre, tu peux très bien insérer un CLE dont la propriété est auto_icrement si tu lui donne rien ('') comme valeur...

n°35925
Profil sup​primé
Posté le 31-05-2001 à 10:55:05  answer
 

irulan a écrit a écrit :

2 points bizarres :
 
1- "Duplicate entry '' for key 2" : manifestement il essaie d'insérer une valeur vide ('') dans la table. Est-ce que tu es sûr d'avoir activé l'insertion auto de valeur pour la colonne ?
 
2- "Duplicate entry '' for key 2" : key 2 fait penser à une clé composée. N'y aurait-il pas une deuxième colonne entrant dans la composition de la clé primaire ?




 
voici ma table :
Champ Type Attributes Null Defaut Extra
id_mat  mediumint(255)    Non    auto_increment
id_sscat  smallint(255)    Non  0
id_fab  smallint(255)    Non  0
nom_mat  varchar(255)    Non
date_fab  date    Oui
fiche_web  varchar(255)    Oui
achat_web1  varchar(255)    Oui
chem_img  varchar(255)    Oui
note_glob  varchar(255)    Non
valid  enum('o','n')    Non  n
 
j'ai donc bien l'auto-incrémentation...
et le pire c'est que l'insertion du premier enregistrement s'est bien passée... je l'aurai donc vu si j'vais glissé une clé composite...

n°35926
__Lolo__
C'est pouleversant !
Posté le 31-05-2001 à 10:56:02  profilanswer
 

g pas mysql sous la main dc je peux pas tester mais il me semblait que son message d'erreur venait de la justement...
 
elcap tu pourrais donner la syntaxe de ton create table plutot que ton image ca nous aiderait peut-etre ?

n°35927
Profil sup​primé
Posté le 31-05-2001 à 10:56:41  answer
 

fly lm a écrit a écrit :

_lolo_-> Par contre, tu peux très bien insérer un CLE dont la propriété est auto_icrement si tu lui donne rien ('') comme valeur...




 
je confirme... on peut lui donner une chaine vide en auto-incrément... ça marche pour toutes mes autres tables...
 
vous noterez que j'essaye avec une requête mais que l'interface phpmyadmin donne la même erreur.....

n°35928
Profil sup​primé
Posté le 31-05-2001 à 10:57:32  answer
 

__Lolo__ a écrit a écrit :

g pas mysql sous la main dc je peux pas tester mais il me semblait que son message d'erreur venait de la justement...
 
elcap tu pourrais donner la syntaxe de ton create table plutot que ton image ca nous aiderait peut-etre ?




 
voici :
 
CREATE TABLE materiels (
   id_mat mediumint(255) NOT NULL auto_increment,
   id_sscat smallint(255) NOT NULL,
   id_fab smallint(255) NOT NULL,
   nom_mat varchar(255) NOT NULL,
   date_fab date,
   fiche_web varchar(255),
   achat_web1 varchar(255),
   chem_img varchar(255),
   note_glob varchar(255) NOT NULL,
   valid enum('o','n') DEFAULT 'n' NOT NULL,
   PRIMARY KEY (id_mat),
   UNIQUE achat_web1 (achat_web1),
   UNIQUE nom_mat (nom_mat),
   UNIQUE id_mat (id_mat)
);

n°35933
FLY LM
Posté le 31-05-2001 à 11:05:13  profilanswer
 

La structure de ta table est mauvaise.
 
[Tu ne peux pas avoir un MEDIUMINT ou un SMALLINT dont la taille est 255. Pour MEDIUMINT la taille en octet est de 3 et pour SMALLINT de 2. Le problème ne vient peut-être pas de là, mais c'est déjà une erreur de structure de table...]
= CONNERIE voir mon dernier POST

 

[edit]--Message édité par fly lm--[/edit]

n°35938
Profil sup​primé
Posté le 31-05-2001 à 11:11:04  answer
 

je veux bien mais pourquoi ne me met-il pas uine erreur à la création de la table ??? la première fois je m'étais franchement planté en mettant 2500... là il m'a sorti une erreur en me disant que ça ne pouvait pas dépasser 255....

n°35946
irulan
Posté le 31-05-2001 à 11:19:31  profilanswer
 

Si tu reprends le message d'erreur "Duplicate entry '' for key 2" , est-ce que key 2 ne signifie pas que la contrainte d'unicité que tu as posé sur achat_web1 est violée ?
 
Vires les contrainte d'unicité pour voir ?

n°35949
__Lolo__
C'est pouleversant !
Posté le 31-05-2001 à 11:22:35  profilanswer
 

irulan > la tu m'as grillé, c exactement ce que j'allais dire

n°35952
FLY LM
Posté le 31-05-2001 à 11:26:05  profilanswer
 

[Ouaih, mais je t'assure que 255 pour un MEDIUMINT ou un SMALLINT, cela n'a pas de sens. Si cela fonctionne (j'en doute, même s'il ne te retourne pas d'erreur), cela voudrait dire que MySQL t'alloue 255 octets pour un entier qui selon le cas est de 2 ou 3 octets. Dans ce cas tu perdrais inutilement de la place.]
=CONNERIE VOIR MON DERNIER POST
 
La suite c'est bon :
 
TINYINT(4) -128 à  127 -> 1 octet
SMALLINT(6) -32 768 à  32 767 -> 2 octets
MEDIUM(9) -8 388 608 à 8 388 607 -> 3 octets

 

[edit]--Message édité par fly lm--[/edit]

n°35953
irulan
Posté le 31-05-2001 à 11:27:24  profilanswer
 

__Lolo__ a écrit a écrit :

irulan > la tu m'as grillé, c exactement ce que j'allais dire




 
 :bounce:  :sol:  
 :jap:

n°35968
FLY LM
Posté le 31-05-2001 à 11:40:45  profilanswer
 

Là je me suis même embrouillé moi même avec ces histoire d'octets. En fait, ce que tu as entre paranthèse derrière le SMALLINT(M) par exemple correspond à la taille de l'affichage (pas à un nombre d'octets). Oups c'est plus claire, tu ne peux pas dépasser 4 pour un TINNYINT (1 octet), 6 pour un SMALLINT (2 octets) ET 9 pour le MEDIUMINT (3 octets).
 
Je ne sais pas si c'est plus claire ???

n°35969
Profil sup​primé
Posté le 31-05-2001 à 11:42:38  answer
 

Irulan, lolo... vous êtes nuls de pas l'avoir vu plus tôt  :D  :D  :D  
 
et moi encore plus d'avoir mis une contrainte pareille là-dessus... et de m'être fait avoir... c'est dramatique  :D  :D  :D  
 
pour être sûr, j'ai pas viré la contrainte d'unicité, j'ai juste inséré mon truc en ne laissant pas le champs vide, avec une chaine kelkonke... ben ça marche, évidemment....
 
donc merci  :D  :D  :D  :D  
 :love:  :love:  :love:  :love:  :love:

n°35970
irulan
Posté le 31-05-2001 à 11:43:48  profilanswer
 

On tachera de faire mieux la prochaine fois :D
A ton service :jap:

n°35972
Profil sup​primé
Posté le 31-05-2001 à 11:44:33  answer
 

fly, je crois que j'ai mal compris le fonctionnement... avant de poser des milliards de questions, je vais potasser la doc et je reviendrais avec un nouveau message si besoin :)
 
merci :)

n°35976
Profil sup​primé
Posté le 31-05-2001 à 11:45:38  answer
 

irulan a écrit a écrit :

On tachera de faire mieux la prochaine fois :D
A ton service :jap:




 
non mais c'est vrai, merci merci  :sol:  :sol:  :sol:  :sol:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [MYSQL] requête mysql foireuse

 

Sujets relatifs
Lancer une requete sur Google depuis un programme JavaMot de Passe MySQL
requete sql facile mais particuliere??Hébergement Php4 / MySQL
[ASP][SQL] type de champ dans une requete[MySQL] Importation Bd contenant un caratère de m...
MYSQL ???[asp][sql] Requête trop balaise à faire...
[ASP] Afficher le résultat d'une requête particulière...[MySQL-Win] réparer une table corrompue
Plus de sujets relatifs à : [MYSQL] requête mysql foireuse


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR