burnedsoul

  • Signature
    Webmaster de Clikmag http://www.clikmag.fr
  • Site web
  • Nombre de sujets
    61
  • Nombre de messages
    222
  • Nombre de commentaires
    2
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

burnedsoul
le 05/04/2007 à 10:27
Obtenir le nombre d'entrées dans un tableau
Nouveau code via un foreach, qui fait le même souci, c'est à dire que la comparaison ne marche qu'une seule fois :s

<?
// Requete pour savoir si un des champs est affiché. Explose le champ pnom_u et vérifie avec le nom du champ.
$requete_checked = mysql_query("SELECT pnom_u from user1 where id_u = 1");
$rc = mysql_fetch_array($requete_checked);
$exploded_rc = explode(",", $rc[0]);
for ($i=1;$i<$nb_champs;$i++)
{
$nom_champ=mysql_field_name($requete, $i);

// Alternance des couleurs
if ($c==$c1) $c=$c2; else $c=$c1;
echo "
<tr bgcolor='$c'>
<td>";
// Test si le champ est protégé ou pas
if ($i<15) echo "<font color='#ff0000'>[*]</font>";
echo checkchamp($nom_champ);
// Test si le champ est affiché ou pas
//if ($r['afficher_c'] == 1) $checked = "selected='selected'";
$type_champ = mysql_field_type($requete, $i);
// Enleve le _u devant le nom de champ
echo ereg_replace("_u", "", $nom_champ);
echo "</td>
<td align='center'>$type_champ</td>
<td align='center'>
";
foreach ($exploded_rc as $var)
{
echo $var."-".$nom_champ;
if ($var==$nom_champ)
{
$checked = "checked='checked'";
break;
}
else
$checked="no";

}
echo "
<input type='checkbox' $checked />
</td>
<td align='center'>
<a href='?page=gestion_champs&action=del_champ&champ=$nom_champ' class='delete' title='Supprimmer' />X</a>
</td>
</tr>";

}
?>
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 04/04/2007 à 16:57
Obtenir le nombre d'entrées dans un tableau
Justement c'est ça que je pige pas, quand j'affiche $exploded_rc[$j] et $nom_champ dans le if via un echo, les valeurs sont identiques ...
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 03/04/2007 à 13:34
Obtenir le nombre d'entrées dans un tableau
C'est bizzare car avec ça :
<?
for ($i=1;$i<$nb_champs;$i++)
{
$nom_champ=mysql_field_name($requete, $i);
for ($j=0; $j<count($exploded_rc);$j++)
{
if ($exploded_rc[$j]==$nom_champ)
{
$checked = "checked='checked'";
echo "test ok";
}
else
{
$checked = "";
}
}
// Alternance des couleurs
if ($c==$c1) $c=$c2; else $c=$c1;
echo "
<tr bgcolor='$c'>
<td>";
// Test si le champ est protégé ou pas
if ($i<15) echo "<font color='#ff0000'>[*]</font>";
echo checkchamp($nom_champ);
// Test si le champ est affiché ou pas
//if ($r['afficher_c'] == 1) $checked = "selected='selected'";
$type_champ = mysql_field_type($requete, $i);
// Enleve le _u devant le nom de champ
echo ereg_replace("_u", "", $nom_champ);
echo "</td>
<td align='center'>$type_champ</td>
<td align='center'><input type='checkbox' $checked/></td>
<td align='center'>
<a href='?page=gestion_champs&action=del_champ&champ=$nom_champ' class='delete' title='Supprimmer' />X</a>
</td>
</tr>";
//$req = mysql_query("insert into champ (titre_c, type_c, etat_c, afficher_c, idchamp_c) values('$nom_champ', '$type_champ', '',1, $i)") or die('erreur');
}
echo "</table>";
?>

le "test ok" n'apparit qu'une seule fois alors que les deux valeurs sont identiques...
J'avoues ne pas comprendre là :S
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 03/04/2007 à 11:42
Obtenir le nombre d'entrées dans un tableau
Héhé, je suis quand même obligé, application propriétaire oblige ;)

En fait, j'ai une base de données avec des champs utilisateurs. L'utilisateur peut afficher ou pas des champs. Pour gérer cela, j'ai créer dans la table utilisateurs un premier uplet qui contiendra mes configurations, et par exemple dans mon champ pnom_u, il y aura la liste (séparé par des virgules, d'où le explode) des champs affichés.
Du coup ensuite je compare le explode "exploded_rc[]" aux champs de la base "nom_champ[]" afin par la suite de checker ou pas la checkbox.
Mais, les checkbox sont placés après la 2eme boucle for...

Alors soit il faudrait que je revois mon algo, mais là actuellement je ne vois pas trop d'autre algo logique ^^

Je te met ce message en attendant de tester via les echo mes boucles ;)
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 03/04/2007 à 10:50
Obtenir le nombre d'entrées dans un tableau
nop c'est pas bon car ça va me creer une checkbox pour chaque champ contenu dans le exploded_rc[]. Or exploded_rc[] me sert juste de comparaison ;)

C'est vrai que c'est un peu compliqué à comprendre, vu que c'est déjà compliqué à expliquer ^^ si je te files ça tu vois un peu mieux ?
$requete = mysql_query("select * from user1 where id_u <>1 limit 0");
// Nombre de champs
$nb_champs = mysql_num_fields($requete);
$c1 = "#ffffff";
$c2 = "#dddddd";
$c = $c2;
// Requete pour savoir si un des champs est affiché. Explose le champ pnom_u et vérifie avec le nom du champ.
$requete_checked = mysql_query("SELECT pnom_u from user1 where id_u = 1");
$rc = mysql_fetch_array($requete_checked);
$exploded_rc = explode(",", $rc[0]);

for ($i=1;$i<$nb_champs;$i++)
{
$nom_champ=mysql_field_name($requete, $i);
for ($j=0; $j<count($exploded_rc);$j++)
{

if ($exploded_rc[$j]==$nom_champ)
{
$checked = "checked='checked'";
break;
}
else $checked = "";
}
// Alternance des couleurs
if ($c==$c1) $c=$c2; else $c=$c1;
echo "
<tr bgcolor='$c'>
<td>";
// Test si le champ est protégé ou pas
if ($i<15) echo "<font color='#ff0000'>[*]</font>";
echo checkchamp($nom_champ);
// Test si le champ est affiché ou pas
//if ($r['afficher_c'] == 1) $checked = "selected='selected'";
$type_champ = mysql_field_type($requete, $i);
// Enleve le _u devant le nom de champ
echo ereg_replace("_u", "", $nom_champ);
echo "</td>
<td align='center'>$type_champ</td>
<td align='center'><input type='checkbox' $checked/></td>
<td align='center'>
<a href='?page=gestion_champs&action=del_champ&champ=$nom_champ' class='delete' title='Supprimmer' />X</a>
</td>
</tr>";
//$req = mysql_query("insert into champ (titre_c, type_c, etat_c, afficher_c, idchamp_c) values('$nom_champ', '$type_champ', '',1, $i)") or die('erreur');
}
echo "</table>";

Merci en tout cas de te pencher dessus ;)
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 02/04/2007 à 20:30
Obtenir le nombre d'entrées dans un tableau
Si $nom_champ est égal à $exploded_rc, on coche la checkbox, sinon on la décoche.

Il faut savoir qu'ensuite j'ai un truc du style :
<input type='checkbox' name='chkbox' $checked />
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 02/04/2007 à 19:18
Obtenir le nombre d'entrées dans un tableau
Hum merci, j'ai un peu honte d'avoir zappé count ^^
Cela n'empêche cependant rien à mon blocage.
J'ai le code suivant :

<?
for ($i=1;$i<$nb_champs;$i++)
{
$nom_champ=mysql_field_name($requete, $i);
for ($j=0; $j<count($exploded_rc);$j++)
{

if ($exploded_rc[$j]==$nom_champ)
{
$checked = "checked='checked'";
break;
}
else $checked = "";
}
// ... etc
// Ensuite il y a une checkbox qui est du coup normalement checked, sauf que là il reste bloqué sur le premier :S
}
?>


Et je voudrais sortir de la seconde boucle for (là où il y a le break), afin de "checker" la checkbox mais j'ai l'impression qu'il sort uniquement du "if" :S

Ce n'est cependan pas très clair ?
Merci d'avance ;)
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 02/04/2007 à 17:47
Obtenir le nombre d'entrées dans un tableau
Bonjour à tous et félicitations à LaGlobule pour le nouveau site ;)

J'ai un tableau obtenu via un explode() et je voudrais savoir combien d'entrées il contient et j'avoues que j'ai un petit trou de mémoire donc si quelqu'un pouvait me la rafraîchir, ça serait sympa ;)

Merci d'avance :)
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 23/02/2007 à 20:58
Afficher le nom de champ d'une BDD
"Oui bien sur, alors tu as la piste de ski, la piste de montagne, la piste d'un cd, la piste du meurtrier etc etc..."
Mdr :p

En fait j'ai trouvé via PHP il y a les famauese Mysql_fiel_name() ou mysql_field_type(), pour info :)
Webmaster de Clikmag http://www.clikmag.fr
LoadingChargement en cours