echo = souci

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : echo = souci

par Cyrano » 27 oct. 2006, 05:20

Effectivement, pour ce qui est d'être "pas catholique", c'est une curiosité. On va simplifier un peu ça, je te mets juste ton tableau revu et corrigé :
<!-- ... -->
                    <table width="350" height="60" border="0" cellpadding="0" cellspacing="0">
                      <tr>
                        <td width="50" height="20" bgcolor="#197FB2">&nbsp;</td>
                        <td width="50" height="20" align="center" bgcolor="#006699" class="texteblanc">1 pers </td>
                        <td width="50" height="20" align="center" bgcolor="#3399CC" class="texteblanc">2 pers </td>
                        <td width="50" height="20" align="center" bgcolor="#006699" class="texteblanc">3 pers </td>
                        <td width="50" height="20" align="center" bgcolor="#3399CC" class="texteblanc">4 pers </td>
                        <td width="50" height="20" align="center" bgcolor="#006699" class="texteblanc">1/2 p. </td>
                        <td width="50" height="20" align="center" bgcolor="#3399CC" class="texteblanc">Pension</td>
                      </tr>
<?php
// on se connecte à MySQL
$base = mysql_connect ('*****', '******', '********');

// on sélectionne la base
mysql_select_db ('*******', $base);

// on crée la requête SQL
$sql  = 'SELECT * FROM tbl_******* WHERE hotel="portjacquet"';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
     // on affiche les informations de l'enregistrement en cours
?>
                      <tr>
                        <td width="50" height="20" align="center" bgcolor="#3399CC" class="texteblanc">min</td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['min1']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['min2']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['min3']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['min4']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['mindp']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['minpension']; ?></span>
                        </td>
                      </tr>
                      <tr>
                        <td width="50" height="20" align="center" bgcolor="#3399CC" class="texteblanc">max</td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['max1']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['max2'];?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['max3']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['max4']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['maxdp']; ?></span>
                        </td>
                        <td width="50" height="20" align="center" background="../images/tar-cel.gif" class="textenoir">
                          <span class="Style56"><?php echo $data['maxpension']; ?></span>
                        </td>
                      </tr>
<?php
}
?>
                      </table>
Une seule exécution de la requête et une seule boucle.

par Jeyz » 26 oct. 2006, 22:31

par Jeyz » 26 oct. 2006, 22:29

j'ai trouvé une solution à mon probleme, je doute que ça soit tres catholique mais bon..ça marche.
j'te paste le code tu vas voir d'ou je voulais en venir.

par Cyrano » 26 oct. 2006, 22:26

alors ton code ne peut pas fonctionner puisque dans ta boucle while, tu ne récupères QUE la colonne mid1.

par Jeyz » 26 oct. 2006, 22:21

j'veux juste que y'ait une accès à la base dans ma page php (parsemée de html)

puis que, au sein de ce htm, je puisse inclure des données php (qui viennent de la base de données) ici et là.

ça donnerait ça si tu veux :

htm
accès basse de données
htm
htm etc
php>affichage d'une donnée provenant de la db
htm
htm htm
php>affichage d'une donnée provenant de la db
fermeture de la db


en fait j'ai 16 champs différents à afficher

(j'espere etre clair sinon laisse couler c'est pas grave

par Cyrano » 26 oct. 2006, 22:05

un truc m'échappe : tu veux toutes les lignes de la colonne "min1" ou toutes les colonnes ?

par Jeyz » 26 oct. 2006, 22:03

oui et y'à donc 16 champs diférents dont "min1"

par Cyrano » 26 oct. 2006, 22:01

Ça, je peux pas deviner : ta requête :
$sql  = 'SELECT * FROM tbl_tarifs WHERE hotel="portjacquet"'; 
Je ne peux pas savoir le nom des champs de ta table : as-tu bien un champ "min1" dans cette table ?

re

par Jeyz » 26 oct. 2006, 21:58

si si
quandje mets ça

Code : Tout sélectionner

<?php //... /* On compte */ $nb = count($donnees); /* On affiche */ for($i = 0; $i < $nb; $i++) { echo($donnees[$i]); } //... ?>
ça affiche min 1 à chaque fois..

dsl je suis vraiment un débutant.

par Cyrano » 26 oct. 2006, 21:57

Je suppose que tu n'as pas essayé ce que j'ai suggéré ? :roll:

par Jeyz » 26 oct. 2006, 21:53

d'accord d'accord mais j'ai 16 données différentes à afficher, en l'occurence si j'veux afficher min1 et plus loin max1 ça donne quoi?

par Cyrano » 26 oct. 2006, 21:43

Ok, alors on va reprendre : tu utilises une boucle while() pour afficher tes données. Le problème, c'est que tu utilises deux fois la même ressource dans deux boucles successives. La seconde n'affiche rien parce que le pointeur a été amené à la fin lors de la première boucle, mais pas ramené au début pour la seconde. Donc on simplifie un peu. (Je ne crois pas qu'un reset fonctionne sur une ressource, à tester quand j'aurai 5mn)

-1- on crée une vvariable en tableau pour stocker le résultat de MySQL :
<?php
//...
$donnees = array();
while($data = mysql_fetch_assoc($req))
{
    $donnees[] = $data['min1'];
}
//...
?>
-2- à ce stade, tu peux fermer la connexion, tes données sont stockées dans $données qui est alors un tableau indexé.
Pour afficher, tu fais alors une boucle for, mais avant ça, tu compte le nombre d'éléments :
<?php
//...
/* On compte */
$nb = count($donnees);
/* On affiche */
for($i = 0; $i < $nb; $i++)
{
    echo($donnees[$i]);
}
//...
?>
Et tu peux refaire la même boucle autant de fois que tu voudras par la suite, ça s'affichera normalement.

re

par Jeyz » 26 oct. 2006, 21:31

attention, tu parles à un débutant de la mort qui tue là ...
j'ai pas bien tout compris.

par Cyrano » 26 oct. 2006, 21:28

tu utilises deux fois la même boucle, mais sans faire un reset sur le tableau avant de lancer la seconde tournée, donc tu n'obtiens rien.

Méthode : faire une seule boucle sur le retour de MySQL et stocker ça dans un tableau indexé. Ensuite, utiliser ce tableau à chaque fois que tu veux t'en servir dans des boucles for().

echo = souci

par Jeyz » 26 oct. 2006, 21:09

Bonjour.

J'ai un probleme, le premier echo s'affiche, mais pas lesecond (en milieu de page)

http://www.lephpfacile.com/wall/wall.php?id=3335

Si quelqu'un sait d'ou vient le probleme?

Merci :wink: