Problème d'envoi avec un formulaire

[Résolu]
Signaler
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008
-
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008
-
Salut à tous,
Voici mon problème......2 pages PHP,
la 1ère "clients.php" affiche un petit formulaire sous forme de liste déroulante avec les noms du champ "nom" de ma base, et une fonction POST sur la 2ème page.
La 2ème "liste_clients.php" devrait recevoir les données et les afficher....mais NON.

"clients.php"

<?php
include "connexion.inc.php";
?>
<form method= 'POST' action='liste_clients.php'>
<select name='nom' >
<option value=' '></option>
<?php
$requete = "SELECT nom FROM clients";
$resultat = mysql_query($requete);
while ($ligne = mysql_fetch_array($resultat))
{
echo '<option value="'.$ligne['id'].'">'.$ligne['nom'].'</option> ';
}
?>
</select>

</form>

" liste_clients.php "

<?php
if(!isset($_POST['nom']) OR !is_numeric($_POST['nom']))
{
exit;
}
$requete = 'SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id='.$_POST['nom'];
$resultat = mysql_query($requete);
while ($actu = mysql_fetch_row($resultat))
{
?>
<tr class="police1">
<td><?php echo $actu[1]; ?></td>
<td><?php echo $actu[2]; ?></td>
<td><?php echo $actu[3]; ?></td>
<td><?php echo $actu[4]; ?></td>
<td><?php echo $actu[5]; ?></td>
<td><?php echo $actu[6]; ?></td>
<td><?php echo '[affiche_clients.php?fiche=' . $actu[0] . ' ';
?>Afficher]</td>
<td><?php echo '[ajout_clients.php?modifier_clients=' . $actu[0] . ' ';
?>Modifier]</td>
<td><?php echo '[liste_clients.php?supprimer_clients=' . $ractu[0] . ' ';
?>Supprimer]</td>
<?php
}
?>
Voilà.........mais rien ne s'affiche, je suis ouvert à toutes propositions.

17 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
ah heu lol:
or die ('Erreur['.mysql_errno().'] => '.mysql_error());

désolé.
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
$requete = "SELECT nom FROM clients";
$resultat = mysql_query($requete);
while ($ligne = mysql_fetch_array($resultat))
{
echo '<option value="'.$ligne['id'].'">'.$ligne['nom'].'</option> ';

la tu utilises $ligne['id'] mais tu ne recuperes que le NOM (SELECT nom FROM clients)

déjà essaie "SELECT * FROM clients" pour recuperer le 'id'
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

Jamais de SELECT *.
Ceci dit, Sidf a raison. Sélectionnes aussi ton id.
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Merci pour vos réponses.....mais j'ai essayé avec

"SELECT * FROM clients" et "SELECT id,nom FROM clients"

Mais j'ai une erreur dans la page de réception "liste_clients.php"


Warning: mysql_fetch_row(): supplied argument is not a valid MySQL
result resource in c:\program files\easyphp1-8\www\vesta log\
liste_clients.php on line 43

La ligne 43 c'est : while ($actu = mysql_fetch_row($resultat))
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Il parlait de ta requête dans clients.php, pas dans la liste...celle de ta liste est ok.
C'est celle du client qui n'est pas bonne.
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

J'avais bien compris, j'ai fais les changements dans "clients",
mais lorsque je lance l'application j'ai ce message dans la page
d'arrivée....
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
$requete = 'SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id='.$_POST['nom'];

tu compares l'id avec le nom...?

$requete = 'SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id='.$_POST['id'];
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
J'ai rien dit, ton select s'appelle bien 'nom'.

heu, remets ton code avec les corrections stp, qu'on y voit clair :-)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
et sio ça ne marche pas, dans ta liste, fais un echo de ta requête, copie là, et colle là dans phpmyadmin pour voir ce qu'il te renvoie.
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

"clients.php"

<?php
include "connexion.inc.php";
?>
<form method= 'POST' action='liste_clients.php'>
<select name='nom' >
<option value=' '></option>
<?php
$requete = "SELECT id,nom FROM clients";
$resultat = mysql_query($requete);
while ($ligne = mysql_fetch_array($resultat))
{
echo '<option value="'.$ligne['id'].'">'.$ligne['nom'].'</option> ';
}
?>
</select>

</form>

" liste_clients.php "

<?php
if(!isset($_POST['nom']) OR !is_numeric($_POST['nom']))
{
exit;
}
$requete = 'SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id='.$_POST['nom'];
$resultat = mysql_query($requete);
while ($actu = mysql_fetch_row($resultat))
{
?>
<tr class="police1">
<td><?php echo $actu[1]; ?></td>
<td><?php echo $actu[2]; ?></td>
<td><?php echo $actu[3]; ?></td>
<td><?php echo $actu[4]; ?></td>
<td><?php echo $actu[5]; ?></td>
<td><?php echo $actu[6]; ?></td>
<td><?php echo '[affiche_clients.php?fiche=' . $actu[0] . ' ';
?>Afficher]</td>
<td><?php echo '[ajout_clients.php?modifier_clients=' . $actu[0] . ' ';
?>Modifier]</td>
<td><?php echo '[liste_clients.php?supprimer_clients=' . $ractu[0] . ' ';
?>Supprimer]</td>
<?php
}
?>

Pour ta suggestion, désolé mais je ne connais pas ce genre de manip ???
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Ok, ici :
$requete = 'SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id='.$_POST['nom'];

tu ajoutes après cette ligne :
echo $requete;

et tu nous donnes ce que tu obtiens.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Heu, je remlarque un truc, pourquoi tu n'as pas cette ligne :
include "connexion.inc.php";

dans ta page list_clients.php...?
Parce que les connexions à une bdd sont fermées quand tu changes de page.
Tu dois encore redonner tes paramètres de connexion.
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Le include "connexion.inc.php"; est bien dans la page "liste_client;php
je l'ai pas noté pour éviter de faire trop long.....désolé !

Voilà ce que donne l'echo de la requete

SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id=2
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\vesta log\liste_clients.php on line 46
</TR>
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
tu as phpmyadmin ?
Tu copies cette requete dans phpmyadmin (onglet SQL, après avoir sélectionné ta base).

id est bien un champ de type int ?

Fais aussi ceci :

$requete = 'SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id='.$_POST['nom']; $resultat mysql_query($requete) or die (Erreur[.mysql_erno().']> '.mysql_error());
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

J'ai effectué la requete sur phpmyadmin, pas de problème, il m'affiche bien les champs correspondant à l'id;

voilà le message d'erreur que j'ai maintenant :

Parse error: parse error in c:\program files\easyphp1-8\www\vesta log\liste_clients.php on line 42

"liste_clients.php"

<?php
if(!isset($_POST['nom']) OR !is_numeric($_POST['nom']))
{
exit;
}
$requete = 'SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id='.$_POST['nom'];
$resultat = mysql_query($requete);
while ($actu = mysql_fetch_row($resultat))
{
?> <------------ La ligne 42 est là
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

NON PARDON

<?php
if(!isset($_POST['nom']) OR !is_numeric($_POST['nom']))
{
exit;
}
$requete = 'SELECT id,type,nom,prenom,tel,portable,email FROM clients WHERE id='.$_POST['nom'];
------------------------------------------------------------------------------------------------------------------- $resultat mysql_query($requete) or die (Erreur[.mysql_erno().']> '.mysql_error());
---------------------------------- elle est là-------------------------------------------------------------------
while ($actu = mysql_fetch_row($resultat))
{
?>
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Super ça marche un grand merci à toi malalam

Génial ce forum........