2010-06-19 12 views
0

J'ai ce problème qui me rend fou.Problème d'obtention du champ de texte sous forme de chaîne de MySQL avec PHP

J'ai une base de données MySQL dans laquelle il y a une table qui contient un champ de texte. J'interroge la table en PHP et essaye de mettre le contenu du champ de texte pour chaque rangée dans un var.

que je fais quelque chose comme ceci:

for ($i=0;$i<$nbrows;$i++){ 
    $id = $data[$i]['ID']; 
    $description = $data[$i]['DESCRIPTION']; 
    $mystring .= '<div>'.$id.': '.$description.'</div>'; 
} 

DESCRIPTION est mon champ de texte.

Je vais transmettre les détails. Le tableau $ data est construit à partir de mysql_fetch_array ($ result). J'ai également essayé d'utiliser des objets à la place, car j'utilise mysql_fetch_object pour toutes mes autres routines, mais il n'y a pas de changement.

De toute façon, le problème est le suivant: si je fais "echo $ description;" alors ça marche. J'obtiens mes données de champ de texte comme prévu. Le problème est que je ne veux pas le sortir directement, mais l'ajouter à une chaîne concaténée, et cela ne fonctionne pas. Qu'est-ce qui se passe dans ce cas, il semble prendre $ description pour une sorte de tableau ou d'objet. Pour faire fonctionner l'exemple ci-dessus, je la remplace la chaîne avec:

$mystring .= '<div>'.$id.': '.$description[0].'</div>'; 

Ainsi, dans le code de chaîne concaténée, si je traite $ Description comme un tableau, cela fonctionne, mais il est évident que je reçois une seule lettre. (il ne semble pas être un tableau parce que je ne peux pas l'imploser).

J'ai essayé un million de choses mais je ne peux tout simplement pas faire ce travail à moins que j'utilise l'écho, mais ce n'est pas ce que j'essaie de faire.

Il n'y a pas de problème avec les champs qui ne sont pas du texte.

Merci pour vos idées!

+0

Vous pouvez essayer d'utiliser 'print_r()' pour vider '$ description' et voir comment il s'imprime. – Amber

+0

Idem avec $ id - y a-t-il des problèmes? –

+0

Il imprime bien, et avec l'écho aussi, mais je réalise que cela peut avoir à faire avec les données lui-même et à défaut quand il est effectivement mis dans un tableau à la fin, donc je vais y travailler un peu plus .. . – David

Répondre

1

Il n'y a rien de mal visuellement avec le code que vous avez collé, peut-être que si vous pouviez également ajouter la fonction de récupération, nous pourrions peut-être vous aider davantage.

Peut-être que vous pourriez poster un var_dump de votre tableau $data?

1

Avez-vous essayé $mystring .= "<div> $id : $description </div>";

1

Ack, eh bien, vous savez, les heures passées sur ce sujet et il devient évident après que je décide de poster de l'aide. C'est juste à cause du codage/échappement de texte et rien d'autre. Je ne voyais pas assez bien où se trouvait le problème.

Merci d'avoir pris le temps de lire et de répondre!

Questions connexes