Pour une seule page de traitement

Répondre
maxmam
le 07/03/2011 à 11:56
maxmam
Salut à tous, je débute en php, j'ai un projet de site web qui consiste à la gestion des écoliers, mon problème c'est que j'ai une page infos.php qui affiche la liste des écoliers provenant d'une base mysql, j'ai une page traitement.php qui affiche des informations pour chaque membres, mon probleme c'est que j'arrive pas à faire un script pour la page traitement, j'ai déjà effectué la page de traitement mais pour un seul enregistrement. voci mon code de la page de traitement:
php
<?php

$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('moteur', $base);
if (isset($_POST['nbm'])) {

$sql = 'SELECT hevi, anara FROM mg_anarana WHERE anara LIKE "'.$_POST['anara'].'%"';
echo '<table width="360" border="1" cellspacing="0"><tr><td width="146" class="tableau">Anara<td class="tableau">Hevi</td></tr>';

$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());


$data = mysql_fetch_array($req);

mysql_free_result ($req);




echo '<tr><td class="contenu">' , htmlentities(trim($data['anara'])) , '</td><td class="contenu">' , htmlentities(trim($data['hevi'])) , '</td></tr>';

mysql_close ();
}
?>

Ma question est : est-il possible d'avoir une seule page de traitement mais seul les "'.$_POST['anara'].'%"'; changent, espérant votre contribution
moogli
le 08/03/2011 à 04:37
moogli
Salut,

c'est pas clair du tout ton affaire la ;)

si tu souhaite afficher le "détails" sur un membre spécifique, il te faut passer la clef primaire de la table des membres dans le formulaire ou par l'url et l'utiliser dans la requête SQL (avec un = et non un like).

si tu pouvais décrire la chose plus simplement (de sorte que n'importe qui comprenne) cela devrais m'éviter (et a d'autre aussi) de répondre trop a coté de la plaque :)

PS : merci d'utiliser les balise bbcode pour l'affichage du cide en couleur :)

@+
Il en faut peu pour être heureux !!!!!
maxmam
le 08/03/2011 à 05:08
maxmam
Slt, merci pour la réponse mais j'ai déjà essayer avec "=" mais ça ne marche pas, en fait je que je cherche c'est la solution d'éviter de créer 26 pages (les 26 alphabets) pour afficher les informations des membres selon le choix de l'internaute en sélectionnant un bouton sur la page infos.php, à votre attente
moogli
le 08/03/2011 à 22:17
moogli
heu en fait c'est juste une lettre dans le formulaire ? si oui dans ce cas like peut être une bonne idée.

Le problème c'est que l'on pas vraiment d'infos clair la.

le mieux serait de nous expliquer clairement avec des mots simples ce que tu veut et la situation actuelle.
ajoute un peu de code : le formulaire et le traitement ça devrait nous aider a t'aider ;)

@+
Il en faut peu pour être heureux !!!!!
maxmam
le 09/03/2011 à 02:13
maxmam
Slt, je m'explique encore, j'ai une page disons infos.php qui affiche le contenu du bdd (des listes de personnes), j'ai mis des boutons (A-Z) pour filtrer la liste en sélectionnant une lettre de l'alphabet, et cela que je suis perdu, j'ai pensé que après avoir cliqué un bouton il envoie sur une page de traitement qui affiches les détails des personnes commençant par la lettre et avec les détails des infos. Ma question est : comment fait-on dans le code de la page traitement pour n'avoir qu'une seule page au lieu de 26 ce que je croiait.
Voci mon code :
la page infos.php (affichage resultat bdd)
<?php
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('mabase', $base);
$sql = 'SELECT count(*) FROM mg_anara';
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb_total = mysql_fetch_array($resultat);

if (($nb_total = $nb_total[0]) == 0) {
echo 'Pas d'enregistrement';
}
else {
echo '<table width="360" border="1" cellspacing="0"><tr><td width="146" class="tableau">Nom<td class="tableau">Détails</td></tr>';
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$nb_affichage_par_page = 15;
$sql = 'SELECT nom, info FROM mg_anara ORDER BY anara ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req)) {
echo '<tr><td class="contenu">' , htmlentities(trim($data['nom'])) , '</td><td class="contenu">' , htmlentities(trim($data['info'])) , '</td></tr>';
}

mysql_free_result ($req);
echo '</table><br />';
echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 3).'</span>';
}
mysql_close ();
echo '</table><br />';
?>


Et voici la page de traitement :
<?php
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('moteur', $base);
$sql = 'SELECT count(*) FROM mg_anara';
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb_total = mysql_fetch_array($resultat);
if (($nb_total = $nb_total[0]) == 0) {
echo 'Tsy misy Tahiry ao';
}
else {
echo '<table width="360" border="1" cellspacing="0"><tr><td width="146" class="tableau">Nom<td class="tableau">infos</td></tr>';
if (!isset($_GET['debut'])) $_GET['debut'] = 0;

$nb_affichage_par_page = 15;

$sql = 'SELECT nom, infosFROM mg_anara WHERE nomLIKE "A%"';
'.$nb_affichage_par_page';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req)) {
dans la <table>
echo '<tr><td class="contenu">' , htmlentities(trim($data['anara'])) , '</td><td class="contenu">' , htmlentities(trim($data['info'])) , '</td></tr>';
}
echo '</table><br />';
echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 3).'</span>';
}
mysql_free_result ($resultat);
mysql_close ();
echo '</table><br />';
?><?php ?>


Espérant une réponse, bonne lecture
Suta
le 09/03/2011 à 18:21
Suta
Salut,

Je ne suis pas sure davoir tout compris.

Donc tu as une liste de nom et tu veux pouvoir sortir de cette liste seulement les nom qui commence par une lettre qui elle est variable.

Tu peux utiliser les variable $_GET ou $_POST ; dans ce cas $_GET sera plus simple et plus approprie.

Sur tas page les liens ressemblent donc a ceci :

page.php
...
<a href="traitement.php?lettre=a">A</a>
<a href="traitement.php?lettre=b">B</a>
<a href="traitement.php?lettre=c">C</a>
<a href="traitement.php?lettre=d">D</a>
...


ces liens pointent donc vers ta page de traitement et comportent une variable de type $_GET appele ici "lettre"

sur ta page de traitement tu peux donc utiliser cette variable de cette maniere :


traitement.php
...
$sql = 'SELECT nom, infosFROM mg_anara WHERE nom LIKE "'.$_GET['lettre'].'%"';
...


Jespere que ca pourra taider.

Bon courage pour ton sitewoueb !
maxmam
le 09/03/2011 à 19:37
maxmam
Slt à tous,

Merci pour les réponses, je crois que tout marche à merveille maintenant, encore merci
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours