Requête sql dans un tableau

Bonjour à tous et bon lundi ! ,

Je comprends pas trop pourquoi mais je n'arrive pas à mettre ma requête dans un tableau array. Pour info, voici mon code actuel, j'ai essayé avec du array_push, array, écho de mon array, rien à faire je n'arrive pas à y insérer mes données.
$sql = "SELECT * FROM cdr ORDER BY cdr.channel, cdr.calldate";
$req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

//$news = '';
// tant qu'il y a un enregistrement, les instructions dans la boucle s'exécutent
while($resultat = mysql_fetch_array($req))


{

//on formate le numero de tel pour qu'il commence par 33 POUR LA FRANCE

if (substr($dataline['dst'], 0 , 4) == '0033')  
        {
                $dataline['dst'] = substr($dataline['dst'], 2);
        }
$dataline['dst'] = preg_replace( "/^0(?=[1-9])/", "33" , $dataline['dst']);


if (substr($dataline['dst'], 0 , 4) == '9933')  
        {
                $dataline['dst'] = substr($dataline['dst'], 2);
        }
$dataline['dst'] = preg_replace( "/^99(?=[1-9])/", "" , $dataline['dst']);


        $sql = "SELECT *, SUM(f.prix_minute* (cdr.billsec/60)) as SUM  FROM trunks t".
" LEFT JOIN clients c ON c.clients_id = t.clients_id".
" LEFT JOIN forfaits f ON c.forfaits_id = f.forfaits_id".
" LEFT JOIN cdr ON c.clients = cdr.channel".
" WHERE cdr.dst LIKE concat(f.prefixe,'%')".
" AND t.nomtrunk LIKE cdr.channel";

$values = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


if($values)
{
array($values);
//array_push($linefinal, $finalSumBillSec['billsec']);
$tabComplete[] = $values;
//array_push($tabComplete[],$finalSum);
//$tabComplete[]['sumTotal'] = $final2;
}
var_dump($values);
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.


Si quelqu'un peut m'aider...
Merci à tous !

3 réponses

  1. Modérateur
    Bonjour,

    Tu as oublié de faire un FETCH....

    PS: Attention.. tu utilises une version considérée comme obsolète de mysql.
    https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

    Passes à PDO ou mysqli
    1. concernant le mysqli je ne le maitrise pas du tout (tout comme mysql et php mais bon)
      et mon maître de stage me conseille de rester sur mysql malgré l'obsolescence
  2. du coup j'ai écrit ça:

    if($values)
    {
    mysql_fetch_array($values);
    //array_push($linefinal, $finalSumBillSec['billsec']);
    $tabComplete[] = $values;
    //array_push($tabComplete[],$finalSum);
    //$tabComplete[]['sumTotal'] = $final2;
    }
    var_dump($values);
    }


    Mais toujours aucune donnée dans mon tableau :/

    EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
    Explications disponibles ici : ICI

    Merci d'y penser dans tes prochains messages.


    Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie
    1. Modérateur
      Oula ...
      Il faut que tu fasses une BOUCLE sur les éléments retournés par la requête ... et que tu fasses un FETCH sur chacun d'eux....

      $tabComplete = array(); //initialisation du tableau
      if($values){
        while ($row = mysql_fetch_array($values, MYSQL_NUM)) {
          $tabComplete[] = $row; //on ajoute les données dans le tableau
        }
      }
      
      //affichage du contenu du tableau :
      print_r($tabComplete);