Erreur mise a jour formulaire

Fermé
KREY23 - Modifié le 25 janv. 2018 à 12:56
KREY23 Messages postés 3 Date d'inscription jeudi 25 janvier 2018 Statut Membre Dernière intervention 25 janvier 2018 - 25 janv. 2018 à 14:45
Bonjour,



J'ai un problème sur ma requête SQL je veux mettre a jour un formulaire. le formulaire récupère bien les informations mais il y a une erreur lors de la mise a jour le log me dit que l'erreur viens de la ligne

mysql_connect("localhost", "gestion_num", "plvcdm62$");
mysql_select_db("technical_report");

$docum = mysql_query("SELECT id FROM $matable WHERE num ='$num'"); 
  while ($donnees = mysql_fetch_array($docum) )</bold>
   {
   $id = $donnees['id'];
   }
 /* exemple de requete SQL de phpmyadmin : UPDATE `gestion_num`.`sdr744numdoc` SET `objet` = 'DOOR - #05RH – AFT LOWER CORNER SKIN CORRSION   ' WHERE `sdr744numdoc`.`id` =579 LIMIT 1 ;


*/
 $test = mysql_query("UPDATE $matable SET rev = '$rev', rev_date = '$rev_date', definitif = '$definitif', subject = '$subject', registration = '$registration', aircraft_type = '$aircraft_type', tsn_csn ='$tsn_csn', event_date ='$event_date', flight_number ='$flight_number', station ='$station', tech_log_nbr ='$tech_log_nbr', pn_name ='$pn_name', pn ='$pn', sn ='$sn', pos ='$pos', tsi ='$tsi', tso ='$tso', tsn ='$tsn', ata ='$ata', csi ='$csi', cso ='$cso', csn ='$csn', ato_rto ='$ato_rto', div ='$div', ifsd ='$ifsd', atb ='$atb', btb ='$btb', etops ='$etops', others ='$others', uet_type ='$uet_type', uet_gravity ='$uet_gravity', uet_probability ='$uet_probability', uet_level ='$uet_level', ht_type ='$ht_type', ht_gravity ='$ht_gravity', ht_probability ='$ht_probability', ht_level ='$ht_level', report ='$report', work_performed ='$work_performed', technical_analysis ='$technical_analysis', part_m_analysis ='$part_m_analysis', conclusion ='$conclusion', operational_impact ='$operational_impact', fichier_1 ='$fichier_1', fichier_2 ='$fichier_2', fichier_3 ='$fichier_3', fichier_4 ='$fichier_4' WHERE id ='$id'")
 or die(mysql_error());
 mysql_close();



EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).

Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
Jordane45

Merci bien
A voir également:

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
25 janv. 2018 à 12:57
Bonjour,

1 - Attention, l'extension mysql était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

À la place, tu peux (<gras DOIS </gras> ) utiliser l'extension MySQLi ou l'extension PDO_MySQL
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

Si tu choisis PDO, pense à activer la gestion des erreurs : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

2 - Tu dis avoir une erreur... LAQUELLE ?
As tu bien déclaré tes variables $matable et $num ?? Que contiennent t'elles ?

0
KREY23 Messages postés 3 Date d'inscription jeudi 25 janvier 2018 Statut Membre Dernière intervention 25 janvier 2018
Modifié le 25 janv. 2018 à 14:01
le fichier log indique une erreur a la ligne 5

  while ($donnees = mysql_fetch_array($docum) )


l'erreur qui proviens du fichier log exacte est celle ci :

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in X:\\var\\www\\technical_report\\ecrit_mod.php on line 66, referer: http://swvpqdocatest:81/technical_report/mod_tr.php
[client 10.160.144.145] PHP Notice: Undefined variable: matable in X:\\var\\www\\technical_report\\ecrit_mod.php on line 72, referer: http://swvpqdocatest:81/technical_report/mod_tr.php
[client 10.160.144.145] PHP Notice: Undefined variable: id in X:\\var\\www\\technical_report\\ecrit_mod.php on line 72, referer: http://swvpqdocatest:81/technical_report/mod_tr.php
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
25 janv. 2018 à 14:00
Change donc ta ligne
$docum = mysql_query("SELECT id FROM $matable WHERE num ='$num'"); 

par
$docum = mysql_query("SELECT id FROM $matable WHERE num ='$num'") OR DIE( 'Requête invalide : ' . mysql_error()); 


mais bon.. comme indiqué dans ma précédente réponse.... il faut que te te mettes au PDO ou à mysqli.
0
KREY23 Messages postés 3 Date d'inscription jeudi 25 janvier 2018 Statut Membre Dernière intervention 25 janvier 2018 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
25 janv. 2018 à 14:45
une autre erreur est apparu sur cette ligne c'est celle ci :

while ($donnees = mysql_fetch_array($reponse) ) 


voici le message log:
PHP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in X:\\var\\www\\technical_report\\modification.php on line 98
0
KREY23 Messages postés 3 Date d'inscription jeudi 25 janvier 2018 Statut Membre Dernière intervention 25 janvier 2018
25 janv. 2018 à 14:23
1.Quelle sont les avantage pour l'utilisation de PDO
2. Est-ce que je devrais tout refaire en PDO
0
Oui.
PDO est objet (donc plus simple et rapide à écrire), PDO est sécurisé, PDO ne demande pas d'avoir à vider la mémoire soi même ou de fermer la connexion.

PDO (et mysqli) ont l'avantage(comme déjà dit plus haut) de ne pas être obsolète(depuis plus de 10ans) donc oui...mais c'était déjà dit dans la réponse de Jordana45.

à l'avenir dans vos cours et tutoriel regardez la date, > à 5 ans c'est mort( en réalité les technologies ont changés au bout de 2 ans ).
Quand à votre question elle paraît bizarre:
problème de requête SQL mon formulaire s'affiche pas.
Si il y a bien quelque chose qui n'a rien à voir c'est la base de données et la page HTML.
Commencez par vérifier la requête, c'est le plus simple et indépendant du reste.
Pour SQL souvent le plus rapide/pratique est de tester directement en console sur la base.
Pour HTML avec 'echo' vous pouvez vérifier aussi que l'affichage de la page est correct.
Si on veut coupler les 2(page et serveur PHP) il faut utiliser AJAX mais(comme souvent en informatique) c'est qu'une astuce: attendre l'un pour exécuter l'autre et vice et versa.
0