Page 1 sur 1

problème insertion de données

Posté : 28 juin 2006, 16:15
par rakizm
re salut à tous

voilà je veux insérer des noms dans un champ sauf que quand celui ci a un espace au milieu php ou mysql ne prend en compte que la partie avant l'espace.

y a t il une fonction dans php qui serait comme addslashes ou stripslashes mais pour les espaces.

Merci d'avance. :wink:

Posté : 28 juin 2006, 16:23
par guilt92
montre ta requete pour insérer du texte stp, parce que normalement si tu mets ton texte entre ' ' ca devrait fonctionner.

re

Posté : 28 juin 2006, 16:29
par rakizm
voila la requete:

Code : Tout sélectionner

$query="insert into eco_nom (id_nom,nom) values ('$id_nom','$nom')";

plus de détail

Posté : 28 juin 2006, 16:31
par rakizm
pour ceux que ça intéresse regardez le probleme syntaxe sql pour comprendre comment j'en suis arrivé là!!! :)

Re: plus de détail

Posté : 28 juin 2006, 16:33
par ouckileou
pour ceux que ça intéresse regardez le probleme syntaxe sql pour comprendre comment j'en suis arrivé là!!! :)
Paye ton lien dans ce cas là, sinon personne va chercher

Pour ton problème, regarde le SQL généré avec echo $query

Et lis ça : http://www.phpfrance.com/forums/voir_sujet-19378.php

Re: plus de détail

Posté : 28 juin 2006, 16:40
par rakizm
Pour ton problème, regarde le SQL généré avec echo $query
c'est fait ça la variable passe à la requete déja tronquée

au fait elle se perd au milieu de la form ke je valide et je ne comprend pas pourquoi.

j'ai eu exactement le meme pb avec l'apostrophe mais ça je l'ai réglé avec les addslashes et les stripslashes.

Re: plus de détail

Posté : 28 juin 2006, 16:43
par ouckileou
c'est fait ça la variable passe à la requete déja tronquée
Bah alors si tu as remarqué que le problème se situe avant la création de la requête, qu'est-ce qu'on en a faire de la requête en question ???

Edition : ok désolé la requête on te l'avait demandé :oops:

Mets des echos de contrôle, à réception du formulaire et un peu après, normalement un espace ne doit pas poser problème

re

Posté : 28 juin 2006, 16:51
par rakizm
Mets des echos de contrôle, à réception du formulaire et un peu après, normalement un espace ne doit pas poser problème
ça aussi c fait mais si je pose la question sur ce forum c'est parceque je bloque après tous les tests que j'ai fait

je sais ou se situe le problème au niveau de mon code mais d'ici à savoir pourquoi la variable se perd à moitié à la validation du formulaire là je ...... :? :? :? :shock:

Re: re

Posté : 28 juin 2006, 16:54
par ouckileou
Mets des echos de contrôle, à réception du formulaire et un peu après, normalement un espace ne doit pas poser problème
ça aussi c fait mais si je pose la question sur ce forum c'est parceque je bloque après tous les tests que j'ai fait

je sais ou se situe le problème au niveau de mon code mais d'ici à savoir pourquoi la variable se perd à moitié à la validation du formulaire là je ...... :? :? :? :shock:
On ne pourra pas t'en dire plus sans voir le code qui est entre le dernier affichage de la variable correcte, et celui de la variable incorrecte

Re: plus de détail

Posté : 28 juin 2006, 17:11
par rakizm
/echo"<pre>";		
		//print_r($HTTP_POST_VARS	);
		$query="insert into eco_nom (id_nom,nom) values ('$id_nom','$nom')";
		echo $query;
		//echo $nom;
dbi_query($db_name,$query,$db_driver);


//print "ssssssssssssssss".$nom;
		echo"<table class=menu_N4_comm width=100%>";
		echo"<form name=F method='POST' action=newPM.php>";
		echo"<input type=hidden value='$type' name=type>";
		echo"<input type=hidden value='$id_category' name=category>";
		echo"<input type=hidden value='$checked' name=checked>";
		echo"<input type=hidden value='creer' name=action>";
		echo"<input type=hidden value='$fournisseur' name=fournisseur>";
		echo"<input type=hidden value='$agence' name=agence>";
		echo"<input type=hidden value='1' name=validate>";
		$new_nom=$HTTP_POST_VARS["nom"]	;
		$new_nom=stripslashes($new_nom);
		echo $new_nom;
		echo"<input type='hidden' value=".$new_nom." name='nom'>";

		echo"<tr><td class=menu_N3_comm colspan=2><b>Liste des sociétés similaire à <font color='ffffff'>".$nom."</font></b></td></tr>";		
		$i=0;
		while($i<=sizeof($societe_name))
		{
			if($i%2!=0)
				$clo="#FFF6D5";
			else
				$clo="";
			//echo "<tr><td><b>Société $i</b></td><td>$societe</td></tr>";
			echo "<tr bgcolor=$clo><td></td><td>$societe_name[$i]</td></tr>";
			$i++;
		}
		
		echo"<tr class=menu_N3_comm><td colspan=2 align=center><input type=submit class='input_vert'  name=valider  value='Valider'><input type=button class='input_vert' value='Fermer' onclick=\"window.close();\" ></td></tr>";
		echo"</form>";
		echo"</table>";		

voilà en gros ce qu'est le code la fonctions dbi_query est une fonctions implémentée pour executer la requete.

Posté : 28 juin 2006, 17:19
par ouckileou
C'est $_POST qu'il faut utiliser, et non plus $HTTP_POST_VARS

Bon et sinon quand tu fais ton print_r() c'est bon ? la valeur est bonne ?
        print_r($_POST); // là c'est bon ?
        $query="insert into eco_nom (id_nom,nom) values ('$id_nom','$nom')";
        echo $query; // et là c'est plus bon ?
N'en dis pas plus à chaque, on adore essayer de deviner

resolution du pb

Posté : 30 juin 2006, 11:59
par rakizm
je vous explique comment je suis arrivé à mes fins

ma variable lors de la première insertion passe par un seul formulaire
mais quand je veux réinsérer la meme variable(c à d créer un doublon) elle passe par deux formulaire et c'est la que ça posait problème pas d'espace mais d'apostrophe qui lui a créé le pb d'espace enfin bref


ce qu'il fallait faire c'est tester si la variable est passé par 1 ou 2 formulaires
dans le premier cas on fait un addslashes et dans le deuxieme un stripslashes cause:php rajoute des "\" à chaque passage dans un formulaire.

:wink: :P

à bientot