Problème d'écho multiples

Eléphanteau du PHP | 15 Messages

06 avr. 2005, 15:06

Voilà. J'ai un petit système qui va aller récupérer les entrées d'une bdd, leurs noms (monfichier.jpeg ou autre)ainsi que le total des entrées.

Mon soucis c'est que pour les premières entrées (nom de rubrique) et le total c'est bon mais c'est les noms de fichier qui pose problème.

Voilà le code :
[php]<?php
$lien = @mysql_connect("host","user","pass");

if ($lien == false) {
echo "&resultat_0=Echec&erreurmsg=";
echo utf8_encode("Echec de la connexion");
exit;
}

if (mysql_select_db("bddemergence") == false) {
echo "&resultat_0=Echec&erreurmsg=";
echo utf8_encode("Base indisponible\n");
echo utf8_encode("Erreur : " . mysql_error($lien));
echo "&";
exit;
}

$requete = "SELECT contenu FROM table_text";
$resultat = @mysql_query($requete);
$i = 0;
$listeResultats = "";
while ($donnees=mysql_fetch_array($resultat)){
$listeResultats .= "&resultat_".$i."=".urlencode(utf8_encode($donnees['contenu']));
$i++;
}
$listeResultats .= "&total=".$i."&";
echo $listeResultats;
?>[/php]

Je ne sais pas comment m'y prendre (à moins de faire un deuxième fichier php) pour lui dire. :( :(

- Pour mon deuxième résultats ($listeResultats2), tu iras pêcher et encoder la case "fichier" et nom plus "contenu"
- Et tu ferras un echos sur $listeResultats [b]ET[/b] $listeResultats2

C'est tout simplement de concaténer les deux, enfin je pense. Vous avez une idée. J'avais commencé à définir ma variable $listeResultats2 et le reste et faire 2 échos distincts mais ça marche pas.

Merci bcp :)

Eléphanteau du PHP | 15 Messages

06 avr. 2005, 16:34

heuuu, personne pour m'éclairer??

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

06 avr. 2005, 18:00

je ne vois pas bien ce que tu veux faire là

pourquoi tu ne sélectionnes pas fichier en même temps que contenu et tu concatènes les deux dans ton url comme tu le fais maintenant ?

peux-tu expliquer un peu plus ?

;)

Eléphanteau du PHP | 15 Messages

07 avr. 2005, 13:33

Salut.

OUi c'est ça mais le truc c'est que je n'y arrive pas justement.
J'ai commencer à faire ça mais déjà, le while merdouille. Tu pourrais m'aider à corriger mon code que je comprenne.

[code]<?php

$lien = @mysql_connect("host","user","pass");

if ($lien == false) {
echo "&resultat_0=Echec&erreurmsg=";
echo utf8_encode("Echec de la connexion");
exit;
}

if (mysql_select_db("bddemergence") == false) {
echo "&resultat_0=Echec&erreurmsg=";
echo utf8_encode("Base indisponible\n");
echo utf8_encode("Erreur : " . mysql_error($lien));
echo "&";
exit;
}

$requete = "SELECT contenu FROM table_text";
$requete2 = "SELECT fichier FROM table_text";
$resultat = @mysql_query($requete);
$resultat2 = @mysql_query($requete2);
$i = 0;
$listeResultats = "";
while (($donnees=mysql_fetch_array($resultat))&&($donnees2=mysql_fetch_array($resultat2)){
$listeResultats .= "&resultat_".$i."=".urlencode(utf8_encode($donnees['contenu']))."&resultat2_".$i."=".urlencode(utf8_encode($donnees2['fichier']));
$i++;
}
$listeResultats .= "&total=".$i."&";
echo $listeResultats;
?>[/code]

Désolé de mon niveau en php :-(

Merci bcp de te pencher sur mon soucis

jr

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

07 avr. 2005, 16:44

1 - quand tu mets ton code entre balises

Code : Tout sélectionner

, assure toi que ça a marché 2 - met le finalement entre balises PHP, c'est encore mieux :) 3 - tu peux passer par une seule requête : [php]$requete = "SELECT contenu, fichier FROM table_text";[/php] au lieu de : [php] $requete = "SELECT contenu FROM table_text"; $requete2 = "SELECT fichier FROM table_text"; [/php] ce qui te permet de faire ton while comme ceci [php] while (($donnees=mysql_fetch_array($resultat))){ $listeResultats .= "&resultat_".$i."=".urlencode(utf8_encode($donnees['contenu']))."&resultat2_".$i."=".urlencode(utf8_encode($donnees['fichier'])); $i++; } [/php] ce qui est déjà plus lisible et surement plus fonctionnel