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
Rejoignez-nous