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

  1. #1
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    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...
    "Vous qui entrez ici, abandonnez toute espérance." Dante

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    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);
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    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
    "Vous qui entrez ici, abandonnez toute espérance." Dante

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    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...
    "Vous qui entrez ici, abandonnez toute espérance." Dante

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    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...
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  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
    Points : 20 778
    Points
    20 778
    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é

  7. #7
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par Kerod
    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é
    Oui mais justement, le but c'est de voir s'il y a un enregistrement, si la requete ne rend rien alors INSERT, si la requete trouve un enregistrement hop un UPDATE à la place mais le problème comme toi tu le dis si la requete ne rend rien je rentre pas dans la boucle, c'est un cercle vicieux
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  8. #8
    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
    Points : 20 778
    Points
    20 778
    Par défaut
    Pour savoir si un enregistrement est trouvé il existe une fonction qui renvoie le nombre de lignes trouvées donc le while peut etre dans un if.
    Cette fonction c'est mysql_num_rows.

    Ensuite je ne vois aucun insert donc dur de parler d'alternance update et insert

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    je reviens sur un truc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo $upemp['numfilm'];
    			$emprunt = "UPDATE emprunteur SET nomemp='".$emprunteur."' WHERE numfilm='".$upemp['numfilm']."';";
         	}
    cette requete ne marchera pas parce que ya incompatibilité de type entre numfilmet ce que tu es entrain d'y mettre. vu que numfim est de type numérique c'est pas la peine de mettre des quotes (simple) autour de la variable $upemp['numfilm']
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  10. #10
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par Kerod
    Pour savoir si un enregistrement est trouvé il existe une fonction qui renvoie le nombre de lignes trouvées donc le while peut etre dans un if.
    Cette fonction c'est mysql_num_rows.

    Ensuite je ne vois aucun insert donc dur de parler d'alternance update et insert
    Oui je l'avais enlevé pour le moment, j'avais tout repris à 0 pour que tout marche, voilà la version complète, impossible d'insérer

    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
     
    <?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))
    		{ 	 
    			if ($upemp != 0)
    				{						  	
    					// on met à jour l'emprunteur
    					$emprunt = "UPDATE emprunteur SET nomemp='".$emprunteur."' WHERE numfilm='".$upemp['numfilm']."';";
    					$emp = @mysql_query ($emprunt);
    				}
    			else
    				{
    					 // on insert l'emprunteur
    					$insert = "INSERT INTO emprunteur VALUES ('', '".$emprunteur."', '".$upemp['numfilm']."');";
    					$ins = @mysql_query ($insert);
    				}
    		} 
     
    ?>
    Une idée svp ?

    Merci d'avance...
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  11. #11
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par ouatmad
    je reviens sur un truc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo $upemp['numfilm'];
    			$emprunt = "UPDATE emprunteur SET nomemp='".$emprunteur."' WHERE numfilm='".$upemp['numfilm']."';";
         	}
    cette requete ne marchera pas parce que ya incompatibilité de type entre numfilmet ce que tu es entrain d'y mettre. vu que numfim est de type numérique c'est pas la peine de mettre des quotes (simple) autour de la variable $upemp['numfilm']
    Ben en fait quand je sors le UPDATE du bloc "if" elle fonctionne
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  12. #12
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    J'ai mis ça :

    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
     
    <?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_num_rows($num))
    		{ 	 
    			if ($upemp != 0)
    				{	
    					while($update = mysql_fetch_assoc($num))
    						{				  	
    							// on met à jour l'emprunteur
    							$emprunt = "UPDATE emprunteur SET nomemp='".$emprunteur."' WHERE numfilm='".$update['numfilm']."';";
    							$emp = @mysql_query ($emprunt);	
    						}
    				}
    			else
    				{
    					 // on insert l'emprunteur
    					$insert = "INSERT INTO emprunteur VALUES ('', '".$emprunteur."', '".$upemp['numfilm']."');";
    					$ins = @mysql_query ($insert);
    				}
    		} 
     
    ?>
    Mais le problème est que j'utilise la ressource $num 2 fois donc je ne crois pas que ça puisse marcher, comment faire ? Refaire la requete juste avant la 2ème boucle au risque d'une lourdeur de chargement de plus ?

    Quelqu'un a une idée ?

    Merci d'avance...
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  13. #13
    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
    Points : 20 778
    Points
    20 778
    Par défaut
    Et comme ceci :
    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
    // on utilise le resultat de $num
    $upemp = mysql_num_rows($num);
    if ($upemp > 0)
    {    
        while($update = mysql_fetch_assoc($num))
        {                      
            // on met à jour l'emprunteur
            $emprunt = "UPDATE emprunteur SET nomemp='".$emprunteur."' WHERE numfilm='".$update['numfilm']."';";
            $emp = @mysql_query ($emprunt);    
        }
    }
    else
    {
        // on insert l'emprunteur
        $insert = "INSERT INTO emprunteur VALUES ('', '".$emprunteur."', '".$upemp['numfilm']."');";
        $ins = @mysql_query ($insert);
    }
    Pourquoi mettre un while avec mysql_num_rows ?


    Concernant les simple quote pour un numérique, l'expérience nous apprend que ca change rien vu que le SGBD gère de lui même tout ca

  14. #14
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par Kerod
    Pourquoi mettre un while avec mysql_num_rows ?
    Oui très juste, je sais pas pourquoi, je pensais que c'était la même utilisation mais vu que ça renvoie une réponse, oui pourquoi mettre une boucle je me demande

    Merci beaucoup de tes réponses toujours aussi précises

    EDIT: Petit problème, le UPDATE s'exécute mais pas le INSERT avec le bout de code
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  15. #15
    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
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as essayé avec des valeurs inexistantes ??

  16. #16
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par Kerod
    Tu as essayé avec des valeurs inexistantes ??
    En fait, j'ai compris comme un idiot j'utilise le $num qui était faite pour récupérer le num du film de la table FILMS alors que moi je voulais vérifier si le num était présent dans la table EMPRUNTEUR voilà mon nouveau code:

    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
     
    <?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);
     
    	while ($numero = mysql_fetch_assoc($num))
    		{ 
    			// on vérifie si le film est emprunté
    			$verif = "SELECT numfilm FROM emprunteur WHERE numfilm='".$numero['numfilm']."'";
    			$ver = @mysql_query ($verif);
     
    			// on regarde s'il faut mettre à jour ou insérer
    			$upemp = mysql_num_rows($verif);
    			if ($upemp > 0)
    				{    
       			 		while($update = mysql_fetch_assoc($num))
        					{    
    							echo $upemp;
    							echo 'update';                  
            					// on met à jour l'emprunteur
            					$emprunt = "UPDATE emprunteur SET nomemp='".$emprunteur."' WHERE numfilm='".$update['numfilm']."';";
            					$emp = @mysql_query ($emprunt);    
        					}
    				}
    			else
    				{	
    					echo 'insert';
        				// on insert l'emprunteur
        				$insert = "INSERT INTO emprunteur VALUES ('', '".$emprunteur."', '".$upemp['numfilm']."');";
        				$ins = @mysql_query ($insert) or die(mysql_error);
    				}
    		}
     
    ?>
    Mais j'obtiens une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\films\fonctions\fonc_maj_film.php on line 27
    Mais avec ce code j'entre dans la partie INSERT alors qu'avant je bloquais dans le UPDATE (j'ai vérifié grace à des echos)
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  17. #17
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2004
    Messages : 97
    Points : 89
    Points
    89
    Par défaut
    et si tu affiche tes requetes sql et que tu les exécute via phpmyadmin (ou autre) par exemple ? elles fonctionnent ?

  18. #18
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    J'ai trouvé, fallait que je mette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $upemp = mysql_num_rows($ver);
    Et non pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $upemp = mysql_num_rows($ver);
    Le INSERT fonctionne mais je m'aperçois que la requete insert toujours "0" pour le numfilm
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  19. #19
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Une fois que la valeur d'une variable est utilisée une fois, peut on l'utiliser une 2ème fois svp ? Car $num je l'utilise 2 fois donc peut-etre que c'est pour ça que pour le INSERT je me retrouve avec "0" comme num non ?
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  20. #20
    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
    Points : 20 778
    Points
    20 778
    Par défaut
    La j'ai pas trop compris.

    Sinon tu as ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // on insert l'emprunteur
        				$insert = "INSERT INTO emprunteur VALUES ('', '".$emprunteur."', '".$upemp['numfilm']."');";
        				$ins = @mysql_query ($insert) or die(mysql_error);
    C'est quoi exactement le problème ? QUe cherches tu exactement à faire ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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