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

  FORUM HardWare.fr
  Programmation
  PHP

  Requête SQL/PHP qui marche pas ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête SQL/PHP qui marche pas ?

n°1899548
Odissine
Posté le 26-06-2009 à 16:22:06  profilanswer
 

Bonjour à tous, voila je lance le script ci-dessous pour pouvoir faire un matching entre deux tables.
 

Code :
  1. $query_a = "SELECT * FROM table1";
  2. $result_a = mysql_query($query_a);
  3. $i=0;
  4. while ($item_a = mysql_fetch_array($result_a))
  5. {
  6. $nom1 = $item_a['nom'];
  7. $query_b = "SELECT * FROM table2 WHERE nom2 = '$nom1'";
  8. $result_b = mysql_query($query_b);
  9. $num_b = mysql_num_rows($result_b);
  10. if ($num_b = 0)
  11. {
  12.  echo $nom1."<br>";
  13.  $i++;
  14. }
  15. }
  16. echo "<p><b>TOTAL : $i</b></p>";


 
Le resultat attendu serait de n'afficher les "nom" que des valeurs ne figurant pas dans la table2 ... Mais seulement voila, le num_rows me renvoi systematiquement "0", alors que certains champs sont pourtant strictement identique entre les deux tables...
 
Si qq'un à une idée du problème merci par avance
Cordialement

mood
Publicité
Posté le 26-06-2009 à 16:22:06  profilanswer
 

n°1899552
pataluc
Posté le 26-06-2009 à 16:29:50  profilanswer
 

regarde du coté des jointures, ca serait plus sexy et bcp plus efficace de faire ca en full sql...
 
Edit: ou plutot des sous requetes: qqchose du style:  
 

Code :
  1. SELECT * FROM table1 WHERE nom NOT IN (SELECT nom FROM table2);


 
doit pouvoir marcher (peut etre en adaptant en fonction de ton sgbd).


Message édité par pataluc le 26-06-2009 à 16:34:11
n°1899569
fluminis
Posté le 26-06-2009 à 16:47:29  profilanswer
 

A adapter a ton cas :
SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.champ1=t2.champ2 WHERE t2.champ2 IS NULL


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1899588
Odissine
Posté le 26-06-2009 à 17:07:35  profilanswer
 

Table 1
nom
AAA
BBB
CCC
DDD
EEE
 
Table 2
nom
AAA
FFF
GGG
HHH
 
Toutes vos requetes ci-dessus me renvoi la totalité de la Table 1 alors que logiquement la valeur AAA (étant présente dans Table 2) ne devrait pas être retournée... je pige pas ... Ce bug peut il etre lié a mon sgbd ? (pourtant en local je suis sous EasyPhp de base sans modif spé...)
 
Merci de votre aide

n°1899645
cinejapan
Posté le 26-06-2009 à 22:05:50  profilanswer
 

Quel est le type de base de données? MySql?
 
Autrement, les valeurs entre les tables sont-elles exactement les mêmes?
 
Pas "AAA" et "aaa", "AAA" et "AAA ", ce genre de différences?

n°1899814
Odissine
Posté le 28-06-2009 à 13:16:16  profilanswer
 

Base MySQL oui, et pour les données elles sont exactement les mêmes (tout en majuscule).
J'ai vérifié aussi le contenu des champs ... c'est bien "AAAAA" et pas "AAAAA " ou " AAAAA   " ou tout autres espace indésirable :p
En fait j'ai un fichier texte contenant les infos (une par ligne) et chaque enregistrement est ajouté dans la base pour comparaison ... Donc je vais voir a comparer directement le fichier txt avec la base ...  
 
Si qq'un à une idée ... sinon demain j'attaque ca ;)


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

  Requête SQL/PHP qui marche pas ?

 

Sujets relatifs
[VBA Access] Problème de requêteLien de la base SQL
SQL Tableau analyse croisée sur une année glissanteBande passante des pages PHP
[SGBD/SQL] Date de modification des enregs d'une table OracleExporter l SQL de ma base de donnèes en MySql5
Problème requête UPDATE SQLGénérer une page HTML à partir de formulaire PHP
Script SQL à 3 conditions 
Plus de sujets relatifs à : Requête SQL/PHP qui marche pas ?


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