2011-09-20 6 views
0

Je table comme ceGroupe avec PHP MySQL pas dans la requête

id | type 
--- ----- 
1 | fh 
--- ----- 
2 | fhs 
--- ----- 
3 | so  
--- ----- 
4 | sos 


while($row = mysql_fetch_array($res)){ 
    if($row['type'] == "fh" OR $row['type'] == "fhs"){ 
     $name = "Flush Head Studs"; 
    }else if($row['type'] == "so" OR $row['type'] == "sos"){ 
     $name = "Through Standoffs"; 
    } 
    $category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' . $name . '</option>'; 
} 

code ci-dessus est des noms displayng deux fois. Comment puis-je faire que les noms ne sont qu'une seule fois dans la liste.

+0

@JamWaffles c'est une sorte de réponse, une raison étrange pour downvote quelqu'un de fournir une réponse ... – feeela

+0

@JamWaffles: c'est un site QA, pour poser des questions. Je ne peux pas voir comment la downvote est justifiée? Le PO est à la recherche d'aide, et non pour une diatribe boiteuse – knittl

+0

+1: J'ai mis cette question à la hausse simplement à cause du comportement inapproprié de JamWaffles. –

Répondre

1

votre résultat est correct! si vous changez votre code comme celui-ci, vous pouvez voir pourquoi ...

while($row = mysql_fetch_array($res)){ 
    if($row['type'] == "fh" OR $row['type'] == "fhs"){ 
     $name = "Flush Head Studs ".$row['type']; 
    }else if($row['type'] == "so" OR $row['type'] == "sos"){ 
     $name = "Through Standoffs ".$row['type']; 
    } 
    $category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' . $name . '</option>'; 
} 

si vous voulez sélectionner tous les types, je vous suggère d'ajouter une description ou d'une colonne de nom à votre table ... parce que vous Youse tous vos types en tant que valeur dans le champ select.

+0

Oui je le sais, mais ce n'est pas ce dont j'ai besoin: D – Omerimuni

+0

pouvez-vous expliquer pourquoi vous en avez besoin? aiderait à trouver une solution :-) – Daniel

+0

j'ai tous les éléments en db. Les clients ont des problèmes pour trouver l'article de la grande DB. Pour cela je fais un petit générateur. Dans la première boîte de sélection, vous pouvez choisir des goujons à tête affleurante ou des entretoises traversantes. Après que ce script génère la deuxième boîte de sélection où vous pouvez choisir le matériel. L'exemple FH est des goujons à tête affleurante en acier zingué et FHS sont des goujons à tête affleurante en acier inoxydable. Je le fais parce que je pense que c'est plus facile pour les clients. Sry pour mon mauvais eng et j'espère que vous comprenez quoi et pourquoi j'ai besoin de ceci comme ça =) – Omerimuni

0

Dans le code que vous montrez, vous avez 4 diférentes value atributs (provenant de $ row [ 'type']) pour 2 diferent (et dupliqué) option contenu visible pour l'utilisateur (en provenance de nom $)

donc, vous devez choisir pour l'une de ces façons:
1- abandonner deux des value atributs (la façon la plus simple est de retirer un côté du ORs et le OR lui-même) (ce qui est peut-être ce que vous avez demandé)
2 - Faire une différence visible sur option en utilisant aussi $ row ['type'] (mais cela donne 4 options et non 2)

$category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' .$row['type'].' - '. $name . '</option>'; 

3- donnez-nous plus de contexte pour comprendre le problème.