Page 1 sur 1

un espace en trop dans un champs de base de données php

Posté : 16 août 2010, 13:04
par solidaritok
Bonjour,

dans une table, j'ai une valeur "f1" qui apparaît comme si elle avait trois caractère, et du coup, elle ne passe pas les switch.

Comment faire svp?

Re: un espace en trop dans un champs de base de données php

Posté : 16 août 2010, 14:03
par xTG
Si c'est un espace tu peux essayer de traiter ta variable avec la fonction trim().

Re: un espace en trop dans un champs de base de données php

Posté : 16 août 2010, 14:41
par solidaritok
Merci pour ta réponse.

J'ai essayé cette fonction trim(), ça ne marche pas, voici les jeux d'essaie :
<?

$retour = affich($titre);
echo "Titre choisi : ";
echo "$retour[0]";
echo "; ","Fichier correspondant: ";
echo "$retour[1]";

echo "<br>";
echo "Nombre de caractère du titre choisi ",$retour[0]," :";
strlen($retour[0]); //compte le nombre de caractères dans la chaine
echo strlen($w); // affiche le résultat
echo ". Nombre de caractère du fichier correspondant ",$retour[1]," :";
strlen($retour[1]); //compte le nombre de caractères dans la chaine
echo strlen($w); // affiche le résultat

echo "<br>";
echo "affectation de la variable titre choisi dans une variable w";
$w=$retour[1];

echo "<br>";
echo "valeur de la variable w : ",$w;
echo "<br>";


strlen($w); //compte le nombre de caractères dans la chaine
echo "Nombre de caractère de la variable w ",$w," : ";
echo strlen($w); // affiche le résultat

echo "<br>";

trim($w) ; //retourne la chaîne $w sans ses espaces de début et de fin
echo "Utilisation de la fonction trim() sur la variable w ",$w," : ";
echo "<br>";



strlen($w); //compte le nombre de caractères dans la chaine
echo "Nombre de caractère de la variable w ",$w," : ";
echo strlen($w); // affiche le résultat

echo "<br>";

echo "Test du switch : ";

switch($w)
{

    case 'f1';
        echo 'Choix 1';
    break;

    case 'f2';
        echo 'Choix 2';
    break;
    default;
        echo 'Aucun choix valable';
    break;
};

function affich($titre) {

   $sql = mysql_connect('***');
   $db = mysql_select_db('***, $sql);


   $query = "SELECT * FROM pages WHERE titre='$titre' ";

	$resultat = mysql_query($query);

	if ($resultat) {
		while ($valeurs = mysql_fetch_assoc($resultat)) {
                  $titre= "".$valeurs['titre']."\n";  

                  $fichier= "".$valeurs['fichier']."\n";

		} // Fin de la boucle
	} else {
		echo 'Erreur : resultat';
	}

return array( $titre, $fichier );

   mysql_close($sql);
}

?>


Voici le formulaire :
<FORM Method="POST" Action="ctrl3.php">

Titre : 		<INPUT type=text size=20 name=titre><BR>



		<INPUT type=submit value=Envoyer>

		<INPUT type=hidden name=afficher value=ok>

</FORM>
Et voici la page web pour tester :
http://www.solidaritok.com/testctrl.php

Re: un espace en trop dans un champs de base de données php

Posté : 16 août 2010, 15:51
par xTG
$w = trim($w);
^_-

Re: un espace en trop dans un champs de base de données php

Posté : 16 août 2010, 16:03
par Solidaritok
Merci, ça marche! :D