chaine tronquée

Eléphanteau du PHP | 32 Messages

28 oct. 2005, 05:24

Bonjour

J'obtiens une chaine de caractères par concaténation, mais dans mon champ récepteur, elle est tronquée à 25 caractères.
Si je ne la met pas dans mon input, elle n'est pas tronquée.
J'ai mis une maxlength à 10000, mais ca n'a rien changé.
Je précise aussi que lorsque je charge ce champ par un autre moyen (scritpt javascript ou en ecrivant dedans), je n'ai pas cette limite.
			<INPUT id="Donnees" type="text" maxlength="10000" size="151" value = 
				<?php
				$host = "localhost";
				$user = "";
				$pass = "";
				mysql_connect($host, $user, $pass) or die;
				mysql_select_db("catalogue") or die;
				$sql = "SELECT * FROM `categorie` ORDER BY `id_categ`";
				$res = mysql_query($sql);
				$tout = mysql_numrows($res);
				while($val = mysql_fetch_array($res)){ 
					$code = $val['id_categ'];
					$nom = $val['nom_categ'];
					$image = $val['Photo_categ'];
					$tout = $tout . "|" . $code . "|" . $nom . "|" . $image;
				}
				@mysql_close();
				echo $tout;
				?>
			name="Donnees">

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 oct. 2005, 08:37

1°/ ta méthode pour insérer du texte dans un INPUT est ... exotique
<?php
    $host = "localhost";
    $user = "";
    $pass = "";
    mysql_connect($host, $user, $pass) or die;
    mysql_select_db("catalogue") or die;
    $sql = "SELECT * FROM `categorie` ORDER BY `id_categ`";
    $res = mysql_query($sql);
    $tout = mysql_numrows($res);
    while($val = mysql_fetch_array($res)){
        $code = $val['id_categ'];
        $nom = $val['nom_categ'];
        $image = $val['Photo_categ'];
        $tout = $tout . "|" . $code . "|" . $nom . "|" . $image;
    }
    @mysql_close();
?>
<INPUT id="Donnees" type="text" maxlength="10000" size="151" value ="<?= $tout ?>" name="Donnees">
2°/ il y avait une erreur : il faut encadrer le valeur par des "
value="valeur"

3°/ Est-ce que ton formulaire n'aurait pas METHOD="GET" par hasard ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 32 Messages

28 oct. 2005, 09:08

1°/ ta méthode pour insérer du texte dans un INPUT est ... exotique
<?php
    $host = "localhost";
    $user = "";
    $pass = "";
    mysql_connect($host, $user, $pass) or die;
    mysql_select_db("catalogue") or die;
    $sql = "SELECT * FROM `categorie` ORDER BY `id_categ`";
    $res = mysql_query($sql);
    $tout = mysql_numrows($res);
    while($val = mysql_fetch_array($res)){
        $code = $val['id_categ'];
        $nom = $val['nom_categ'];
        $image = $val['Photo_categ'];
        $tout = $tout . "|" . $code . "|" . $nom . "|" . $image;
    }
    @mysql_close();
?>
<INPUT id="Donnees" type="text" maxlength="10000" size="151" value ="<?= $tout ?>" name="Donnees">
J'aime l'exotisme, ca me rappelle les vacances :D . Mais surtout, j'essaie de me débrouiller en m'inspirant des exemples que je trouve, et je peux donc passer à côté des façons de faire les plus simples. Ca fait à peine 2 semaines que j'ai commencé à faire ce site, et avant je n'y connaissais rien (sauf en programmation sur des langages sans rapport avec le web).
2°/ il y avait une erreur : il faut encadrer le valeur par des "
value="valeur"
Merci. comme ca ca ne tronque plus
3°/ Est-ce que ton formulaire n'aurait pas METHOD="GET" par hasard ?
Ben je pense que oui. Mais est-ce qu'on peut avoir dans le meme formulaire method="get" et method="post" ? Car j'utilise déja method="post" pour mettre à jour ma base de données.

Mammouth du PHP | 19672 Messages

28 oct. 2005, 09:30

Mais est-ce qu'on peut avoir dans le meme formulaire method="get" et method="post" ? Car j'utilise déja method="post" pour mettre à jour ma base de données.
Rien ne l'interdit: l'url de l'attribut action peut comporter des paramètre, ce que faisant c'est la méthode get qu sera employée, et tu peux avoir post pour l'attribut method : résultat, les deux méthodes simultanément pour le même formulaire. Mais bien sur, tu ne peux avoir qu'un seul attribut method et la valeur doit être unique.

J'ajouterai une précision : on ne met pas à jour une base de données avec quelque méthode que ce soit, get ou post: on transmet des données vers une autre page: la mise à jour de la base est indépendante puisqu'elle est faite par une partie du code de la page. Entre l'envoi des valeurs du formulaire et la mise à jour de la base, il y a obligatoirement une récupération de données envoyées, traitement et envoi ensuite vers la base.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

28 oct. 2005, 09:34

j'ai pas suivit le sujet mais y a untruc qui m'etonne
$tout = mysql_numrows($res);
et tu ecrase $tout avec
 $tout = $tout . "|" . $code . "|" . $nom . "|" . $image;
devrait etre
$tout = mysql_num_rows($res);
et un formulaire est soit en get soit en post

est ce que php est cofigurer pour les short tag?

Eléphanteau du PHP | 32 Messages

28 oct. 2005, 09:40

Non, jeff, je n'écrase pas, je contatène, puisque je met $tout comme 1ere de mes chaines à concaténer. numrows ne me renvoie que le nombre de rangées. Ensuite, j'ajoute le contenu des rangées et je met le tout dans mon champ "Données", qui en fait en hidden.
Et de la, je le dispatche dans une listbox par un script en javascript.

Mammouth du PHP | 1311 Messages

28 oct. 2005, 09:50

:oops:
j'avais pas fait gaffe pour la concatenation
zeus a écrit:

2°/ il y avait une erreur : il faut encadrer le valeur par des "
value="valeur"

Merci. comme ca ca ne tronque plus
qu'est ce qui ne fonctionne pas au juste
l'affichage ou le fait que ta chaine n'est pas concaténée

Eléphanteau du PHP | 32 Messages

28 oct. 2005, 15:50

Le problème était que la chaine etait tronquée. Mais maintenant, ca fonctionne. C'est à cause des guillemets que j'avais oublié.