par
Wh3n0ne » 13 nov. 2011, 12:10
Bonjour à tous,
Le problème semble simple à résoudre pourtant je n'y arrive pas.
Tout d'abord, parlons du SQL :
Dans ma base de données, j'ai une table qui se nomme forum_forum.
Cette table contient 13 champs et 7 entrées.
Voici le nom des champs : forum_id forum_cat_id forum_name forum_desc forum_ordre forum_last_post_id forum_topic forum_post auth_view auth_post auth_topic auth_annonce auth_modo
Ensuite, venons au PHP :
J'ai une page d'administration depuis laquelle je peux effectuer des opérations sans être obligé de passer par la BDD.
Enfin, je devrais effectuer…
Oui, car par exemple, si je veux modifier les droits de deux forums sur les sept, ce sont les droits du dernier forum qui seront pris en compte.
Alors, j'ai essayé l'incrémentation sur le champ forum_id pour que chaque droit soit attribué à son forum, cependant, ça ne me renvoie plus de résultat !
Voilà comment je m'y suis pris :
<?php case "droits":
//Gestion des droits
echo'<h1>Edition des droits</h1>';
$query = $db->prepare('SELECT forum_id, forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
FROM forum_forum WHERE forum_id = :forum_plus');
$query->bindValue(':forum_plus', $forum_plus, PDO::PARAM_INT);
$query->execute();
$forum_plus = 1;
echo '<form method="post" action="adminok.php?cat=forum&action=droits"><p><table><tr>
<th>Forum</th>
<th>Lire</th>
<th>Répondre</th>
<th>Poster</th>
<th>Annonce</th>
<th>Modérer</th>';
while($data = $query->fetch())
{
$forum_plus++;
echo' </tr><td>'.$data['forum_name'].'</td>';
//Ces deux tableaux vont permettre d'afficher les résultats
$rang = array(
VISITEUR=>"Visiteur",
INSCRIT=>"Membre",
MODO=>"Modérateur",
ADMIN=>"Administrateur");
$list_champ = array("auth_view", "auth_post", "auth_topic", "auth_annonce", "auth_modo");
//On boucle
foreach($list_champ as $champ)
{
echo'<td><select name="'.$champ.'">';
for($i=1;$i<5;$i++)
{
if ($i == $data[$champ])
{
echo'<option value="'.$i.'" selected="selected">'.$rang[$i].'</option>';
}
else
{
echo'<option value="'.$i.'">'.$rang[$i].'</option>';
}
}
echo'</td></select><br /><input type="hidden" name="forum_plus" value="'.$forum_plus.'" />';
}
}
echo'<input type="submit" value="Envoyer"></p></form>';
$query->CloseCursor();
echo '</table>';
break; ?>
Vous pouvez observer que ce formulaire renvoie à une page appelée adminok.php, voici ce qu'elle contient concernant les droits :
<?php case "droits":
//Récupération d'informations
$auth_view = (int) $_POST['auth_view'];
$auth_post = (int) $_POST['auth_post'];
$auth_topic = (int) $_POST['auth_topic'];
$auth_annonce = (int) $_POST['auth_annonce'];
$auth_modo = (int) $_POST['auth_modo'];
$forum_plus = (int) $_POST['forum_plus'];
//Mise à jour
$query=$db->prepare('UPDATE forum_forum
SET auth_view = :view, auth_post = :post, auth_topic = :topic,
auth_annonce = :annonce, auth_modo = :modo');
$query->bindValue(':view',$auth_view,PDO::PARAM_INT);
$query->bindValue(':post',$auth_post,PDO::PARAM_INT);
$query->bindValue(':topic',$auth_topic,PDO::PARAM_INT);
$query->bindValue(':annonce',$auth_annonce,PDO::PARAM_INT);
$query->bindValue(':modo',$auth_modo,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//Message
echo'<p>Les droits ont été modifiés !<br />
Cliquez <a href="./admin.php">ici</a> pour revenir à l administration</p>';
break; ?>
La réponse est insoutenable, suis-je bel et bien un gros naze ou c'est plus compliqué que ça n'y paraît ?! Merci de ne pas me décevoir sur le jugement que vous vous ferez de moi ! (;
Bonjour à tous,
Le problème semble simple à résoudre pourtant je n'y arrive pas.
Tout d'abord, parlons du SQL :
Dans ma base de données, j'ai une table qui se nomme forum_forum.
Cette table contient 13 champs et 7 entrées.
Voici le nom des champs : forum_id forum_cat_id forum_name forum_desc forum_ordre forum_last_post_id forum_topic forum_post auth_view auth_post auth_topic auth_annonce auth_modo
Ensuite, venons au PHP :
J'ai une page d'administration depuis laquelle je peux effectuer des opérations sans être obligé de passer par la BDD.
Enfin, je devrais effectuer…
Oui, car par exemple, si je veux modifier les droits de deux forums sur les sept, ce sont les droits du dernier forum qui seront pris en compte.
Alors, j'ai essayé l'incrémentation sur le champ forum_id pour que chaque droit soit attribué à son forum, cependant, ça ne me renvoie plus de résultat !
Voilà comment je m'y suis pris :
[php]
<?php case "droits":
//Gestion des droits
echo'<h1>Edition des droits</h1>';
$query = $db->prepare('SELECT forum_id, forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
FROM forum_forum WHERE forum_id = :forum_plus');
$query->bindValue(':forum_plus', $forum_plus, PDO::PARAM_INT);
$query->execute();
$forum_plus = 1;
echo '<form method="post" action="adminok.php?cat=forum&action=droits"><p><table><tr>
<th>Forum</th>
<th>Lire</th>
<th>Répondre</th>
<th>Poster</th>
<th>Annonce</th>
<th>Modérer</th>';
while($data = $query->fetch())
{
$forum_plus++;
echo' </tr><td>'.$data['forum_name'].'</td>';
//Ces deux tableaux vont permettre d'afficher les résultats
$rang = array(
VISITEUR=>"Visiteur",
INSCRIT=>"Membre",
MODO=>"Modérateur",
ADMIN=>"Administrateur");
$list_champ = array("auth_view", "auth_post", "auth_topic", "auth_annonce", "auth_modo");
//On boucle
foreach($list_champ as $champ)
{
echo'<td><select name="'.$champ.'">';
for($i=1;$i<5;$i++)
{
if ($i == $data[$champ])
{
echo'<option value="'.$i.'" selected="selected">'.$rang[$i].'</option>';
}
else
{
echo'<option value="'.$i.'">'.$rang[$i].'</option>';
}
}
echo'</td></select><br /><input type="hidden" name="forum_plus" value="'.$forum_plus.'" />';
}
}
echo'<input type="submit" value="Envoyer"></p></form>';
$query->CloseCursor();
echo '</table>';
break; ?>
[/php]
Vous pouvez observer que ce formulaire renvoie à une page appelée adminok.php, voici ce qu'elle contient concernant les droits :
[php]
<?php case "droits":
//Récupération d'informations
$auth_view = (int) $_POST['auth_view'];
$auth_post = (int) $_POST['auth_post'];
$auth_topic = (int) $_POST['auth_topic'];
$auth_annonce = (int) $_POST['auth_annonce'];
$auth_modo = (int) $_POST['auth_modo'];
$forum_plus = (int) $_POST['forum_plus'];
//Mise à jour
$query=$db->prepare('UPDATE forum_forum
SET auth_view = :view, auth_post = :post, auth_topic = :topic,
auth_annonce = :annonce, auth_modo = :modo');
$query->bindValue(':view',$auth_view,PDO::PARAM_INT);
$query->bindValue(':post',$auth_post,PDO::PARAM_INT);
$query->bindValue(':topic',$auth_topic,PDO::PARAM_INT);
$query->bindValue(':annonce',$auth_annonce,PDO::PARAM_INT);
$query->bindValue(':modo',$auth_modo,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//Message
echo'<p>Les droits ont été modifiés !<br />
Cliquez <a href="./admin.php">ici</a> pour revenir à l administration</p>';
break; ?>
[/php]
La réponse est insoutenable, suis-je bel et bien un gros naze ou c'est plus compliqué que ça n'y paraît ?! Merci de ne pas me décevoir sur le jugement que vous vous ferez de moi ! (;