Bonjour,
ça fait maintenant 3h que je bloque sur un probleme sur une de mes pages PHP.
l'objectif de ma page est de récuperer dans une colonne d'un fichier .csv un numero de téléphone et d'interroger une base MySQL pour savoir si elle detient ce numero.
code pour récuperer dans mon fichier .csv:
Mon tableau $tableau detient alors la liste de tous les numéros présent dans la colonne 17 de export.csv.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $row=0; $tableau=array(); $nomfichier="export.csv"; $handle = fopen("./".$nomfichier, "r"); while (($data = fgetcsv($handle, "100000", ";")) !== FALSE) { $num = count($data); for ($c=0; $c < $num; $c++) { switch($c) { case '17':$tableau[$row]=trim($data[$c]); $row++; break; // numero } } }fclose($handle);
Si je parcours ce tableau avec un echo la liste est correcte. (pas d'espace en trop etc..).
Maintenant interrogeons ma BDD:
Lorsque j'excute le script aucun numéro n'est trouvé dans la BDD ->mysql_num_rows=0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 mysql_connect("localhost", "root", ""); // Connexion à MySQL mysql_select_db("bdd"); // Sélection de la base for($g=1;$g<sizeof($tableau);$g++) //parcours du tableau { if($tableau[$g]!="") //petit controle { echo $tableau[$g]."-"; $requete="SELECT id_loc FROM annuaire WHERE numero='$tableau[$g]'"; echo $requete."-"; //affichage de ma requete pour debugage echo mysql_num_rows(mysql_query($requete))."<br>";//nb de numero dans la bdd. } } mysql_close();
Cependant si je colle les mêmes requetes dans phpmyadmin j'ai bel et bien un resultat.
Le plus surprenant c'est que lorsque je force le 0472524545 en amont de ma requete je trouve bien un resultat. $tableau[4]="0472524545";
les requetes que ce soit en forcer ou en automatique sont exactement les même mais ne renvoie pas le meme resultat.
les requetes sont en tout point identiques....
SELECT id_loc FROM annuaire WHERE numero='0472524545' -->1
SELECT id_loc FROM annuaire WHERE numero='0472524545' -->0
Il n'y a même pas un espace de différence..
En php il n'y a pas de type de variable pourtant? quelle est alors la difference entre mon alimentation en automatique et en manuel ?
merci de votre aide,
Partager