|
Dernière réponse | ||
---|---|---|
Sujet : [MYSQL] requête mysql foireuse | ||
Profil supprimé |
|
Aperçu |
---|
Vue Rapide de la discussion |
---|
|
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 :) |
irulan | On tachera de faire mieux la prochaine fois :D
A ton service :jap: |
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: |
FLY LM | 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 ??? |
irulan |
|
FLY LM | [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] |
__Lolo__ | irulan > la tu m'as grillé, c exactement ce que j'allais dire |
irulan | 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 ? |
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.... |
FLY LM | 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] |
|
|
__Lolo__ | 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 ? |
|
FLY LM | _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... |
FLY LM |
|
__Lolo__ | 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) |
FLY LM |
|
__Lolo__ | ds ta requete t'essaie de mettre une chaine vide comme clé primaire et ca lui plait pas, forcément... |
__Lolo__ |
|
irulan | 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 ? |
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'); :) |
__Lolo__ | 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] |
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... :(:(:(:(:( |
__Lolo__ | bah en gros t'essaies d'inserer une ligne ds ta table avec une clé primaire qui existe deja ! |
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 |
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 :) |
ç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 |
snif :(
on va mettre ça sur le compte de la fatigue ;) merci :) :) :) |
FLY LM | 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); @+ |
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 :) |