Page 1 sur 1

Récupérer Colonnes base de données sans trie

Posté : 18 nov. 2013, 12:55
par InfoGeo
Bonjour,

Dans mon code je récupère les différentes colonnes de ma base de données mais je rencontre un probleme :cry:

En effet, il récupère bien les colonnes sauf que pour certaines il les trie par ordre alphabétique 8O
J'ai l'impression qu'il trie par ordre alphabétique celles qui ont une valeur nulle, je voudrais savoir pourquoi et surtout comment l'empecher car du coup ca fait foirer tout le reste ... Je voudrais juste avoir mes colonnes dans des tableaux sans aucun trie.
pour pouvoir ensuite faire des croisements entre les différents tableaux.

Voici mon code:
// permet de récupérer les colonnes de la base de données dans des tableaux JS
function DataBase($colonne) {
	try{
		$db = new PDO('mysql:host=localhost;dbname=db_actis', 'root', '');
	}
	catch (Exception $e){
		die('Erreur : ' . $e->getMessage());
	}
	$data = array();
	$sth = $db->prepare('SELECT '.$colonne.' FROM `table_actis`');
	$sth->execute();
	$data = $sth->fetchAll(PDO::FETCH_COLUMN, 0);					
	return $data;
}		
if (isset($_GET["colonne"])) {
  $colonne = $_GET["colonne"];
  $resultat['lacolonne'] = DataBase($colonne);
}
[javascript]
function GetDataBase() {
var tab_nomColonne = ["BP_name", "Country", "Net_EURO", "Segment", "Month", "Quarter", "Year", "Regions",
"Offer_type", "Releas_OXE", "Users_with_sip", "Additional_users_OF_1"];
for (var i = 0, l = tab_nomColonne.length; i < l; i++) {
url = "colonne=" + tab_nomColonne;
ajax_call(url, function(json){
window["Col_" + tab_nomColonne.toString()] = json['lacolonne'];
});
}
}
[/javascript]


La structure de ma base de données, le firebug qui affiche le contenu des tableaux JS et le contenu de ma base de données dans MySQL.

On constate que pour certains tableaux il n'y a pas de problemes
Ex: Col_Month, Col_Net_EURO, Col_Quarter ...

Mais pour d'autres comme Col_BP_name, Col_Country, Col_Releas_OXE ... ca ne va pas du tout :'(


J'espere que vous pourrez m'aider =)

Re: Récupérer Colonnes base de données sans trie

Posté : 18 nov. 2013, 14:13
par xTG
Il serait bon d'exécuter le code en deux parties pour le debug.
D'abord regarder le retour de la requête sans Ajax pour voir si l'array retourné mets ou non les NULL en premier.
Si ce n'est pas le cas il va te falloir te tourner vers le javascript.

Re: Récupérer Colonnes base de données sans trie

Posté : 18 nov. 2013, 15:44
par InfoGeo
Yo merci de ta réponse !

J'ai finalement trouvé, j'utilisais une fonction qui permettait de trier ces colonnes recus afin de ne récupérer que des valeurs distinctes.

Je faisais ceci:

[javascript]function cleanArray(array) {
array.sort();
var temp = "";
var num = 0;
var tableau_listé = new Array();
for (var i = 0, l = array.length; i < l; i++) {
if (!array) {
}
else {
if (temp=="") {
tableau_listé[num] = array;
num = num +1;
temp = array;
}
else {
if (temp.toLowerCase() != array.toLowerCase() ) {
tableau_listé[num] = array;
num = num +1;
temp = array;
}
}
}
}
return tableau_listé;
}[/javascript]


Le array.sort() .... était la cause de tous mes soucis


Il n'y a pas de raison fondamentale non j'ai juste préféré faire comme ca =)

J'ai donc modifié ma fonction clean_array et je l'ai fait en php-mysql

voila =)