eviter la selection du dernier champ d'une table

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 : eviter la selection du dernier champ d'une table

par Micka » 07 mars 2006, 16:30

[RESOLU]

par Micka » 07 mars 2006, 16:29

Merci Ryle.

effectivement tu as raison je parlé bien d'eregistrement, je vais reviser mon vocabulaire et utiliser tout simplement un LIMIT.

je me sans un peu con sur le coup.

Merci beaucoup

par Ryle » 07 mars 2006, 16:24

Je ne disais pas d'enlever le "echo", juste de ne pas mettre le champ que tu ne voulais pas afficher dedans :)

Mais finalement je crois que Hermès est plus proche de ce que tu voulais faire...

Juste histoire de se mettre d'accord sur les termes, les champs d'une table ce sont les colonnes, les enregistrements ce sont les lignes.

Si ce sont des lignes que tu parles et que tu souhaites pas afficher la derniere, tu as la solution d'Hermès.
Si tu sais qu'il y en aura toujours 4, tu peux effectivement faire une boucle for (de 0 à 3 si tu ne veux pas le dernier) voire même, d'ajouter un "LIMIT 0, 3" à la fin de ta requête sql pour qu'il ne te ramène que les 3 premières lignes.

Si ce sont des colonnes, remplace l'étoile du "SELECT *" par les noms des colonnes (c'est toujours plus mieux) et soit tu ne ramène pas ta 4ème colonne, soit tu ne l'utilise pas dans ton echo :)

voili voilo... :)

par Micka » 07 mars 2006, 16:14

en enlevent les echo ,je n'est plus d'affichage.

et si je passé par un for plutot qu'un while avec une condition tant que i=0;i<4;i++ ?

par Ryle » 07 mars 2006, 15:50

Mario > Posté le: 07 Mar 2006, 14:46:08
Ryle > Posté le: 07 Mar 2006, 14:46:22

Je demande humblement pardon d'avance, mais....

RAAAAAAAAAAAAAAHHHHHHHHHHH !!!!!!!!!! ;)

bon.. faut que je m'entraine à taper plus vite moi :)

par Hermès » 07 mars 2006, 15:47

tu utilises une variable de sauvegarde :
while ($a_resultat = mysql_fetch_array($resultat )) {
  if (isset($temp)) {
    echo "<option value=\"".$temp['blabla1'].$temp['blabla2']."\">".$temp['blabla1'].$temp['blabla2']."</option>";
  }
  $temp = $a_resultat;
}
Autrement dit, au premier passage dans la boucle, rien n'est affiché mais $temp prend la valeur de $a_resultat.
Ensuite, à chaque cycle, on affiche $temp du cycle d'avant et $temp prend la valeur du cycle en court.

A la fin de la boucle, $temp vaut la valeur du dernier cycle valide mais n'est pas affiché.

Edit : au vu des deux réponses au-dessus, j'ai l'impression de pas avoir du tout répondu à la question moi =)

par Ryle » 07 mars 2006, 15:46

bah suffit de pas l'afficher dans le echo.... nan ? :)
<select name="blabla"> 
<?
// Connexion à la base de donnée 
$connexion = mysql_connect('***','***',''); 
// requete 
$requete = "SELECT * FROM table "; 
// execution de la requete 
$resultat = mysql_db_query('****', $requete, $connexion); 
// Fermeture de la connexion 
mysql_close($connexion); 

while ($a_resultat = mysql_fetch_array($resultat )) { 
    echo "<option value=\"".$a_resultat['blabla1'].$a_resultat['blabla2']."\">".$a_resultat['blabla1']."</option>"; 
}  
?>
</select>

Re: eviter la selection du dernier champ d'une table

par mario » 07 mars 2006, 15:46

$requete = "SELECT * FROM table ";
N'utilise pas * (c'est une habitude à ne pas prendre)
utilise plutot
$requete = "SELECT blabla1, blabla2, blabla3 FROM table";

eviter la selection du dernier champ d'une table

par Micka » 07 mars 2006, 15:40

voila j'ai une table qui contient 4 champs.
je les affiches par l'intermédiaire d'un select, mais je ne souhaite pas voir afficher le dernier enregistrement.

voici mon code


<select name="blabla">
// Connexion à la base de donnée
$connexion = mysql_connect('***','***','');

// requete
$requete = "SELECT * FROM table ";

// execution de la requete
$resultat = mysql_db_query('****', $requete, $connexion);

// Fermeture de la connexion
mysql_close($connexion);

while ($a_resultat = mysql_fetch_array($resultat )) { 
    echo "<option value=\"".$a_resultat['blabla1'].$a_resultat['blabla2']."\">".$a_resultat['blabla1'].$a_resultat['blabla2']."</option>"; 
}
</select>[/php]


merci de votre aide