Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour,
J'ai appris le php d'après un livre mais j'ai un petit problème :s
Ce code est celui d'un page d'administration de site pour ajouter des membres. Je sais les ajouter, les afficher, mais pas affichers les details par membres pour y corrigé des éléments, J'ai commenté le code.
Merci d'avance
<div align="center">
<table width="91" border="0">
<tr>
<td width="85">- <a href="aide.php?action=ajouter">Ajouter</a></td>
</tr>
<tr>
<td><div align="left">- <a href="aide.php?action=modifier">Modifier</a></div></td>
</tr>
<tr>
<td>- Supprimer</td>
</tr>
</table>
<?
include "commun/connexion.inc.php";
?>
<?
/////// formulaire pour entrer un membre dans la base de donnée, je n'ai aucun probleme a ce sujet //////////
if ($action=='ajouter'){
echo "<form name="form1" method="post" action="aide.php?action=terminer">";
echo '<table width="364" border="0">';
echo "<tr>";
echo '<td colspan="2"><div align="center"><strong><font face="Arial, Helvetica, sans-serif">Infos perso</font></strong></div></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="79"><font size="-1" face="Arial, Helvetica, sans-serif">Pseudo
: </font></td>';
echo '<td width="275"><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="pseudo" type="text" size="25
">
</font></td>';
echo "</tr>";
echo "<tr>";
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">Prénom : </font></td>
';
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input type="text" name="prenom">
</font></td>';
echo "</tr>";
echo "<tr>";
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">Age : </font></td>
';
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="age" type="text" size="10
">
</font></td>';
echo "</tr>";
echo "<tr>";
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">Ville : </font></td>
';
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="ville" type="text" size="20
">
</font></td>';
echo "</tr>";
echo "<tr>";
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">Nationalité :</font></td>';
echo '
<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input type="text" name="nationalite">
</font></td>
';
echo '</tr>';
echo '<tr>';
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">E-mail :</font></td>';
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input type="text" name="email" size="45
">
</font></td>';
echo '</tr>';
echo '<tr>';
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">Niveau :</font></td>
';
echo '<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input type="text" name="niveau" size="5
">
</font></td>';
echo '</tr>';
echo '';
echo '<tr>';
echo '<td><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif">Status :</font></td>';
echo '<td>';
$sql="select * from infos";
$resultat=@mysql_db_query($dbname,$sql,$id_link);
echo '<select name="status">';
echo '<option value="" selected></option>';
while ($rang=mysql_fetch_array($resultat)){
$status=$rang['status'];
echo "<option value="$status">$status</option>";
}
echo '</select>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"><div align="center"></div></td>';
echo "</tr>";
echo "<tr>";
echo '<td colspan="2"><div align="center">';
echo '<input type="submit" name="Submit" value="Envoyer">';
echo "</div></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}
?>
<?
//////////// code qui entre les données dans la base de donnée ////
if ($action=='terminer'){
$sql="INSERT INTO membres (pseudo, prenom, age, ville, nationalite, email, status, niveau)
VALUES ('$pseudo', '$prenom', '$age', '$ville', '$nationalite', '$email', '$status', '$niveau')";
@mysql_db_query($dbname,$sql,$id_link);
echo '<table width="185" border="0">';
echo "<tr>";
echo '<td width="164"><div align="center"><font face="Arial, Helvetica, sans-serif">Le membre à été rajouté avec succès</font></div></td>';
echo "</tr>";
echo "<tr>";
echo "</table>";
}
?>
<?
///////////// Modifier les membres inscris dans la base de donnée, j'affiche la liste des membres inscris /////////
if ($action=='modifier'){
$sql="select * from membres order by clef";
$resultat=mysql_db_query($dbname,$sql,$id_link);
while ($rang=mysql_fetch_array($resultat)){
$pseudo=$rang['pseudo'];
echo '<table width="185" border="0">';
echo "<tr>";
echo "<td width="124"><font size="-1" face="Arial, helvetica, sans-serif">$pseudo</font></td>";
echo '<td width="51"><a href="aide.php?action=details">détails</a></td>
' ;
echo "</tr>";
echo "</table>";
}
}
?>
<?
///////// c'est ICI MON PROBLEME, je voudrais avoir les détails de chaque membres en cliquant sur le texte "details", mais rien ne s'affiche ///////////
if ($action=='details'){
$sql="select * from membres WHERE clef="$clef"";
$resultat=@mysql_db_query($dbname,$sql,$id_link);
while ($rang=mysql_fetch_array($resultat)){
$pseudo=$rang['pseudo'];
$prenom=$rang['prenom'];
$age=$rang['age'];
$clef=$rang['clef'];
}
echo '<table width="166" border="0">';
echo '<tr>';
echo "<td width="71">Pseudo</a> :</td>
<td width="85">$pseudo</td>
";
echo '</tr>';
echo '<tr>';
echo "<td>Prénom :</td>
<td>$prenom</td>
";
echo '</tr>';
echo '<tr>';
echo "<td>Age :</td>
<td>$age</td>
";
echo '</tr>';
echo '</table>
';
}
?>
</div>Hors ligne
pour la selection, étant donné que tu n'en affiche qu'un seul, le while est inutile
$rang=mysql_fetch_array($resultat); $pseudo=$rang['pseudo']; $prenom=$rang['prenom']; $age=$rang['age']; $clef=$rang['clef'];
ceci suffit
ensuite, pour l'action, vérifie que ta variable est bien égale à details
essaye aussi en remplacant par cela :
if ($_GET['action'] == 'details'){ c'est plus sécurisé, et tu es sur que ta variable sera okey partout ![]()
Hors ligne
Merci d'avoir répondu
J'ai corrigé l'erreur du while et suivi le 2eme conseil mais ca ne saffiche tjs pas :s
mon action est bien egale a details
echo '<td width="51"><a href="aide.php?action=details">détails</a></td>
quand je clike sur détails mes variable ne saffiche pas.
echo '<table width="166" border="0">';
echo '<tr>';
echo "<td width="71">Pseudo</a> :</td>
<td width="85">$pseudo</td>
";
echo '</tr>';
echo '<tr>';
echo "<td>Prénom :</td>
<td>$prenom</td>
";
echo '</tr>';
echo '<tr>';
echo "<td>Age :</td>
<td>$age</td>
";
echo '</tr>';
echo '</table>
';
Merci d'avance ![]()
Hors ligne
oui, j'ai bien vu que l'action est égale à details
un truc : $clef, tu le recupere ou ?
si il est passé dans l'url, et que tu ne le repasse pas, c'est normal qu'il ne t'affiche rien, puisque rien n'est ressorti de te requete ![]()
Hors ligne
jvais paraitre soulant mais ca va tjs pas :p
Mon mecanisme est-il juste? de faire un $action==modifier pour afficher les membres puis de faire un $action=details pour montré les details et la sortir la $clef de base?
Regarder http://uc-clan.csportshosting.com/uc-clan/aide.php
![]()
Hors ligne
oui, c'est une solution
bien, donc, en voyant ta page, on définit deja un peu mieux le probleme
le fait que les champs "Pseudo", ... cela signifie qu'il prends en compte ta variable details
mais, que ta requete sql ne ressort rien.
es-tu sur que la variable $clef est bien définie ?
que tu définis correctement les variables pseudo, prénom et age ?
Hors ligne
Et oui jsuis tjs la
J'ai continué a bossé sur d'autres trucs en attendant mais mon problème de détails n'est tjs pas réglé et cela m'embête vraiment pour continué !
N'auriez vous pas un morceau de code utilisant ce détails, que je puisse voir mon erreur ![]()
Hors ligne
euh la, comme ca, non
mais, le probleme vient soit de ta requete sql, soit des définitions de tes variables de pseudo, ...
essaye un print_r($rang);
si il ne retourne rien, cela signifie que ta requete sql ne retourne rien
sinon, cela signifie que tes définitions de variables sont eronées
Hors ligne
rien a faire, jai essayer de cree une fonction details et cela ne va pas non plus
quand dans ma requete je met que ma clef=1 par exemple alors il affiche tjs le membres 1 (logique), mais une fois que je met clef=$clef ca ne va pas !!
jsuis deseperer de trouver, kand jaurais la solution, jouvre le champagne
Mes variables sont justes !
Hors ligne
non il affiche rien, tout comme mes variables $pseudo $prenom et $age mais dès que ma clef=1, alors ils s'affichent
Pourtant dans mon livre explikant le php voila les lignes qui y a:
echo "<A HREF="#" onClick="ouvrir_vasistas('lemenudujour.php?clef=$clef','vasistas','menubar=no,scrollbars=yes,statusbar=yes, width=630,height=500')">";
et rapellé ici :
$sql="SELECT datedujour, contenu FROM agenda WHERE clef='$clef' and nom_usage='$nom_usage'";
$resultat=@mysql_db_query($dbname,$sql,$id_link);
while($rang=mysql_fetch_array($resultat)){...
évidemment ici la page de details est ouverte par javascript, mais ca reste le meme principe.
Donc jcapte pas ou est mon problème !
Hors ligne
ce que je te dis, c'est qu'il est plus que probable que le probleme vienne te ta variable $clef, qui est pas ou mal définie...
fais un echo $clef;
et vérifie qu'elle est bien égale au bon nombre
vérifie également qu'il y a bien un utilisateur ayant ce nombre en identifiant dans ta base de donénes...
Hors ligne