Bonjour,
J'ai un soucis pour récupérer mes données d'une table qui est constituée d'une double clé. En gros, nous pourrions prendre comme exemple que nous avons un type d'ampoule qui aurait une puissance. Ainsi, une ampoule serait définie par son type ainsi que sa puissance. Ces deux champs formeraient donc la clé primaire qui suffirait à définir nos besoins, à savoir une ampoule.
J'ai une méthode qui est la suivante:
public function selectLines($champs, $table, $condition){
$requeteSQL = 'SELECT ' . $champs . ' FROM ' . $table . ' ' . $condition;
// Affichage de la requête pour les tests
//echo '<br />' . $requeteSQL . '<br />';
$resultatRequete = array();
$ressource = mysql_query($requeteSQL);
$i=0;
while ($row = mysql_fetch_array($ressource)){
$resultatRequete[$i] = $row[0];
$i++;
}
return $resultatRequete;
}
|
Et une autre pour ne faire la recherche que sur un seul champ qui est:
public function selectTypeSourceSimple($typeSourceLum){
$typeSource = new TypeSource();
// Données pour le type de source
$resultats = $this->selectRow('*','type_source','WHERE type_source_lum LIKE "%' . $typeSourceLum . '%"');
$typeSource->setTypeSource($resultats[0]);
$typeSource->setPuissance($resultats[1]);
$typeSource->setDureeVie($resultats[2]);
return $typeSource;
}
|
Et lors de l'appel, je fais:
$resultats = $db->selectLines('*','type_source','WHERE type_source.type_source_lum LIKE "%' . $valeur . '%"');
for ($i=0; $i<sizeof($resultats);$i++){
$typeSource = $db->selectTypeSourceSimple($resultats[$i]);
$typeSource->afficher();
}
|
J'ai testé avec l'affichage de la requete et ai rentré celui-ci dans phpMyAdmin. Ce dernier me retourne bien le résultat escompté. Par contre, lors de l'affichage dans ma page, il me trouve bien X-entrées (le nombre juste) mais il me retourne toujours la même valeur pour la deuxième clé.
Ainsi, si nous avons un type d'ampoule Sodium avec des puissances de 10, 20, 30, 40 et 50 [W] (pour l'exemple), il me retournera bien 5 valeurs mais ce sera 5 ampoules de sodium à 10 [W].
Quelqu'un aurait-il une idée???
Merci à ceux qui voudront bien aider un débutant comme moi...
P.S. Je pense qu'il y a bien plus facile à faire, autant pour la base de données que pour le code. En ce qui concerne la BDD, j'aimerais bien garder la structure de la clé-double par contre, au niveau du code, je suis ouvert à toute proposition.
P.S.2: Inutile de faire des commentaires qui n'apportent rien à mon problème... Je suis débutant et vous êtes certainement passés par là
Message édité par moaaaaa le 30-01-2009 à 08:29:52