erreur d'affichage dans une nouvel page php

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 : erreur d'affichage dans une nouvel page php

Re: erreur d'affichage dans une nouvel page php

par sirakawa » 07 juin 2014, 14:50

Si c'est résolu, il faut le marquer avec le bouton Hareng Saur!

Re: erreur d'affichage dans une nouvel page php

par youka12 » 07 juin 2014, 13:14

bonjour !
merci pour votre aide . ça a fonctionner justement avec la solution de input hidden de @sirakawa !!!

Re: erreur d'affichage dans une nouvel page php

par sirakawa » 07 juin 2014, 09:05

Comme, en plus, il s'agit visiblement d'un devoir ou d'un projet, j'ajouterai que la présentation est entièrement à revoir:
if (!$qq) {
    die ('errroor'.mysql_error());
} 
while ($data = mysql_fetch_row ($qq))
{ 
     $noffre = $data[0];
    ?> <ul> <!-- début de <li>? -->
     <a href=<?php echo $data['1'];?> title="The road" rel="prettyPhoto[gallery]"> 
    <img src=<?php echo $data['1'];?> alt="The Road" title="The Road" height="160px" width="460px"/></a> 
    <em><?php echo $data['6'].' à '. $data['3'].' DH seulement';?> 
    <input id="v1" type="submit" name="submit" value="DECOUVRIR"/></em> <!--On suppose un <form..> plus haut?-->
       </li>
<!--Comme dit moogli, cette affectation est mal placée. Où qu'on la mette, elle n'aura jamais la valeur de l'offre choisie.
En revanche, un champ caché <input type = 'hidden' name = 'noffre'  value ='$noffre'  />
ferait l'affaire.-->

     <?php $_SESSION['noffre']=$data['0'];}?> 

Re: erreur d'affichage dans une nouvel page php

par moogli » 06 juin 2014, 23:45

Salut,

SESSION['noffre'] a toujours la dernière valeur parce que dans la boucle d'affichage tu affect l'id courant a cette variable a chaque "tour".

Le plus simple est d'utiliser correctement les formulaires ou simplement un lien pour éviter la déclaration de x formulaire.

Tu peux très bien utiliser les css pour que ton lien ressemble a un bouton ce n'est pas une problèmes.

Le lien sera de la forme detailOffre.php?id=xxx
Où xxx provient de la base de données.


L'extension mysql est dépréciée et vouée a disparaître il est plus intéressant de ce tourner vers mysqli ou PDO (mysqli étant la solution la proche syntaxiquement de mysql).

@Elie : quitté à chipoter utiliser mysql_fetch_assoc est préférable a mysql_fetch_array le tableau sera plus léger les index numérique étant (dans l'exemple) inutile ;)

@+

Re: erreur d'affichage dans une nouvel page php

par Elie » 06 juin 2014, 21:39

Je serais toi, je me servirai de mysql_fetch_array au lieu de mysql_fetch_row, ca sera plus simple pouvoir a quoi corresponde les variables.

Après, je ne comprend pas trop comment marche ton site.
L'utilisation de $_SESSION est-elle vraiment utile ?
Passes-tu pour un formulaire pour simplement utilise $_POST ?

Si tu veux entouré le nom du champ NOoffre, je mettrait des ` au lieu de ' ...

C'est pas très clair.

erreur d'affichage dans une nouvel page php

par youka12 » 06 juin 2014, 21:18

salut !
j'ai comme sujet une agence de voyage en ligne si pouvez pouvez m'aider !
j'ai un problème avec php ,je veux afficher dans une page tous les offres qui existe dans la base de données avec un bouton pour chacun des offres pour accéder a cet offre . en même temps je veux récupérer son id pour pour l'afficher dans une autre page avec plus de détails .j'ai utilisé une boucle while pour l'affichage de tous les offres et quand je clique pour découvrir n'importe quel offre il m'affiche le dernier offres de la liste ! voilà le code de la page des offres :
$q="SELECT * FROM offre where dispo=1 "; 
$qq=mysql_query($q); 
if(!$qq){die('errroor'.mysql_error());} 
while($data=mysql_fetch_row($qq)){ 
?>	<ul> 
<a href=<?php echo $data['1'];?> title="The road" rel="prettyPhoto[gallery]"> 
<img src=<?php echo $data['1'];?> alt="The Road" title="The Road" height="160px" width="460px"/></a> 
<em><?php echo $data['6'].' à '. $data['3'].' DH seulement';?>                      <input id="v1"type="submit" name="submit" value="DECOUVRIR"/></em> 
</li><?php $_SESSION['noffre']=$data['0'];}?> 
voilà le code de la page où j'affiche l'offre seul 
if(isset($_POST['submit'])){ 
$no=$_SESSION['noffre']; 
$q="SELECT * FROM offre where 'NOffre'='".$no."'"; 
$qq=mysql_query($q); 
if(!$qq){die('errroor'.mysql_error());} 
while($data=mysql_fetch_assoc($qq)){ 
//if(!$qqq){die('errroor'.mysql_error());} 
$_SESSION['no']=$no; 
?> 
<img src= <?php echo $data['image'];?> /> 
<p ><i> 
<?php echo $data['description'];?></i> 
<form method="post" action="gestoffre.php"> 
<input id="v1" type="submit"name="retour" value="RETOUR" >  
<input id="v1" type="submit"name="reserver" value="RESERVER">  
<input id="v1" type="submit"name="simuler" value="SIMULER RESERVATION"> </form> 
</center> <?php }}?> 
ya t il une autre methode pour les afficher et garder le id ?
merci !!