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

  FORUM HardWare.fr
  Programmation

  [MySQL] requête foireuse... un peu plus dur :)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] requête foireuse... un peu plus dur :)

n°37124
Profil sup​primé
Posté le 05-06-2001 à 18:44:00  answer
 

Ca faisait longtemps hein ?? ;-)
 
bon, là ma requête est un peu plus compliquée.... le pb, c'est qu'il me renvoie toujours 0... il y a donc une erreur dans ma requête vu que ça devrait me renvoyer qqch :):):)
 
SELECT id_nomnote, nom_note FROM noms_notes WHERE noms_notes.id_cat in (SELECT id_cat from sscategories WHERE sscategories.id_sscat = '$listesscat')
 
et voilà :)

 

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

mood
Publicité
Posté le 05-06-2001 à 18:44:00  profilanswer
 

n°37144
__Lolo__
C'est pouleversant !
Posté le 05-06-2001 à 20:27:03  profilanswer
 

on peut pas imbriquer les requetes SELECT en mysql je crois  :(

n°37149
Profil sup​primé
Posté le 05-06-2001 à 20:41:45  answer
 

merdasse... c'est pour ça que ça marche pas.... putain, j'étais pourtant tout fier de ma requête  :D  :D  :D  
 
t'as une idée pour contourner le pb ?

n°37152
youdontcar​e
Posté le 05-06-2001 à 20:47:33  profilanswer
 

tu peux créer une table temporaire ... je n'ai pas la syntaxe en tête.

n°37154
Profil sup​primé
Posté le 05-06-2001 à 20:51:46  answer
 

mais ouais mais c'est ça la soluce !!!!!!! c'est pour pas grand chose, je sais pas si ça vaut le coup... enfin, j'apprendrai :)

n°37161
__Lolo__
C'est pouleversant !
Posté le 05-06-2001 à 21:07:16  profilanswer
 

Code :
  1. SELECT id_nomnote, nom_note
  2. FROM noms_notes, sscategorie
  3. WHERE noms_notes.id_cat=sscategories.id_cat
  4. AND sscategories.id_sscat = '$listesscat'


j'crois que c pas bon mais on sait jamais  :D

n°37168
Profil sup​primé
Posté le 05-06-2001 à 21:19:58  answer
 

non, ça marche pas dans mon cas ça :)

n°37170
myblood
Posté le 05-06-2001 à 21:29:44  profilanswer
 

Bonjour
Je n'ai pas la solution mais regarde dans la doc de mysql il explique comment contourner le problème des select imbriqués

n°37201
Profil sup​primé
Posté le 05-06-2001 à 22:54:01  answer
 

j'ai cherché mais j'ai pas trouvé :(:(

n°37217
myblood
Posté le 05-06-2001 à 23:42:38  profilanswer
 

Resalut
Doc de mysql 3.23.36:
 
he following will not yet work in MySQL:
SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);
SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2);
SELECT * FROM table1 WHERE NOT EXISTS (SELECT id FROM table2 where table1.id=table2.id);
 
However, in many cases you can rewrite the query without a sub-select:
SELECT table1.* FROM table1,table2 WHERE table1.id=table2.id;
SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id where table2.id IS NULL
 
Si ca t'aide t'en mieux
mais bon courage

mood
Publicité
Posté le 05-06-2001 à 23:42:38  profilanswer
 

n°37259
Profil sup​primé
Posté le 06-06-2001 à 09:41:49  answer
 

oui c'est bon avec ça et une table temporaire, je vais m'en sortir :)

n°37260
wouatouwou​atou
Posté le 06-06-2001 à 09:45:49  profilanswer
 

zarbi ton pb... lolo tavais donné la soluce il me semble non ?
c koi ki clochait ? :??:


---------------
"C'est le boulot qu'on ne commence jamais qui est le plus long à terminer"
n°37263
Profil sup​primé
Posté le 06-06-2001 à 09:55:30  answer
 

ce qui clochait ? ben une faute lorsque j'ai refait la requête  :p  :p  :p  :p  
 
je fais pas de copier/coller... j'essaye de refaire les trucs moi-même... voilà où ça me mène... à dire que ce que me propose les autres est faux... je suis si tant désolé...
 
meuua culle pas...
 
sorry...
 
'scuse ?

n°37264
__Lolo__
C'est pouleversant !
Posté le 06-06-2001 à 09:56:40  profilanswer
 

donc j'avais bon ?   :??:  
:hot:  :hot:  :hot:

n°37265
Profil sup​primé
Posté le 06-06-2001 à 10:00:59  answer
 

à 300 % !!!!!!
 
de plus il me smeblait avoir déjà essayé... bref... j'suis nul..
 
désolé..

n°38165
Profil sup​primé
Posté le 08-06-2001 à 14:21:36  answer
 

encore une ??
 
INSERT INTO materiels VALUES ('', '$listesscat', '$listefab', '$nom_mat', '$date_fab', '$fiche_web', '$achat_web1', '$nom_img', '$note_glob', 'n')
 
le pb, c'est que ça n'insère rien du tout... un copain développeur a regardé, il ne voit rien de choquant.... et vous ???
 
sos... je pige plus là....

n°38168
__Lolo__
C'est pouleversant !
Posté le 08-06-2001 à 14:24:45  profilanswer
 

il te renvoie un message d'erreur pr te dire que la clé primaire '' existe déjà non ?
precise le nom de tes champs sauf celui de la clé primaire et vire la valeur '' que tu mettais
ca devrais l'faire


---------------

n°38172
Profil sup​primé
Posté le 08-06-2001 à 14:28:28  answer
 

pas de msg d'erreur.. rien...
 
ma clé primaire est un champ auto-increment... le premier de la liste, c'est pour ça que je le renseigne pas...
 
le pb, c'est que :
 
INSERT INTO sscategories VALUES ('', '$listecat', '$nom_sscat')
et
INSERT INTO categories VALUES ('', '$nom_cat')
 
et bien d'autres fonctionnent.... j'ai compté, vérifié, j'ai bien le bon nombre de champs...
si je fais :
$last_id = mysql_insert_id();
echo "$last_id est l'id créé.";
 
j'ai bien 0.... alors que ça devrait être 2...  
 
il n'y a donc bien rien qui s'insère....

n°38194
Profil sup​primé
Posté le 08-06-2001 à 15:19:43  answer
 

j'ai trouvé !!!
 
comme je suis en test, j'ai pas rmpli tout les champs.... dont un qui est en clé... et comme il y a déjà un enregistrement dont ce champs est vide... ben il veux pas... je m'en suis rendu compte en essayant avec phpmyadmin :
erreur sur la clé 4.... je regarde quelle est la clé 4 dans ma table... et hop, je l'ai viré... et ça marche :))
 
comme quoi faut mettre des clés que là où c'est strictement nécessaire :)

n°38212
Fred999
Rabat-joie
Posté le 08-06-2001 à 16:06:19  profilanswer
 

Popopopop (c) ;)
 
Bon, pour ta première requête, je te conseille vivement d'utiliser les JOINTURES (comme il est expliqué dans l'extrait de la doc MySQL). Pourquoi? Bin là tu te débrouilles bien avec deux tables, quand il y en aura cinq, faire des IN sera nettement moins pratique.
 
Pour ta seconde requête (l'insertion) :
- une clé primaire ne devrait JAMAIS, AU GRAND JAMAIS être vide
- les champs auto-incrémentés, c'est bien mais fais gaffe aux "sauts" en cas de problème sur le serveur (par exemple, passer de 500 à 500000000500) (ne rigole pas, ça nous arrive)
- quand tu fais une insertion, il vaut mieux mettre la liste des champs insérés, même si ce n'est pas obligatoire, ça améliore la lisibilité.
 
A bientôt :hello:

n°38215
jupiler
Un cousin...
Posté le 08-06-2001 à 16:09:15  profilanswer
 

Fred999 a écrit a écrit :

Popopopop (c) ;)
 
Bon, pour ta première requête, je te conseille vivement d'utiliser les JOINTURES (comme il est expliqué dans l'extrait de la doc MySQL). Pourquoi? Bin là tu te débrouilles bien avec deux tables, quand il y en aura cinq, faire des IN sera nettement moins pratique.
 
 




 
c''est pas seulement moins pratique, c'est aussi moins performant


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°38216
Profil sup​primé
Posté le 08-06-2001 à 16:11:27  answer
 

Fred999 a écrit a écrit :

Popopopop (c) ;)
Pour ta seconde requête (l'insertion) :
- une clé primaire ne devrait JAMAIS, AU GRAND JAMAIS être vide




 
c pourquoi je l'ai viré (la clé)  :sol:  
 
Elcap
 :hello:

mood
Publicité
Posté le   profilanswer
 


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

  [MySQL] requête foireuse... un peu plus dur :)

 

Sujets relatifs
Un bon hébergeur php/Mysql ??sql et requete et blablabla
[MySQL] Gestion des utilisateurs[MYSQL] ERROR 2003: Can't connect to MySQL server on 'localhost' (100
[MySQL] question sur la rapiditéPb etat graphique à partir d'une requête
[MySQL] Débutant please help !serveur MySQL sous win2000....
[MySQL] gestion des dates[MYSQL] requête mysql foireuse
Plus de sujets relatifs à : [MySQL] requête foireuse... un peu plus dur :)


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