|
|
|
|
Posté par
Fitz Chivalry, le vendredi 21 septembre 2007 à 10:41:17Configuration: Windows XP Firefox 2.0.0.7 (IE pour le boulot) EasyPHP
bojnjour
tes trois lignes //requête SQL: $sql = "SELECT * FROM standing_issue WHERE issue = ".$id ; //exécution de la requête: $requete = mysql_query( $sql, $cnx ) ; //affichage des données: if( $result = mysql_fetch_object( $requete ) ) tu peux faire tout simplement //requête SQL:
$requete = mysql_query("SELECT * FROM standing_issue WHERE issue = ".$id );
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui ! GLOUGLOU ... |
Merci de ta réponse rapide.
j'ai changé la portion de code que tu m'as indiqué mais j'ai toujours le même erreur sur cette ligne : if( $result = mysql_fetch_object( $requete ) ) je vois pas trop ce qu'il peut y avoir de faux !? |
remplace le "if" par un "while"
while ($result = mysql_fetch_array($requete) ) L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui ! GLOUGLOU ... |
Arf,
j'ai remplacé le if par un while mais j'ai encore la même erreur. Je crois comprendre que le message me dit que mysql_fetch_object n'est pas une fonction valide pourtant je l'ai vue sur d'autres site. |
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL mysql_select_db("test"); // Sélection de la base test $reponse = mysql_query("SELECT * FROM tbale"); // Requête SQL // On fait une boucle pour lister tout ce que contient la table : while ($donnees = mysql_fetch_array($reponse) ) { ?> partie HTML d'affichage <?php } mysql_close(); // Déconnexion de MySQL ?> L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui ! GLOUGLOU ... |
je crois que ce script sert à afficher les données ? ça doit être dans ma première page de modification qui m'affiche toutes les données avec un lien "modifier" pour chacune d'elle ?
enfin je me trompe peut-être. si c'est le cas, je vois où il faut insérer le script ci-dessus. |
j'ai mis un echo avant la ligne où apparait l'erreur :
echo $result = mysql_fetch_object($request) et là le message d'erreur devient : Parse error: parse error, expecting `','' or `';'' in c:\program files\easyphp1-8\www\standing_issues\admin\modify_data_two.php on line 20 j'ai mis un ";" à la fin de cette ligne : if( $result = mysql_fetch_object( $request ) ) ; mais j'ai toujours le même message d'erreur. |
a nan, tu ne met pas de ; a la fin d'un if.
bon je comprends peut-etre pas du tout ce que tu veuix, donc je vai corriger ton code, sans comprendre sa logique (donc juste l'orthographe), quand tu fai un if, met == et non pas un seul = L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui ! GLOUGLOU ...
|
Bonjour sfel,
j'ai mis == après le if, mais ça ne marche toujours pas. je réexplique mon objectif : j'ai des données dans une base mysql et je souhaite les modifier via un formulaire. Je suis donc les indications du tutorial du site cité dans mon premier post. La méthode consiste en 3 pages. La première afficher toutes les données de la table avec un lien modifier. La deuxième permet de rentrer les valeurs à modifier et la troisième permet de faire une update de la base si j'ai bien compris. par acquis de conscience j'ai entièrement repris le code de la deuxième page ce qui donne maintenant : <html> <head> <title>modification de données en PHP :: partie2</title> </head> <body> <?php //connection au serveur: $cnx = mysql_connect( "localhost", "root", "" ) ; //sélection de la base de données: $db = mysql_select_db( "bombardier" ) ; //récupération de la variable d'URL, //qui va nous permettre de savoir quel enregistrement modifier $id = $_GET["idissue"] ; //requête SQL: $sql = "SELECT * FROM standing_issues WHERE id_issue = ".$id ; //exécution de la requête: $requete = mysql_query( $sql, $cnx ) or die($sql . mysql_error() ); //affichage des données: if( $result == mysql_fetch_object( $requete ) or die($sql . mysql_error() ) { ?> <form name="insert_modify_data" action="modify_data_three.php" method="POST"> <input type="hidden" name="id" value="<?php echo($id) ;?>"> <table border="0" align="center" cellspacing="2" cellpadding="2"> <tr align="center"> <td>Issue</td> <td><input type="text" name="issue" value="<?php echo($result->issue) ;?>"></td> </tr> <tr align="center"> <td>Lead Depot</td> <td><input type="text" name="lead_depot" value="<?php echo($result->lead_depot) ;?>"></td> </tr> <tr align="center"> <td>Lead Derby</td> <td><input type="text" name="lead_derby" value="<?php echo($result->lead_derby) ;?>"></td> </tr> <tr align="center"> <td>Status</td> <td><input type="text" name="status" value="<?php echo($result->status) ;?>"></td> </tr> <tr align="center"> <td>Action Deadline</td> <td><input type="text" name="action_deadline" value="<?php echo($result->action_deadline) ;?>"></td> </tr> <tr align="center"> <td>Last Update</td> <td><input type="text" name="last_update" value="<?php echo($result->last_update) ;?>"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="modifier"></td> </tr> </table> </form> <?php }//fin if ?> </body> </html> et là le message d'erreur n'est plus sur la même ligne : Parse error: parse error in c:\program files\easyphp1-8\www\standing_issues\admin\modification_donnees_2.php on line 25 la ligne c'est celle après le if où il n'y a que { Voilà j'espère que je j'ai été clair dans les explications de ce que je voulais faire. encore merci du temps consacré. |
re
tu devrai enlever ton or die($sql . mysql_error() il est inutile ici, vu que tu ne fais pas de requete, mais où tu prends les valeurs de ta requete 1 ligne plus heut. L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui ! GLOUGLOU ... |
Bonjour, j'ai à peu près compris le pb.
A mon avis (dis moi si je me trompe), la variable $result n'est pas créee, je veux dire 'initialisée'. Donc ton if() n'est pas opérationnel, vu que le serveur ne peut pas comparer avec une variable inexistante. C'est quoi cette variable $result? Par ailleurs, je ne connais pas la fonction mysql_fetch_object(), et puis on ne met pas (je pense) "or die(mysql_error()); dans un if. Sachant que le while($result=...) initialise la variable $result, essaye ainsi: while($result=mysql_fetch_array($requete)){ ?> Ton code HTML <?php } ps: Quand on te dis ligne 25, il se peut que ce soit avant ou après, suivant que tu as sauté des lignes ou pas (non reconnu), donc il ne faut pas bcp s'y fier! ;) |
je lui avait dis avec le while, c'est ce que je pense le mieux. (et c'es tce que je voi sur les différents codes)
L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui ! GLOUGLOU ... |
Merci à tous de vos réponse. Si j'ai bien compris le tutorial, les valeurs de la requêtes doivent être prises à partir de ma première page de modification dont voici le code :
<html> <head> <title>Modify Data - Page 1</title> </head> <body> <?php //connection au serveur: $cnx = mysql_connect( "localhost", "root", "" ) ; //sélection de la base de données: $db = mysql_select_db( "bombardier" ) ; //requête SQL: $sql = "SELECT * FROM standing_issues ORDER BY issue" ; //exécution de la requête: $requete = mysql_query( $sql, $cnx ) ; //affichage des données: while( $result = mysql_fetch_object( $requete ) ) { echo "<div align=\"center\">".$result->issue." ".$result->lead_depot." ".$result->lead_derby." ".$result->status." ".$result->action_deadline." ".$result->last_update." <a href=\"modification_donnees_2.php?idissue=".$result->issue."\">modify</a><br>\n" ; } ?> </body> </html> Après il y a le code de la deuxième page de modification : <html> <head> <title>modification de données en PHP :: partie2</title> </head> <body> <?php //connection au serveur: $cnx = mysql_connect( "localhost", "root", "" ) ; //sélection de la base de données: $db = mysql_select_db( "bombardier" ) ; //récupération de la variable d'URL, //qui va nous permettre de savoir quel enregistrement modifier $id = $_GET["idissue"] ; //requête SQL: $sql = "SELECT * FROM standing_issues WHERE idissue = '$id'" ; //exécution de la requête: $requete = mysql_query( $sql, $cnx ) or die($sql . mysql_error()); //affichage des données: if( $result = mysql_fetch_object( $requete ) or die($sql . mysql_error() ) { ?> <form name="insert_modify_data" action="modify_data_three.php" method="POST"> <input type="hidden" name="id" value="<?php echo($id) ;?>"> <table border="0" align="center" cellspacing="2" cellpadding="2"> <tr align="center"> <td>Issue</td> <td><input type="text" name="issue" value="<?php echo($result->issue) ;?>"></td> </tr> <tr align="center"> <td>Lead Depot</td> <td><input type="text" name="lead_depot" value="<?php echo($result->lead_depot) ;?>"></td> </tr> <tr align="center"> <td>Lead Derby</td> <td><input type="text" name="lead_derby" value="<?php echo($result->lead_derby) ;?>"></td> </tr> <tr align="center"> <td>Status</td> <td><input type="text" name="status" value="<?php echo($result->status) ;?>"></td> </tr> <tr align="center"> <td>Action Deadline</td> <td><input type="text" name="action_deadline" value="<?php echo($result->action_deadline) ;?>"></td> </tr> <tr align="center"> <td>Last Update</td> <td><input type="text" name="last_update" value="<?php echo($result->last_update) ;?>"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="modifier"></td> </tr> </table> </form> <?php }//fin if ?> </body> </html> et le code de la troisième page de modif : <?php //connection au serveur $cnx = mysql_connect( "localhost", "root", "" ) ; //sélection de la base de données: $db = mysql_select_db( "bombardier" ) ; //récupération des valeurs des champs: $issue = $_POST["issue"] ; $lead_depot = $_POST["lead_depot"] ; $lead_derby = $_POST["lead_derby"] ; $status = $_POST["status"] ; $action_deadline = $_POST["action_deadline"] ; $last_update = $_POST["last_update"] ; //récupération de l'identifiant de la personne: $id = $_POST["id"] ; //création de la requête SQL: $sql = "UPDATE standing_issues SET issue = '$issue', lead_depot = '$lead_depot', lead_derby = '$lead_derby', status = '$status', action_deadline = '$action_deadline' last_update = '$last_update' WHERE id_personne = '$id' " ; //exécution de la requête SQL: $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; //affichage des résultats, pour savoir si la modification a marchée: if($requete) { echo("Modifications have been taken into account") ; } else { echo("La modification à échouée") ; } ?> Voilà, pour le while à la place du if, je pensais que ce "while" était celui présent dans la page de modif 1. |
Je viens de mettre le while à la place du if.
j'ai bien un formulaire avec toutes les entrées de ma base, mais dans les champs, j'ai <br /><b>Notice</b>: Undefined variable: result in <b>c:\program files\easyphp1-8\www\standing_issues\admin\modification_donnees_2.php</b> on line <b>24</b><br /> je suppose que avec ce while à la place du if, toute la madification se fait en une seule page php ? |
et le if de la page 2, tu le change pas ??
//affichage des données:
if( $result = mysql_fetch_object( $requete ) or die($sql . mysql_error() )
{
là il te dis bien qu'il n'y pas encore de resultde défini. ainsi pareil //affichage des données:
while( $result = mysql_fetch_object( $requete ) )
{
L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui !
GLOUGLOU ... |
Si si, je l'ai changé, et c'est là que que j'ai les <br> et autres
voici le code avec le while : <html> <head> <title>modification de données en PHP :: partie2</title> </head> <body> <?php mysql_connect("localhost", "root", ""); // Connexion à MySQL mysql_select_db("bombardier"); // Sélection de la base test $reponse = mysql_query("SELECT * FROM standing_issues"); // Requête SQL // On fait une boucle pour lister tout ce que contient la table : while ($donnees = mysql_fetch_array($reponse) ) { ?> <form name="insert_modify_data" action="modify_data_three.php" method="POST"> <input type="hidden" name="id" value="<?php echo($id) ;?>"> <table border="0" align="center" cellspacing="2" cellpadding="2"> <tr align="center"> <td>Issue</td> <td><input type="text" name="issue" value="<?php echo($result->issue) ;?>"></td> </tr> <tr align="center"> <td>Lead Depot</td> <td><input type="text" name="lead_depot" value="<?php echo($result->lead_depot) ;?>"></td> </tr> <tr align="center"> <td>Lead Derby</td> <td><input type="text" name="lead_derby" value="<?php echo($result->lead_derby) ;?>"></td> </tr> <tr align="center"> <td>Status</td> <td><input type="text" name="status" value="<?php echo($result->status) ;?>"></td> </tr> <tr align="center"> <td>Action Deadline</td> <td><input type="text" name="action_deadline" value="<?php echo($result->action_deadline) ;?>"></td> </tr> <tr align="center"> <td>Last Update</td> <td><input type="text" name="last_update" value="<?php echo($result->last_update) ;?>"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="modifier"></td> </tr> </table> </form> <?php }//fin if ?> </body> </html> |
dans ta boucle tu as $donnees,
Or, dans ton formulaire, tu utilise $result partout. soit tu remplace partout $result par $donnee (c'es tlong) soit tu met $result a la place de $donne dans ton while (c'est moin long ^^) L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui ! GLOUGLOU ... |
Euh... j'ai un petit conseil pour plus de clarté (évite des liens dans tous les sens), et c'est moins lourd si tu veux tout en une page; voila l'architecture de la page:
Si ( $_GET['idissue'] existe){ //On a demandé de modifier un enregistrement précis Affiche le formulaire de modifications (l'actuelle page 2 si je ne me trompe pas) }sinon si ($_POST['idissue'] existe){ //On a rempli et envoyé le formulaire On enregistre, et on affiche le message comme quoi l'opération s'est bien déroulée }sinon{ //On a rien demandé On affiche donc l'ensemble des enregistrements, l'actuelle page 1 } Il n' a plus qu'a le mettre sous forme php/mysql !!! Attention: revois les adresses du formulaire: ce n'est plus page1 ou 2 ou 3 mais la meme page que tu fais tourner :) |
J'ai mis $result à la place de $donnees je n'ai plus tous les <br />, je n'ai plus rien du tout, tous mes champs sont vides.
Au fait si tu as un autre script pour modifier des données mysql à l'aide d'un formulaire je veux bien essayer, j'ai essayé cette méthode car j'ai trouver un tuto là-dessus et que je suis débutant en php. |
| 14/11 17h09 | Installation rapide de LAMP (Apache+MySql+php) sous Linux | Debian |
| 01/11 15h30 | [MySQL] Comment monitorer MySQL en temps réel | MySQL |
| 25/01 20h12 | Monter un forum avec phpBB | PHP |
| 20/04 14h12 | [Webmaster] Créer un forum sur son site facilement | Webmaster |
| 07/02 23h57 | Equivalences logicielles pour GNU/Linux | Logiciel libre |
| 22/06 16h41 | Php -> Modifier données MYSQL | 7 |
| 28/04 23h00 | Récupération données mysql avec php | 2 |
| 27/10 22h00 | Administration mysql via php | 12 |
| 07/08 17h47 | Probleme base donnée mysql et php | 11 |
![]() | WAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de... | Catégorie: Serveurs Licence: Freeware/gratuit |
![]() | easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données... | Catégorie: Serveurs Licence: Open Source |
![]() | MySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. | Catégorie: Bases de données Licence: Open Source |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | HP Thin Client T5125 | Catégorie: Ordinateur de bureau | |
![]() | EI Systems 3088 VIA | Catégorie: Ordinateur portable | |
![]() | BE@NET Mini-ITX Multimédia VIA | Catégorie: Ordinateur de bureau | |
![]() |