Récuperer nom d'un 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 : Récuperer nom d'un champ d'une table

par sylvaing26 » 02 nov. 2008, 00:24

merci beaucoup, c'est vrai que cette synthaxe est mieux !
Je n'ai pas encore les bons reflexe ...

par Ryle » 01 nov. 2008, 17:41

hmm... curieuse question... en général, le nom du champ de la table on le connait, c'est le contenu qui nous interesse... à voir donc s'il n'y a pas un problème de conception.

A part cela, tu peux très bien dans te requête ajouter des clauses OR pour spécifier différentes conditions :

Code : Tout sélectionner

WHERE reference = '$reference' OR ref2 = '$reference' OR ref3 = '$reference' ...
L'intérêt, c'est que tu n'exécutera qu'une seule requête, qui te renverra les enregistrements correspondant à l'une ou l'autre de ces conditions. Il te suffit ensuite de regarder avec de simple if/else à laquelle elle correspond :
$prix = 0;
if ($result['reference']==$reference)
  $prix = $result['prix']; 
elseif ($result['ref2']==$reference)
  $prix = $result['prix2']; 
...
A noter, quand en SQL tu fais une comparaison exacte, utilise le "=" plutôt que LIKE. Ta requête sera plus performante (cf. les bonnes pratiques). De même au lieu de faire un "SELECT *" tu peux lister les champs que tu souhaites récupérer. Ca rend le code plus optimisé et plus facile à maintenir :)

Récuperer nom d'un champ d'une table

par sylvaing26 » 01 nov. 2008, 15:46

Bonjour,
je créé actuellement un site de vente et je me trouve confronté à un soucis
je voudrais effectuer une recherche dans une table qui est structurée comme ceci
id, ref, prix, ref2, prix2
Je souhaiterai faire une recherche dans ma table qui me donne le nom du champ en fonction de la reference, savoir si c'est ref ou ref2
parce que pour le moment j'ai fait ca mais j'ai testé ca marche mais ca a eté c'est dur dur !
<?php
$reference = $_GET['ref'];
include("connect.php");
MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");
$sql = mysql_query("SELECT * FROM coupes_trophees WHERE reference LIKE '$reference'");
$nbr=mysql_num_rows($sql);
if($nbr > 0){
while($result=mysql_fetch_array($sql)){
$prix = $result['prix'];
}
}
  else{
  $sql2 = mysql_query("SELECT * FROM coupes_trophees WHERE ref2 LIKE '$reference'");
  $nbr2=mysql_num_rows($sql2);
  if($nbr2 > 0){
  while($result=mysql_fetch_array($sql2)){
  $prix = $result['prix2'];
  }
  }
    else{
    $sql3 = mysql_query("SELECT * FROM coupes_trophees WHERE ref3 LIKE '$reference'");
    $nbr3=mysql_num_rows($sql3);
    if($nbr3 > 0){
    while($result=mysql_fetch_array($sql3)){
     $prix = $result['prix3'];
    }
    }
      else{
      $sql4 = mysql_query("SELECT * FROM coupes_trophees WHERE ref4 LIKE '$reference'");
      $nbr4=mysql_num_rows($sql4);
      if($nbr4 > 0){
      while($result=mysql_fetch_array($sql4)){
      $prix = $result['prix4'];
      }
      }
      } 
    }
}
echo "prix : ";
echo $prix;
echo " Euros";
?>
je sais pas si j'ai reussi a me faire comprendre
Je vous remercie beaucoup d'avance