Récupérer un tableau d'une bdd [Résolu]

Signaler
Messages postés
118
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
6 octobre 2005
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Rebonjour,

j'ai enregistré dans ma base des tableaux dans une table, ce tableau
contient des valeurs qui doivent être mises à jour chaque jour, ainsi
les tableaux augmentent chaque jour d'une case et on y insère la valeur
du jour, tout ceci est automatique. Or j'arrive à mettre mes tableaux
dans ma bdd, mes qd je veux les ressortir il ne me sort qu'une valeur
et je ne peux pas ajouter de case aux tableaux...Voici mon code :



if ($db = mysql_pconnect($host, $login, $mdp)) {

if($dbb = mysql_select_db($base)) {



$search_adr= "SELECT adresse FROM $table";

$result=mysql_query($search_adr) or die(mysql_error());



while ($ligne = mysql_fetch_row($result)){




$search_class = "SELECT
class_note,class_vote,class_nb_clics FROM $table WHERE
adresse='$ligne[0]'";


$result_class=mysql_query($search_class) or
die(mysql_error());




$search_class_quot = "SELECT
class_quot_note,class_quot_vote,class_quot_nb_clics FROM statistiques
WHERE adresse='$ligne[0]'";


$result_class_quot=mysql_query($search_class) or
die(mysql_error());


$class_diff_quot =
mysql_fetch_row($result_class_quot);








//On compte la taille des tableaux deja
enregistrés

$compt_taille=count($class_diff_quot[0]);


echo "La taille du tableau tab_class_vote :
".$compt_taille." de la table : ".$ligne[0]."
";



$i=$compt_taille+1;




while ($class_diff = mysql_fetch_row($result_class)){


//On construit les tableaux pour
conserver les places


echo "Je place les données dans
la case ".$i."
";



$tab_class_quot_note[$i]=$class_diff[0];



$tab_class_quot_vote[$i]=$class_diff[1];



$tab_class_quot_nb_clics[$i]=$class_diff[2];

$i++;

}



//On met la base de données à jour


$req_alter= "UPDATE statistiques SET
class_quot_note='$tab_class_quot_note',class_quot_vote='$tab_class_quot_vote',class_quot_nb_clics='$tab_class_quot_nb_clics'
where adresse='$ligne[0]'";


$result_req_alter=mysql_query($req_alter) or
die(mysql_error());





//Visualisation


$search_class_quot = "SELECT
class_quot_note,class_quot_vote,class_quot_nb_clics FROM statistiques
WHERE adresse='$ligne[0]'";


$result_class_quot=mysql_query($search_class) or
die(mysql_error());


while($class_diff_quot =
mysql_fetch_row($result_class_quot)){


echo "Ce qu'il y a dans le
tableau tab_class_quot_vote : ".$class_diff_quot[1]." de la table :
".$ligne[0]."
";

}

}

}

}

mysql_close();





En fait il ne s'incrémente pas, ce que je veux c'est que
les tableaux (ici pour l'exemple j'ai essayé sur un seul :
$tab_class_vote), augmente d'une case a chaque fois que cette page est
exécutée, et que la valeur soit inscrite dans cette case. Merci d'avance

6 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
hello,



pour stocker des tableaux, il faut les serialiser. Je ne sais pas
comment tu as fait entrer tes tableaux dans ta base mais a mon avis, le
probleme vient de la.

$tableau_serialise = serialize ($tableau);

// requete pour inserer $tableau_serialise, qui est maintenant une chaine de caracteres!!



puis requete pour ressortir ton tableau. Tu recuperes donc une chaine :

$tableau_serialise

Pour le faire revenir a son ete de tableau :

$tableau = unserialize ($tableau_serialise);



Tu peux maintenant faire tes ajouts a $tableau. Et tu recommences le processus pour remettre ta table a jour.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Ben en php si tu fais un ajout dans un tableau, c'est automatiquement mis a la fin :



$tab[] = 2; (ca ajoute la valeur 2 a ton tableau, donc une nouvelle ligne a ton tableau, hein, c#est ce que tu veux faire ?)

exemple :



$tab = array (0, 1)

ton tableau contient donc 0 et 1

$tab[] = 2

ton tableau contient desormais 0, 1 et 2
Messages postés
118
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
6 octobre 2005

J'ai fait une petite modification à la fin :

while($class_diff_quot = mysql_fetch_row($result_class_quot)){


echo "Ce qu'il y a dans le
tableau tab_class_quot_vote : ";

print_r($class_diff_quot[1]);


echo " de la table :
".$ligne[0]."
";

}

En effet j'avais une petite erreur, et lorsque je faisai
un : "echo $class_diff_quot[1], il m'indiquait que c'était un 'Array',
donc j ai fait un print-r, ET un var_export, mais il m'affiche toujours
'Array', je ne comprends pas !
Messages postés
118
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
6 octobre 2005

Merci bien, mtnt je vais essayer de rajouter de rajouter des données
dans mes tableaux, serais tu comment on peut faire en PHP pour un
syntaxe de ce genre :

$myTab=$myTab+{2} // qui rajoute 2 à la fin du tableau

??????
Messages postés
118
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
6 octobre 2005

Merci bien
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Je t'en prie :-)