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

solidaritok
Invité n'ayant pas de compte PHPfrance

16 août 2010, 13:04

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?

ViPHP
xTG
ViPHP | 7331 Messages

16 août 2010, 14:03

Si c'est un espace tu peux essayer de traiter ta variable avec la fonction trim().

solidaritok
Invité n'ayant pas de compte PHPfrance

16 août 2010, 14:41

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

ViPHP
xTG
ViPHP | 7331 Messages

16 août 2010, 15:51

$w = trim($w);
^_-

Solidaritok
Invité n'ayant pas de compte PHPfrance

16 août 2010, 16:03

Merci, ça marche! :D