Fonction implode ?

Eléphanteau du PHP | 10 Messages

12 mars 2008, 10:19

Bonjour,

je récupère donc mes différents profils et leur sleep associé mais pour qu'ils s'integre correctement à la table, je dois faire en sorte qu'ils soient séparés mais dans une même cellule (....mon dieu, je ne me comprend même pas)
ma table est ainsi faite.

id position des profils récuperés sleep

avec pour les profils et les sleep, qu'ils soient tous dans une seule case
heu... enfin...
comment expliquer >_<

id pos sleep
1 2:3:5:4 30s:15s:10s:45s

voila, là ca devrait être plus comprehensible
je pense que je dois utiliser la commande "implode"
mais je n'arrive pas a la l'utiliser correctement ni au bon endroit.

merci !!!

Code : Tout sélectionner

<? include(load_lang($user_lang)) ; if ( $admin == 0 ) exit ; $profils_tab = array() ; $NB_MAX_POSITION = 16 ; echo "<h1>Creation d'un cycle</h1>\n" ; if ( $ok == 1 ) { print "<p>OK !</p>\n" ; } if ( $err == 1 ) { print "<p>Erreur !</p>\n" ; } $connexion = mysql_connect("$sql_host","$sql_vuser","$sql_pass"); $db = mysql_select_db("$sql_db", $connexion); if ( ! $connexion || ! $db) { echo "<p>ERREUR DE CONNEXION</p>\n"; exit ; } /* RECUPERATION DES PROFILS EXISTANTS */ $query = "SELECT * FROM `vis_profil` ORDER BY `id_profil` ASC "; if ( ! ($profils_sql = mysql_query($query,$connexion)) ) { echo "<p>ERREUR DE REQUETE</p>\n"; mysql_close($connexion) ; exit() ; } //Utiliser cette boucle pour remplir les options de la liste des profils $profils_options = "<option value=\"\">-- selectionnez --</option>"; for ( $i=0 ; $i<mysql_num_rows($profils_sql) ; $i++ ) { $id_profil_temp = mysql_result($profils_sql,$i,"id_profil") ; $name_temp = mysql_result($profils_sql,$i,"name") ; $profils_options .= "<option value=\"$id_profil_temp\">$name_temp</option>" ; } mysql_free_result($profils_sql) ; /* FIN */ /* AFFICHAGE DU FORMULAIRE SI PROFILS */ if ( $profils_options == "<option value=\"\">-- sélectionnez --</option>" ) { echo "<p>Desole, aucun profil !</p>\n" ; } else { echo "<form action=\"add_line.php\" method=\"post\">\n" ; echo "<p><b>Name : </b> <input type=\"text\" name=\"name\" size=\"16\" value=\"$NAME_UPDATE\" /></p>\n" ; //Afficher plusieurs fois la liste des profils for ( $pos=1 ; $pos <= $NB_MAX_POSITION ; $pos++ ) { echo "<p><b>POS $pos</b> --> Profil : <select name=\"profil_${pos}\">" . $profils_options . "</select>"; //selection du sleep echo"<label for=\"\">\"temps de pause\"</label><br />"; echo"<select name=\"sleep\" id=\"sleep\">"; echo"<option value=\"temps de pause\">--temps de pause--</option>"; echo"<option value=\"10\">10</option>"; echo"<option value=\"15\">15</option>"; echo"<option value=\"30\">30</option>"; echo"<option value=\"45\">45</option>"; echo"<option value=\"60\">60</option>"; echo "</select></p>\n" ; } } echo "<p><input type=\"submit\" value=\"ajouter\" /></p>\n" ; echo "</form>\n" ; echo "<p><a href=\"configure_cycle.php\">[Annuler]</a></p>\n" ; ?>
ma fonction d'ajout

Code : Tout sélectionner

<? $connexion = mysql_connect("$sql_host","$sql_user","$sql_pass"); $db = mysql_select_db("$sql_db", $connexion); function insertsleep() { $name=$_POST["name"]; $pos=$_POST["POS"]; $sleep=$_POST["sleep"]; mysql_query("insert into vis_cycle values('','','$name','$pos','$sleep','','')"); header("Location: create_cycle.php"); } ?>
[/code]

d0m
Mammouth du PHP | 1141 Messages

12 mars 2008, 11:36

Salut,

tu devrais surtout changer la structure de ta table, mettre plusieurs informations (de même nature qui plus est) dans un même champ n'est pas une bonne idée.

Pour ce qui est de l'utilisation de implode(), il faut d'abord construire un tableau contenant tes positions et un tableau contenant tes temps
$positions = array();
$temps     = array();
....
$chaine_positions = implode(':',$positions);
$chaine_temps     = implode(':',$temps);