Bonjour à tous,

J'essai actuellement de faire passer le résultat d'une requête sql de mon php via mon script js avec ajax.
Je souhaite utiliser json_encode, seulement j'ai un problème.

Voilà mon code :

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<?php 
          $data = array();
          $myServer = "";
          $myUser = "";
          $myPass = "";
          $myDB = ""; 
 
          $conn = new COM ("ADODB.Connection")
          or die("Cannot start ADO");
 
          $connStr = "PROVIDER=SQLOLEDB.1;SERVER=".$myServer.";UID=".$myUser.";PWD=".$myPass.";DATABASE=".$myDB; 
          $conn->open($connStr);
 
          $A='XXXX';
          $B='Y';
 
          $query = "SELECT * FROM matable WHERE col1 LIKE '%" .$A.";".$B."%' ORDER BY col2 DESC";
          $rs = $conn->execute($query);
 
          $rs = $conn->execute($query);
 
          $num_columns = $rs->Fields->Count();
          $all_infos='';
          for ($i=0; $i < $num_columns; $i++) {
            $fld[$i] = $rs->Fields($i);
          }
 
          while (!$rs->EOF)
          {
            array_push($data, $fld);
            $rs->MoveNext();
          }
 
          echo json_encode($data);
 
          $rs->Close();
          $conn->Close();
 
          $rs = null;
          $conn = null;
?>
Ça fonctionne, mais voilà le résultat que j'obtiens :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
[[{},{},{},{},{},{},{}],[{},{},{},{},{},{},{}],[{},{},{},{},{},{},{}]]
Un tableau de tableaux vide ! Mais qui contient le bon nombre de tableau contenant le bon nombre de valeur !

J'ai cru lire ici & là que c'est plus simple en se connectant à la base avec mysqli seulement je n'y parviens pas, impossible de me connecter à la base de cette façon et je ne sais pas pourquoi.
Si dans mon while je place :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo $fld[0] ."-" .$fld[1] ."-" .$fld[2] ."-" .$fld[3] ."-" .$fld[4] ."-" .$fld[5] ."-" .$fld[6];
J'affiche bien les bonnes valeurs.

J'espère que vous pourrez m'aider. Je préfère utiliser json_encode plutôt que de faire une magouille.

Je vous remercie d'avance !