Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/09/2011, 17h15   #1
Invité de passage
 
Inscription : août 2009
Messages : 54
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 54
Points : 2
Points : 2
Par défaut espace dans la colonne des données dans la bdd

Bonjour,
j'ai un soucis avec l'insert dans ma bdd..je m'explique quand je fais un insert avec mon formulaire tout ce passe bien mais dans ma bdd un espace se créait sur la gauche ce qui me pose problème..je sais qu'il faudrait que j'utilise LTRIM, mais je ne sais pas comment et où le mettre dans mon code..voici mon code :
Code :
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
<?php          
        if (isset($_POST['UF'])               
		and isset($_POST['SERVICE'])
        and isset($_POST['SORTIE_STOCK'])
        and isset($_POST['CARTOUCHE'])
        and isset($_POST['DATE_SORTIE']))  
          {          
            $uf=$_POST['UF'];
            $service=$_POST['SERVICE'];   
            $sortie_stock=$_POST['SORTIE_STOCK']; 	
            $cartouche= $_POST['CARTOUCHE'];
            $date_sortie= $_POST['DATE_SORTIE'];
 
				// Gestion de la déconcaténation 
                 $tab     = explode("-",$_POST['UF-SERVICE']);
                 $uf      = $tab[0];
                 $service = $tab[1];                             
 
        $requete = "SELECT * FROM servcart WHERE cartouche='".$cartouche."' && uf='".$uf."' && service='".$service."' order by service " ; 
        $req = mysql_query($requete) or die( mysql_error() ) ; 
 
        $res= mysql_num_rows($req); 
 
        if ($res !=0)
             { 
	    echo'<span style="color:red;">Cette cartouche est déjà attribué à ce service.<br /><br/></span>';	 	 		 
 
             }	
        else
            {							
        $requete1="INSERT INTO servcart(uf,service,cartouche,sortie_stock,date_sortie) VALUES('$uf','$service','$cartouche','$sortie_stock',NOW())";               
        $req1 = mysql_query($requete1) or die( mysql_error() ) ;
 
            echo '<span style="color:green;">Ajout terminé !! <br /><br /></span>';	
            }		                          
           $requete2 = "UPDATE cartouches SET en_stock = en_stock-1 WHERE cartouche = '$cartouche' " ;  		             
           $req2= mysql_query($requete2) or die( mysql_error() ) ;
 
           $requete3 = "UPDATE services SET sortie_stock = sortie_stock+1 WHERE sortie_stock = '$sortie_stock' " ; 
           $req3 = mysql_query($requete3) or die( mysql_error() ) ;	
 
		    }           
     ?>
Merci pour votre aide
davidson81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 20h44   #2
Membre du Club
 
Inscription : avril 2011
Messages : 91
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 91
Points : 40
Points : 40
Bonsoir.

Perso j'utilise trim pour supprimer les espaces en début et en fin de chaîne mais bon ça marche pareil.

Il suffit juste d'écrire
Code :
$uf = ltrim($_POST['UF']);
Après il faudrait peut-être savoir d'où vient cet espace en premier
p4ndore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 09h30   #3
Invité de passage
 
Inscription : août 2009
Messages : 54
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 54
Points : 2
Points : 2
Bonjour p4ndore,
Cette espace vient que dans mon formulaire pour une liste déroulante contient une concaténation uf+service mais je fais un explode pour l'insertion comme tu peux le voir dans le code que j'ai fourni,le faîte d'avoir ce décalage me fais des doubblons dans une liste déroulante dans une autre page malgré un distinct dans mon select de cette page..je viens d'essayer ton code mais cela n'a rien changé...
davidson81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 09h39   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Tu peux expliquer plus en détail ton phénomène d'ajout d'espace par ton formulaire ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h11   #5
Membre du Club
 
Inscription : avril 2011
Messages : 91
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 91
Points : 40
Points : 40
Tu as bien mis ltrim() à toutes les variables (uf, service...) ?

En regardant un peu mieux tu as :
Citation:
$uf=$_POST['UF'];
$service=$_POST['SERVICE'];
.......
$tab = explode("-",$_POST['UF-SERVICE']);
$uf = $tab[0];
$service = $tab[1];
Une de ces parties n'est-elle pas inutile ?

Tu fais un test pour vérifier $_POST['UF'] mais pas $_POST['UF-SERVICE']
p4ndore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 12h46   #6
Invité de passage
 
Inscription : août 2009
Messages : 54
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 54
Points : 2
Points : 2
Pour CinePhil,j'ai une page avec un tableau de données de ma bdd,dans cette page, j'ai un lien qui m'ouvre un formulaire d'insertion avec 2 listes déroulantes ,un champs texte,un champs date,dans une des liste déroulantes j'ai une concaténation que je déconcane pour inserer dans mon tableau et ma base,l'insert ce passe bien..après quand je regarde ma bdd la colonne une donnée est décalée dans la colonne ex :
uf services date
124 ...Archives 2011/08/09

J'ai mis les petits points pour le décalage
Ce qui a pour effet dans une autre page j'ai une liste déroulante qui récupère sur la même table les données mais cette fois ci pas de contaténation juste le service dans la liste et cela me fait un insert dans cette liste du service que je viens d'inserer donc doublons....triplons...alors que j'ai mis un distinct dans cette liste
et pour p4ndore l'explode j'en ai besoin pour l'insert...
davidson81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 13h36   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Je suppose que c'est le code de concaténation qui insère un espace et qui n'est pas retiré lors de la déconcaténation ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 13h46   #8
Invité de passage
 
Inscription : août 2009
Messages : 54
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 54
Points : 2
Points : 2
j'y est bien pensé..mais comment gérer cela...car si je ne défais pas la concaténation et déconcaténation mes colonne sont vides
davidson81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 13h49   #9
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Ben il faut que tu vires les espaces inutiles dans la variable qui alimente la requête INSERT. Je crois que le code t'a été donné plus haut.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 14h16   #10
Invité de passage
 
Inscription : août 2009
Messages : 54
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 54
Points : 2
Points : 2
j'ai fait lstrim sur uf et service dans mon post mais pas de changement...où ce trouve mon erreur?????
davidson81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 14h35   #11
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Tu peux poster ton nouveau code ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 15h17   #12
Invité de passage
 
Inscription : août 2009
Messages : 54
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 54
Points : 2
Points : 2
c'est bon cela fonctionne,il y avait une erreur dans ma concaténation de ma liste déroulante espace en trop ensuite j'ai corrigé les déclarations en double de variables et j'ai ajouter ltrim dans mon explode et cela marche nickel...merci à vous deux pour vos remarques pertinentes qui m'ont aidé..
davidson81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h39.


 
 
 
 
Partenaires

Hébergement Web