|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2005 Messages : 86 ![]() |
Salut j'aimerais savoir si c'est possible de verifier si le contenu de 2 requetes est identiques
ex: table1 j'ai une primary key avec nomQuestion question 1 niveau1 question 2 niveau3 question 3 niveau3 2ieme table j'ai une double primary key login nomQuestion lu bob question1 nonlu bob question2 lu bob question3 nonlu bobby question1 nonlu bobby question2 lu bobby question3 lu Si je fais -Select nomQuestion from table1; -Select nomQuestion from table2 where login=`bob`; la requete rapporte les meme champs j'ai penser a faire un num rows mais ca pas rapport puisque pas a cause que ya le meme nombre de ligne que c les meme champs... merci |
|
|
00
|
|
|
#2 | |
|
Invité(e)
Messages : n/a ![]() |
Citation:
Select nomQuestion,lu from table1 Select nomQuestion,lu from table2 where login=`bob` |
|
00
|
|
|
#3 | |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
à reprendre dans un français intelligible SVP :
Citation:
|
|
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Citation:
C'est vrai que c'est du 5 étoiles là
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() |
Mais c'est parfaitement clair, à cause que y'a les même PK, puisque pas à cause que c'est les même champs !
On dirait des traductions Babelfisf / Google
|
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2005 Messages : 86 ![]() |
j'avoue que c'est laid en sal comme phrase
Je voulais dire mettons que je fais une requête de ma première table et que ça me rapporte question 1 question 2 question 3 ensuite ma deuxième requête me rapporte exactement question 1 question 2 question 3 J'avais pensé à faire un num_rows pour voir si les 2 ont le même nombre de lignes,mais ça marchera pas dutout puisque que ca ne signifie pas que c'est les mêmes données. C'est sur que je pourrais verifier chaque ligne une par une pour vérifier mais j'aimerais savoir si il ya une façon plus rapide. |
|
|
00
|
|
|
#7 | ||
![]() Développeur Web Inscription : juillet 2003 Messages : 676 ![]() |
Pas de solution miracle, faut faire une boucle pour comparer chaque ligne.
Ou, mieux à mon avis, remplir 2 tableaux $tab1 = array($question1, $question2....) $tab2 = array($question1, question2 ....) puis un array_diff si le résultat est empty, c'est que c'est pareil www.php.net/array_diff Code :
__________________
Articles sur developpez.com - Gestion des exceptions avec PHP5 - Chiffrement et hash en PHP contre l'attaque Man in the middle - Aedituus - Espace membre sécurisé en PHP5 Lithium : ORM ActiveRecord PHP5 extrêmement léger |
||
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
ou alors si ta version de mysql est recente, tu fait un UNION avec un DISTINCT global sur les 2 resultats
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2005 Messages : 86 ![]() |
SELECT nomQuestion from table1 UNION SELECT nomQuestion from table2 where login='un nom';
Ou je metterais le Distinct global? merci |
|
|
00
|
|
|
#10 | ||
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
comment sais-tu qu'il tourne avec mysql?
sinon si ton SGBD supporte UNION et EXCEPT tu peux faire Code :
|
||
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2005 Messages : 86 ![]() |
Ma version de mySQL supporte pas le EXCEPT , ca me donne une syntax error à chaque fois que je le met.
Dommage , c'était exactement le genre de requête que je voulais(retourne 0 enregistrements si pareil) |
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2005 Messages : 86 ![]() |
SELECT nomQuestion from table1 where nom in(SELECT nomQuestion from table2 where login='bob')
Sinon est-ce que c'est possible de faire ce genre de requete mais au lieu de 'in' ca serait un 'in negatif' Je sais pas si c'est clair |
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2005 Messages : 86 ![]() |
oublier le post j'ai juste a mettre 'not'
|
|
|
00
|
|
|
#14 | |||||||
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Citation:
Code :
Code :
Code :
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|||||||
|
|
00
|
|
|
#15 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Salut,
@Fladnag : UNION supprime les doublons. Donc, dans ton premier code, le DISTINCT et la sous-reqête dans le FROM sont inutiles. Et pour les deux autres, je pense que ça ne fonctionne pas puisque COUNT(*) pour chaque groupe sera 1. En plus, je crois que le problème de darkbob n'est pas d'éliminer les doublons mais de savoir si deux requêtes retournent le même résultat. Code :
Tu peux mettre "SELECT AVG(t2.nb) = 2" comme ça, ça renvoie directement true/false. Et si tu utilises MySQL 5, pourquoi ne pas créer une fonction qui prend en paramètre le login et qui renvoie un booléen. |
||
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
arf, j'oubliais cette propriété de l'union, mais avec UNION ALL en effet, on peut la contourner, et faire les count() qui vont bien ;o)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com