Recuperation champ bdd puis transformation en variable

Résolu
jphilippev
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
- 28 déc. 2007 à 12:29
jphilippev
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
- 28 déc. 2007 à 15:36
bon je récupere un tableau comme ceci

function recup_table_nouv_musique() {
 // requête mysql
 $reqnouvmusique= mysql_query('SELECT login FROM log WHERE rubrique=\'Musique\' AND confirm=\'n\''); // selection de la colonne nom dans musique;
 // création d'un tableau destiné à contenir les infos de la table et nommé en conséquence
 $tbl_array = array();
 // remplissage du tableau avec le contenu de la requête
 while($data = mysql_fetch_array($reqnouvmusique)) {
  foreach($data as $key => $value) {
   $tbl_array[$key][] = $value;
  }
 }
 return $tbl_array;
}



$tbl_array = recup_table_nouv_musique();
$cpt = count($tbl_array);
for ($i=0;$i<$cpt;$i++){
    $cpt2 = count($tbl_array[$i]);
    for ($j=0;$j<$cpt2;$j++)
    print_r ($tbl_array[$i][$j].'[?page=change_profile &nbsp;modification]
');
}

a part une erreur :
Notice : Undefined offset: 1 in C:\Program Files\EasyPHP 2.0b1\www\essai php\script_espace_membres\adminiroo2.php on line 63
ca fonctionne bien
mais maintenant je voudrais que le resultat de mon tableau ce transforme en variable
pour que je puisse réutilisé les valeurs recues je sais pas si je suis bien clair...
le résultat en html me donne ca :
Musique (3)
jphil=change_profile  modification
coel modification
essai modification
en fait c'est pour réutiliser les login dans le href après...

merci du coup de main
www.creativs.fr

6 réponses

malik7934
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
28 déc. 2007 à 12:59
undefine notice, c'est pour la variable que tu as à la ligne 63: elle est pas déclarée (tu as un error reporting à E_ALL chez toi...)

Ensuite, permets moi de te dire sans méchanceté que tu es un peu aux fraises sur ton code (cf les autres topics que tu as ouvert) et que tu devrais vraiment prendre du temps pour apprendre les bases de la programmation sur un site comme celui du zero. je suis persuadé que tu gagnerais bcp de temps...

Pour ton problème (pour ce que j'ai compris de ta demande), celà vient de
print_r ($tbl_array[$i][$j].'[?page=change_profile &nbsp;modification]
');

Il ne faut pas l'utiliser comme ça. Il faut que tu emploies $tbl_array[$i][$j] en fonction de ce que tu as besoin, de tes critères d'utilisation. Le tableau $tbl_array contient les résultats de la requête, à toi de l'utiliser comme bon te semble. Il est clair qu'en l'état ton code affiche le résultat, puisque tu as mis un print_r (je conseillerais d'ailleurs un echo au lieu du print_r là).

Exemple:

for ($i=0;$i<$cpt;$i++){
    $cpt2 = count($tbl_array[$i]);
    for ($j=0;$j<$cpt2;$j++)
        echo '[?page=change_profile&profil='.$tbl_array[$i][$j].' &nbsp;modification du profil de '.$tbl_array[$i][$j].']
';
}

Ou suivant quoi, il faut que tu utilises les fonctions de manipulation des tableaux -> http://ch2.php.net/array

++
Malik7934

*****
noisy communication - wherever, be everywhere!
3
jphilippev
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
28 déc. 2007 à 15:36
j'ai trouvé une autre solution :

 // requête mysql
 $reqnouvmusique=mysql_query('SELECT login FROM log WHERE rubrique=\'Musique\' AND confirm=\'n\''); // selection de la colonne nom dans musique;
 // création d'un tableau destiné à contenir les infos de la table et nommé en conséquence
 $tbl_array = array();
 // remplissage du tableau avec le contenu de la requête
 while($data = mysql_fetch_array($reqnouvmusique)) {
 // ecriture de la nouvelle adresse de modification
   echo '&nbsp;&nbsp;&nbsp;&nbsp;[?page=change_profile&profil='.$data['login'].' '.$data['login'].']
';
  }

merci de ton aide malik  
3
jphilippev
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
28 déc. 2007 à 12:30
ps : bonjour dsl

www.creativs.fr
0
jphilippev
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
28 déc. 2007 à 13:56
merci
c'est vrai pour les fraises je suis en train de voir le site du zero...
mais quitte a paraitre relou la ligne 63 c ca :

$cpt2=count($tbl_array[$i]);

mais au dessus normalement ca le definie nan?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malik7934
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
28 déc. 2007 à 14:01
Tu as un reporting defini à E_ALL je te dis... cf dans ton easyphp, dossier conf_files (sauf erreur), fichier php.ini: je suis sûr que tu as la ligne "error_reporting  =  E_ALL" (sans ";") quelque part. Si tu veux changer ça, mets y "error_reporting  =  E_ALL & ~E_NOTICE".

Tes variables ne sont pas déclarées, d'où l'erreur. Déclare les avant $tbl_array = recup_table_nouv_musique();.
Tu écris simplement $cpt2 = ''; par exemple.

Je te conseille de changer ton error_reporting...

*****
noisy communication - wherever, be everywhere!
0
jphilippev
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
28 déc. 2007 à 14:22
merci malik
j'ai fait ce que tu m'a "conseillé" de faire...
mais y a tjs l'erreur

Notice: Undefined offset: 1 in C:\Program Files\EasyPHP 2.0b1\www\essai php\script_espace_membres\adminiroo2.php on line 63
0