IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] Formulaire de mise à jour planté


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut [Conception] Formulaire de mise à jour planté
    Bonsoir,

    J'ai un formulaire de mise à jour qui ne marche pas... J'ai un premier petit formulaire où je demande à l'utilisateur le nom du film qu'il souhaite modifier. Je récupère donc ce nom, le compare dans ma base puis affiche un formulaire comportant tous les champs (titre, genre, numéro et emprunteur) des champs textes récupèrent la valeur de chaque pour pouvoir etre modifier. Ensuite j'ai un script dont une partie met à jour le nom, le genre et le numéro et une autre vérifie si le film est emprunté. S'il ne l'est pas, INSERT et s'il l'est UPDATE mais ça ne marche pas, pas possible de mettre à jour ni d'insérer et j'avou m'etre perdu à force:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    <?PHP 
     
    	require ("../connect.php");
        mysql_connect (SERVEUR, NOM, PASSE) or die(mysql_error);       	
    	mysql_select_db (BASE) or die(mysql_error);
     
    	$titre = addslashes($_POST['titre']);
    	$genre = addslashes($_POST['genre']);
    	$position = addslashes($_POST['position']);
    	$emprunteur = addslashes($_POST['emprunteur']);	
     
    	// on récupère le numéro du film
    	$numero = "SELECT * FROM films WHERE nomfilm='".$titre."';"; 
    	$num = @mysql_query ($numero);
     
    	while($ligne = mysql_fetch_array($num))
    		{	
    			echo $ligne['numfilm'];
        		// on modifie le nom, genre, position
    			$requete = "UPDATE films SET nomfilm='".$ligne['nomfilm']."', genrefilm='".$ligne['genrefilm']."', posfilm='".$ligne['posfilm']."' WHERE numfilm='".$ligne['numfilm']."';";
    			$res = @mysql_query ($requete);
    			if ($res)
           			{
    	        		echo 'Mise à jour réussie';
    	        		// on regarde si le film a ete emprunte
    					$select = "SELECT nomemp FROM emprunteur WHERE numfilm='".$ligne['numfilm']."';";
    					$sel = @mysql_query ($select);
    					while($emp = mysql_fetch_array($sel))
    						{
    							if($emp != 0)
        							{
      									$req = "UPDATE emprunteur SET nomemp='".$emp['nomemp']."' WHERE numfilm='".$ligne['numfilm']."';";
    	    							$resultat = @mysql_query ($req);
    	        						if ($resultat)
    	            						{
    		            						echo '<P align=center><FONT face="Comic Sans MS" size="3" color=#000000>Mise à jour film</FONT><BR>'
    												. 'Mise à jour réussie';
    	            						}
    		    						else
    		        						{
    		        							echo '<P align=center><FONT face="Comic Sans MS" size="3" color=#000000>Mise à jour film</FONT><BR>'
    												.' <P align=center><FONT face="Comic Sans MS" size="3" color=#000000>Impossible d\'exécuter la requête de modif de l\'emprunteur :</FONT> ' . mysql_error();	
    											// on ferme la connexion à mysql
    											mysql_close();	
    	            						}	 
    								}
    							else
    								{	
    									$insert = "INSERT INTO emprunteur VALUES ('', '".$emp['nomemp']."','".$ligne['numfilm']."');";
    									$ins = @mysql_query ($insert);
    									// on ferme la connexion à mysql
    									mysql_close();
            						} 
    						}		  
    				}
    			else
    				{
    					echo '<P align=center><FONT face="Comic Sans MS" size="3" color=#000000>Mise à jour film</FONT><BR>'
    						.' <P align=center><FONT face="Comic Sans MS" size="3" color=#000000>Impossible d\'exécuter la requête de modif de l\'emprunteur :</FONT> ' . mysql_error();	
    				} 
     
    		}
     
    ?>
    Quelqu'un peut m'aider svp ?

    Merci d'avance...

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    essai ce code. (j'ai juste enlevé les simple quote qui etait autour de $ligne['numfilm'])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = "UPDATE emprunteur SET nomemp='".$emp['nomemp']."' WHERE numfilm=".$ligne['numfilm'].";";
    $resultat = @mysql_query ($req);

  3. #3
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut
    Citation Envoyé par ouatmad
    essai ce code. (j'ai juste enlevé les simple quote qui etait autour de $ligne['numfilm'])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = "UPDATE emprunteur SET nomemp='".$emp['nomemp']."' WHERE numfilm=".$ligne['numfilm'].";";
    $resultat = @mysql_query ($req);
    Merci pour ta réponse.

    Non ça ne marche pas plus. Je n'obtiens pas de message d'erreur mais pas de mise à jour

  4. #4
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut
    J'ai repris le code de 0 et l'ai simplifié au maximum:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?PHP 
     
    	require ("../connect.php");
        mysql_connect (SERVEUR, NOM, PASSE) or die(mysql_error);       	
    	mysql_select_db (BASE) or die(mysql_error);
     
    	$titre = addslashes($_POST['titre']);
    	$genre = addslashes($_POST['genre']);
    	$position = addslashes($_POST['position']);
    	$emprunteur = addslashes($_POST['emprunteur']);
     
    	// on met à jour le genre, la position
    	$update = "UPDATE films SET genrefilm='".$genre."', posfilm='".$position."' WHERE nomfilm='".$titre."';";
    	$up = @mysql_query ($update);
     
    	// on récupère le numéro de film
    	$numero = "SELECT numfilm FROM films WHERE nomfilm='".$titre."'";
    	$num = @mysql_query ($numero);
     
    	// on utilise le resultat de $num
    	while($upemp = mysql_fetch_assoc($num))
    		{ 
    			// on met à jour l'emprunteur
    			echo $emprunteur;
    			echo $upemp['numfilm'];
    			$emprunt = "UPDATE emprunteur SET nomemp='".$emprunteur."' WHERE numfilm='".$upemp['numfilm']."';";
         	}
     
    ?>
    Il n'y a que la partie UPDATE de l'emprunteur qui ne fonctionne pas

    Quelqu'un peut m'aider svp ?

    Merci d'avance...

  5. #5
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut
    Quelqu'un peut m'aider ?

    Je rentre pas dans la boucle s'il n'y a personne qui a emprunté le film donc je ne peut jamais atteindre le INSERT quelqu'un a une idée svp ?

    Merci d'avance...

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Pour commencer il faut pas faire taire les erreurs mais les gérer, commence par remplacer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $num = @mysql_query ($numero);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $num = mysql_query ($numero) die ("Erreur : " .mysql_error());
    Ensuite si tu parles de la boucle qui suit c'est que tout simplement, aucun titre ne correspond à ta recherche donc un peu logique que tu n'entres pas dans le while. Il faudrait vérifier la requete du select et voir si elle est bien constitué

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/04/2007, 15h31
  2. [Conception] erreur de mise à jour UPDATE
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/06/2006, 12h56
  3. organisation d'un formulaire de mise à jour
    Par lifecraft dans le forum ASP
    Réponses: 26
    Dernier message: 24/02/2006, 17h36
  4. Formulaire et mise à jour du sous-formulaire
    Par ana2sb dans le forum Access
    Réponses: 1
    Dernier message: 23/09/2005, 11h39
  5. Méthode pour un formulaire de mise à jour
    Par deviltaz dans le forum IHM
    Réponses: 12
    Dernier message: 07/10/2004, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo