$query = "SELECT * FROM parts ORDER BY nr"; $result3 = mysqli_query($con, $query); <?php while($row2 = mysqli_fetch_array($result3)):;?> <option value="<?php echo utf8_encode($row2[4]);?>"><?php echo utf8_encode($row2[4])." ".utf8_encode($row2[5]);?></option> <?php endwhile;?>
eo koodi toimii, mutta olisi tarve muuttaa sitä niin, että saman nimien 'part' olisi valintalistalla vain kerran. Siis jotenkin näin? Mutta miten? Koodia ei tarvi kommentoida, tekijä levätköön rauhassa.
$query = "SELECT DISTINCT part FROM parts ORDER BY nr"; <?php while ... <?php endwhile;?>
Jos ei ole merkitystä, mikä niistä samannimisistä näytetään, helpoin ratkaisu on GROUP BY.
SELECT * FROM parts GROUP BY nimi ORDER BY nr
Kannattaisi muuten laittaa se UTF-8 kuntoon esimerkiksi PHP-oppaassa neuvotulla tavalla. Kaikenlainen merkistöjen muuntelu käsin (kuten tuossa utf8_encode) viittaa siihen, että jokin on pielessä.
Kiitos nopeasta vastauksesta.
'GROUP BY part' lisääminen antaa virheen:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in...
kohdistettuna riviin '<?php while(...'
UTF-8 sekoilu johtunee siitä, että koodi on alunperin vain englanninkielelle tarkoitettu ja sitten väkerretty toimimaan joten kuten Suomessa.
Ilmeisesti kyselyssäsi on nyt jokin virhe. Olisi tosi fiksua tarkastaa ne MySQL-virheet aina kyselyn (query-rivin) jälkeen.
Kiitos kyllä. Virhe oli. Taulun sarake oli nimetty eri tavalla kuin muualla.
Case closed.
Aihe on jo aika vanha, joten et voi enää vastata siihen.