Problème en php
Résolu/Fermé
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
-
14 déc. 2007 à 12:42
dutche Messages postés 73 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 mai 2010 - 18 déc. 2007 à 11:17
dutche Messages postés 73 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 mai 2010 - 18 déc. 2007 à 11:17
A voir également:
- Problème en php
- Easy php - Télécharger - Divers Web & Internet
- Convertir php en pdf ✓ - Forum PDF
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Expert php - Télécharger - Langages
20 réponses
Bonjour
il m'affiche que le dernier résultat en mémoire
Que le dernier, ou tous sauf le premier ???
Tui as un $row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo); vers le début de ton code, à l'extérieur de la boucle. Ce résultat-là n'est sûrement pas affiché
il m'affiche que le dernier résultat en mémoire
Que le dernier, ou tous sauf le premier ???
Tui as un $row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo); vers le début de ton code, à l'extérieur de la boucle. Ce résultat-là n'est sûrement pas affiché
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
14 déc. 2007 à 16:53
14 déc. 2007 à 16:53
merci père mais je ne comprends pas bien ta solution
As-tu remarqué qu'il y a deux fois $row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo); dans ton script ?
Une fois vers le début su script (ligne 11 environ), et une fois au début de ta boucle d'affichage.
Sais-tu à quoi sert cette instruction ?
Une fois vers le début su script (ligne 11 environ), et une fois au début de ta boucle d'affichage.
Sais-tu à quoi sert cette instruction ?
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 11:20
17 déc. 2007 à 11:20
oui père je sais à quoi sert cette instruction elle affecte une la ligne (tous les champs) d'un resultat dans la variable ($row_RechMbrePromo ).
Ex: le resultat qui a pour premiere ligne Dutche, Pere,2002-2003, pere@commentcamarche.fr , 06589656 sera affecté dans la variable
($row_RechMbrePromo ).
J'espère que je ne suis pas à côté de la plaque
Merci encore père
Ex: le resultat qui a pour premiere ligne Dutche, Pere,2002-2003, pere@commentcamarche.fr , 06589656 sera affecté dans la variable
($row_RechMbrePromo ).
J'espère que je ne suis pas à côté de la plaque
Merci encore père
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
C'est bien ça, mais alors je crois que tu aurais dû comprendre ce que j' ai voulu dire vendredi à 13h30.
Tu as vers la ligne 11 de ton script : $totalRows_RechMbrePromo = mysql_num_rows($RechMbrePromo);
Peux-tu me dire quand tu affiches le résultat de cette affectation ???
C'est bien ça, mais alors je crois que tu aurais dû comprendre ce que j' ai voulu dire vendredi à 13h30.
Tu as vers la ligne 11 de ton script : $totalRows_RechMbrePromo = mysql_num_rows($RechMbrePromo);
Peux-tu me dire quand tu affiches le résultat de cette affectation ???
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 11:33
17 déc. 2007 à 11:33
ah si je comprends bien le fait que j'affiche cette instruction hors de ma boucle, me permet seulement d'afficher la dernière ligne en memoire!
Ok donc je dois l'inserer dans ma boucle afin q'elle m'affiche toutes les lignes?
Ok donc je dois l'inserer dans ma boucle afin q'elle m'affiche toutes les lignes?
Non, ça n'est pas vraiment ça.
Le fait que tu aies cette ligne hors de ta boucle fait que tu extrais une première ligne du résultat de ta requête.
Ensuite, quand tu arrives dans ta boucle (while), tu recommences $totalRows_RechMbrePromo = mysql_num_rows($RechMbrePromo). Tu lis donc une seconde ligne du résultat. La première est écrasée sans jamais avoir été effacée.
Pourquoi dis-tu je dois l'inserer dans ma boucle alors qu'elle est déjà dans ta boucle ?
Combien devrait-il y avoir de résultats d'affichés et combien en vois-tu ?
Quand je te demande Peux-tu me dire quand tu affiches le résultat de cette affectation ???, pourquoi ne réponds-tu pas à la question ? Pour pouvoir te montrer où tu te trompes, j'ai besoin de savoir ce que tu crois, pas que tu proposes
Le fait que tu aies cette ligne hors de ta boucle fait que tu extrais une première ligne du résultat de ta requête.
Ensuite, quand tu arrives dans ta boucle (while), tu recommences $totalRows_RechMbrePromo = mysql_num_rows($RechMbrePromo). Tu lis donc une seconde ligne du résultat. La première est écrasée sans jamais avoir été effacée.
Pourquoi dis-tu je dois l'inserer dans ma boucle alors qu'elle est déjà dans ta boucle ?
Combien devrait-il y avoir de résultats d'affichés et combien en vois-tu ?
Quand je te demande Peux-tu me dire quand tu affiches le résultat de cette affectation ???, pourquoi ne réponds-tu pas à la question ? Pour pouvoir te montrer où tu te trompes, j'ai besoin de savoir ce que tu crois, pas que tu proposes
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 12:01
17 déc. 2007 à 12:01
je me disais que le fait de la mettre comme condition d'entrée dans ma boucle ne me permettais pas d'afficher son resultat.
Pour moi l'affichage se fait lorsuqe j'appel la focntion echo();
ceci:
echo'<tr bordercolor="#000000" bgcolor="#FFFFE1">
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["nom"].'</ td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["prenoms"].'& lt;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["promotion"]. '</td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["email"].'< ;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["cel"].'</ td>
</tr>
Concernant les resultats il doit y avoir 2 alors que je ne vois que le dernier.
Pour moi l'affichage se fait lorsuqe j'appel la focntion echo();
ceci:
echo'<tr bordercolor="#000000" bgcolor="#FFFFE1">
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["nom"].'</ td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["prenoms"].'& lt;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["promotion"]. '</td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["email"].'< ;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["cel"].'</ td>
</tr>
Concernant les resultats il doit y avoir 2 alors que je ne vois que le dernier.
je me disais que le fait de la mettre comme condition d'entrée dans ma boucle ne me permettais pas d'afficher son resultat.
Pour moi l'affichage se fait lorsuqe j'appel la focntion echo();
Tu as tout à fait raison
Mais ce que tu affiches, c'est la variable la variable $row_RechMbrePromo et elle est déterminée dans la condition d'entrée dans ta boucle !!!!
rassure-moi, tu es conscient que while ($row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo)) n'est pas un test d'égalité entre $row_RechMbrePromo et mysql_fetch_assoc($RechMbrePromo) ?
Concernant les resultats il doit y avoir 2 alors que je ne vois que le dernier
Je te l'avais dit dès vendredi 13 h 30 : ce n'est as que le dernier que tu vois, tu les vois tous sauf le premier. Je ne sais plus comment te le dire : ligne 11 tu récupères un résultat que tu n'affiches jamais. Ensuite, quand tu fais ta boucle (qui a l'air OK), il te manque le premier résultat. Arrange-toi pour avoir 3 réponses, tu verras qu'il en affichera 2.
Pour moi l'affichage se fait lorsuqe j'appel la focntion echo();
Tu as tout à fait raison
Mais ce que tu affiches, c'est la variable la variable $row_RechMbrePromo et elle est déterminée dans la condition d'entrée dans ta boucle !!!!
rassure-moi, tu es conscient que while ($row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo)) n'est pas un test d'égalité entre $row_RechMbrePromo et mysql_fetch_assoc($RechMbrePromo) ?
Concernant les resultats il doit y avoir 2 alors que je ne vois que le dernier
Je te l'avais dit dès vendredi 13 h 30 : ce n'est as que le dernier que tu vois, tu les vois tous sauf le premier. Je ne sais plus comment te le dire : ligne 11 tu récupères un résultat que tu n'affiches jamais. Ensuite, quand tu fais ta boucle (qui a l'air OK), il te manque le premier résultat. Arrange-toi pour avoir 3 réponses, tu verras qu'il en affichera 2.
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 16:11
17 déc. 2007 à 16:11
ok merci encore, père rassuretoi je sais c'est une affectation de la valeur de mysql_fetch_assoc($RechMbrePromo) dans la variable $row_RechMbrePromo sinon ce serait plutôt while ($row_RechMbrePromo == mysql_fetch_assoc($RechMbrePromo)).
ok pere je vais supprimé la ligne 11, mais rassure moi est ce que je n'aurais pas un problène du genre il ne reconnais pas la variable $row_RechMbrePromo ?
ok pere je vais supprimé la ligne 11, mais rassure moi est ce que je n'aurais pas un problène du genre il ne reconnais pas la variable $row_RechMbrePromo ?
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 16:28
17 déc. 2007 à 16:28
excuse moi je m'étais trompé de variable. Je check et je te fais signe. 1000 fois merci
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 16:48
17 déc. 2007 à 16:48
Père j'ai enfin tous les resultats merci ça m'a vraiment permis de mieux comprendre cette instruction. Ok Mais mon vrai problème demeur tjrs. Car c'est vrai toutes les lignes s'affichent mais ne s'affichent pas comme je le désire (dans le tableau).
sebdechezmoi
Messages postés
22
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
17 décembre 2007
5
17 déc. 2007 à 16:59
17 déc. 2007 à 16:59
Salut, si tu veu que tout s'affiche dans le tableu tu devrai sortir la balise </table> de la boucle while, sans quoi au premier passage le tableau sera fermé.
while ($row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo))
{
echo'<tr bordercolor="#000000" bgcolor="#FFFFE1">
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["nom"].'</ td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["prenoms"].'& lt;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["promotion"]. '</td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["email"].'< ;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["cel"].'</ td>
</tr>';
}
echo '</table>';
while ($row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo))
{
echo'<tr bordercolor="#000000" bgcolor="#FFFFE1">
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["nom"].'</ td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["prenoms"].'& lt;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["promotion"]. '</td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["email"].'< ;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["cel"].'</ td>
</tr>';
}
echo '</table>';
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 17:10
17 déc. 2007 à 17:10
merci c'est cool, je n'y avais pas pensé je check
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 17:29
17 déc. 2007 à 17:29
ça marche merci beaucoup,
je profite en même temps pour demander quelque chose.
Lorsque je valide sur mon bouton (ok) pour exécuter ma requête:
soit la requête ne s'exécute pas automatiquement et il faut que j'appuie une seconde fois sur (ok) avant qu'elle s'exécute,
soit elle ne s'exécute même et je suis obligé d'actualiser la page avant qu'elle s'exécute.
J'aimerais savoir à quoi c'est du, moi je me dis que c'est le serveur.
Car quelque fois j'arrive pas à actualiser la page et même les autres pages qui fonctionnaient correctement. Et losque je redemarre mon serveur apache. Tout reprend normalement.
Je pricise que j'utilise pour l'exécution de la requête un objet XmlHttpRequest et du java script pour l'exécution du bouton.
je profite en même temps pour demander quelque chose.
Lorsque je valide sur mon bouton (ok) pour exécuter ma requête:
soit la requête ne s'exécute pas automatiquement et il faut que j'appuie une seconde fois sur (ok) avant qu'elle s'exécute,
soit elle ne s'exécute même et je suis obligé d'actualiser la page avant qu'elle s'exécute.
J'aimerais savoir à quoi c'est du, moi je me dis que c'est le serveur.
Car quelque fois j'arrive pas à actualiser la page et même les autres pages qui fonctionnaient correctement. Et losque je redemarre mon serveur apache. Tout reprend normalement.
Je pricise que j'utilise pour l'exécution de la requête un objet XmlHttpRequest et du java script pour l'exécution du bouton.
Désolé de ne plus pouvoir t'aider, je n'ai aucune idée de ce qu'est ton objet XmlHttpRequest. Mais si comme son nom l'indique il a quelque chose à voir avec l'interrogation du serveur, d'ici qu'il le fasse planter ...
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
17 déc. 2007 à 18:07
17 déc. 2007 à 18:07
Merci père pour ce que tu as fais déjà c'est assez. dis tu t'y connais en Merise?
Désolé, je n'y connais rien non plus. J'ai toujours fait du "bricolage" avec les bases de données, n'étant pas informaticien au départ. Mais tu as raison de t'intéresser aux bonnes méthodes.
dutche
Messages postés
73
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
21 mai 2010
18 déc. 2007 à 11:17
18 déc. 2007 à 11:17
bonjour voici le bon code
<?php
require_once('Connections/conCSI.php');
$colname_RechMbrePromo = "-1";
if (isset($_POST['vPromo'])) {
$colname_RechMbrePromo = (get_magic_quotes_gpc()) ? $_POST['vPromo'] : addslashes($_POST['vPromo']);
}
mysql_select_db($database_conCSI, $conCSI);
$query_RechMbrePromo = sprintf("SELECT nom, prenoms, promotion, email, cel FROM membre WHERE promotion = '%s' ORDER BY nom ASC", $colname_RechMbrePromo);
$RechMbrePromo = mysql_query($query_RechMbrePromo, $conCSI) or die(mysql_error());
$totalRows_RechMbrePromo = mysql_num_rows($RechMbrePromo);
//Etre sur que le parametre provient d'un input.
if ($_SERVER["REQUEST_METHOD"] <> "POST")
die("Vous pouvez acceder à cette page seulement par une page html");
// si le paramètre n'est pas null
if(!empty($_REQUEST["vPromo"])) {
if ($totalRows_RechMbrePromo <> 0) {
echo '
<table width="570" border="1" cellspacing="0" cellpadding="0" align="center">
<tr bordercolor="#999999" bgcolor="#0099FF">
<td width="90" class="text_noire_entete_tableau"><strong>Nom</strong></td>
<td width="150" class="text_noire_entete_tableau"><strong>Prénoms</strong></td >
<td width="90" class="text_noire_entete_tableau"><strong>Promo</strong></td&g t;
<td width="150" class="text_noire_entete_tableau"><strong>Email</strong></td&g t;
<td width="90" class="text_noire_entete_tableau"><strong>Cellulaire</strong>< /td>
</tr>';
while ($row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo)){
echo'<tr bordercolor="#000000" bgcolor="#FFFFE1">
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["nom"].'</ td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["prenoms"].'& lt;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["promotion"]. '</td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["email"].'< ;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["cel"].'</ td>
</tr> ';
}
echo '</table>';
}
else{
echo '<strong> Aucun élément ne correspond à votre recherche! Veuiller reéssayer.</strong>';
}
}
// si le paramètre est vide
else {
echo "Echec vous n'avez pas saisi de paramètre";
}
mysql_free_result($RechMbrePromo);
?>
<?php
require_once('Connections/conCSI.php');
$colname_RechMbrePromo = "-1";
if (isset($_POST['vPromo'])) {
$colname_RechMbrePromo = (get_magic_quotes_gpc()) ? $_POST['vPromo'] : addslashes($_POST['vPromo']);
}
mysql_select_db($database_conCSI, $conCSI);
$query_RechMbrePromo = sprintf("SELECT nom, prenoms, promotion, email, cel FROM membre WHERE promotion = '%s' ORDER BY nom ASC", $colname_RechMbrePromo);
$RechMbrePromo = mysql_query($query_RechMbrePromo, $conCSI) or die(mysql_error());
$totalRows_RechMbrePromo = mysql_num_rows($RechMbrePromo);
//Etre sur que le parametre provient d'un input.
if ($_SERVER["REQUEST_METHOD"] <> "POST")
die("Vous pouvez acceder à cette page seulement par une page html");
// si le paramètre n'est pas null
if(!empty($_REQUEST["vPromo"])) {
if ($totalRows_RechMbrePromo <> 0) {
echo '
<table width="570" border="1" cellspacing="0" cellpadding="0" align="center">
<tr bordercolor="#999999" bgcolor="#0099FF">
<td width="90" class="text_noire_entete_tableau"><strong>Nom</strong></td>
<td width="150" class="text_noire_entete_tableau"><strong>Prénoms</strong></td >
<td width="90" class="text_noire_entete_tableau"><strong>Promo</strong></td&g t;
<td width="150" class="text_noire_entete_tableau"><strong>Email</strong></td&g t;
<td width="90" class="text_noire_entete_tableau"><strong>Cellulaire</strong>< /td>
</tr>';
while ($row_RechMbrePromo = mysql_fetch_assoc($RechMbrePromo)){
echo'<tr bordercolor="#000000" bgcolor="#FFFFE1">
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["nom"].'</ td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["prenoms"].'& lt;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["promotion"]. '</td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["email"].'< ;/td>
<td bordercolor="#999999" class="text_noire_corps_tableau">'.$row_RechMbrePromo["cel"].'</ td>
</tr> ';
}
echo '</table>';
}
else{
echo '<strong> Aucun élément ne correspond à votre recherche! Veuiller reéssayer.</strong>';
}
}
// si le paramètre est vide
else {
echo "Echec vous n'avez pas saisi de paramètre";
}
mysql_free_result($RechMbrePromo);
?>