J'ai une requête SQL qui varie en fonction de la présence de un ou de plusieurs mots prédéfinit dans une phrase, avec un maximum de 8 mots. Peu importe l'ordre des mots dans ma phrase.
(Les mots en question étant MNK, PLD, WAR, BRD, DRG, BLM, WHM et SMN).
Pour le moment, j'ai essayé de les gérer comme ceci (j'ai inversé l'ordre dans lequel je l'ai écris dans mon fichier pour faciliter la lecture):
// Combinaisons à 1 possibilité
else if ( preg_match('/MNK/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1';}
else if ( preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE DRG = 1';}
else if ( preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE BLM = 1';}
else if ( preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE WHM = 1';}
else if ( preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE SMN = 1';}
// Combinaisons à 2 possibilités
else if ( preg_match('/WHM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE WHM = 1 OR SMN = 1';}
else if ( preg_match('/BLM/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE BLM = 1 OR WHM = 1';}
else if ( preg_match('/BLM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE BLM = 1 OR SMN = 1';}
else if ( preg_match('/DRG/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE DRG = 1 OR BLM = 1';}
else if ( preg_match('/DRG/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE DRG = 1 OR WHM = 1';}
else if ( preg_match('/DRG/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE DRG = 1 OR SMN = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR DRG = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR BLM = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR WHM = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR SMN = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR BRD = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR DRG = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR BLM = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR WHM = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR SMN = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR WAR = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR BRD = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR DRG = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR BLM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR WHM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR SMN = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/PLD/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR PLD = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR WAR = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR BRD = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR DRG = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR BLM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR WHM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR SMN = 1';}
// Combinaisons à 3 possibilités
else if ( preg_match('/BLM/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE BLM = 1 OR WHM = 1 OR SMN = 1';}
else if ( preg_match('/DRG/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE DRG = 1 OR BLM = 1 OR WHM = 1';}
else if ( preg_match('/DRG/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE DRG = 1 OR WHM = 1 OR SMN = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR WHM = 1 OR SMN = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR BLM = 1 OR WHM = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR BLM = 1 OR SMN = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR DRG = 1 OR BLM = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR DRG = 1 OR WHM = 1';}
else if ( preg_match('/BRD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE BRD = 1 OR DRG = 1 OR SMN = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR WHM = 1 OR SMN = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR BLM = 1 OR WHM = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR BLM = 1 OR SMN = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR DRG = 1 OR BLM = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR DRG = 1 OR WHM = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR DRG = 1 OR SMN = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR BRD = 1 OR DRG = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR BRD = 1 OR BLM = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR BRD = 1 OR WHM = 1';}
else if ( preg_match('/WAR/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE WAR = 1 OR BRD = 1 OR SMN = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR WHM = 1 OR SMN = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR BLM = 1 OR WHM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR BLM = 1 OR SMN = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR DRG = 1 OR BLM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR DRG = 1 OR WHM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR DRG = 1 OR SMN = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR BRD = 1 OR DRG = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR BRD = 1 OR BLM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR BRD = 1 OR WHM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR BRD = 1 OR SMN = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR WAR = 1 OR BRD = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR WAR = 1 OR DRG = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR WAR = 1 OR BLM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR WAR = 1 OR WHM = 1';}
else if ( preg_match('/PLD/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE PLD = 1 OR WAR = 1 OR SMN = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR WHM = 1 OR SMN = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR BLM = 1 OR WHM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR BLM = 1 OR SMN = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR DRG = 1 OR BLM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR DRG = 1 OR WHM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR DRG = 1 OR SMN = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR BRD = 1 OR DRG = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR BRD = 1 OR BLM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR BRD = 1 OR WHM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR BRD = 1 OR SMN = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR WAR = 1 OR BRD = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR WAR = 1 OR DRG = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR WAR = 1 OR BLM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR WAR = 1 OR WHM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR WAR = 1 OR SMN = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/PLD/', $row2['sdesc']) && preg_match('/WAR/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR PLD = 1 OR WAR = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/PLD/', $row2['sdesc']) && preg_match('/BRD/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR PLD = 1 OR BRD = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/PLD/', $row2['sdesc']) && preg_match('/DRG/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR PLD = 1 OR DRG = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/PLD/', $row2['sdesc']) && preg_match('/BLM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR PLD = 1 OR BLM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/PLD/', $row2['sdesc']) && preg_match('/WHM/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR PLD = 1 OR WHM = 1';}
else if ( preg_match('/MNK/', $row2['sdesc']) && preg_match('/PLD/', $row2['sdesc']) && preg_match('/SMN/', $row2['sdesc']) ){$requete = 'WHERE MNK = 1 OR PLD = 1 OR SMN = 1';}
Le problème c'est que ça devient très compliqué et je suis sur que j'ai oublié des possibilités (sachant que je n'en suis qu'a 3 mots possibles... je n'ose pas imaginer la suite, ou l'ajout futur d'un mot Merci à tous les intervenants