2 votes

obtenir une boîte de sélection pour définir une valeur par défaut en utilisant la dernière valeur dans une base de données mysql

Besoin d'aide sur cette requête PHP et MySQL. La boîte de sélection se remplit correctement, mais pour sélectionner la valeur par défaut actuelle, je n'arrive pas à faire fonctionner l'instruction if. J'ai essayé de trouver une réponse à cette question partout, mais je n'y arrive pas.

Ce que j'essaie de faire, c'est de sélectionner la dernière ligne de la table TOP et de voir si le champ BRAND est égal au champ SN de la table BRANDS.

J'espère que quelqu'un pourra m'éclairer sur mes erreurs, car je suis en train de me casser la tête.

<select name="top">
<?php
$query = $db->query("SELECT * FROM BRANDS");
$querytop = $db->query("SELECT MAX(NUM) FROM TOP");
$rtop = $querytop->fetch_object();
while($row = $query->fetch_object()){
if ($row->SN == $rtop->BRAND){
echo "<option value='".$row->SN."' selected=\"selected\">".$row->BRAND."</option>";
}else{
echo "<option value='".$row->SN."'>".$row->BRAND."</option>";
}
}
?>
</select>

EDIT1 :

Voici le code HTML que j'obtiens ; l'élément $rtop->BRAND ne renvoie pas de valeur. Par conséquent, l'instruction if est toujours fausse, même si, logiquement parlant, elle devrait renvoyer vrai.

<select name="top">
    <option value='21'>asd</option>
    <option value='22'>Test1</option>   
</select>

0voto

BalaMurugan.N Points 47
Please Try This type..:)
if ($row->SN == $rtop->BRAND){
echo "<option value='{$row->SN}' selected=\"selected\">"{$row->BRAND}"</option>";
}else{
echo "<option value='{$row->SN}'>"{$row->BRAND}"</option>";
}

0voto

Oliver Points 873

Je pense que ça devrait vous aider :

$querytop = $db->query("SELECT MAX(NUM) FROM TOP");

changer pour :

$querytop = $db->query("SELECT MAX(NUM) AS BRAND FROM TOP");

0voto

Le problème que j'ai rencontré est que je ne sélectionnais que le champ NUM alors que j'essaie en fait de trouver la valeur BRAND à partir du champ NUM. la correction

$querytop = $db->query("SELECT BRAND FROM toppage WHERE NUM=(SELECT max(NUM) FROM toppage)");

le code dans son intégralité

<?php
    $query = $db->query("SELECT * FROM BRANDS");
    $querytop = $db->query("SELECT BRAND FROM toppage WHERE NUM=(SELECT max(NUM) FROM toppage)");
    $rtop = $querytop->fetch_object();
    while($row = $query->fetch_object()){
        if ($row->SN == $rtop->BRAND){
          echo "<option value='$row->SN' selected=\"selected\">".$row->BRAND."</option>";
        }else{
          echo "<option value='$row->SN'>".$row->BRAND."</option>";
        }
    }
?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X