Avatar billede nederbasse Nybegynder
25. november 2008 - 10:45 Der er 12 kommentarer

SELECT og MySql

g har 3 select (dropdown) boxe på en side jeg gerne vil have fylde med data fra en MySsql db
1 tabel : fag
2 tabel  : info med fag1, fag2 og fag3

Siden bruges til at ændre oplysninger i tabellen info så når brugeren har vælget hvilket info_id der skal rettes står de 3 fag bokse med de fag der allerede er valgt i fag1, fag2 og fag3 fra tabellen info og  fagene fra tabellen fag så det er muligt at ændre et fag

Fag:, <select size="1" name="fag1">
  <option value="<?php echo $row['fag1'] ?>"><?php echo $row['fag1'] ?></option> // fag der ER valgt //
  <option value="<?php echo $fagrow1['fag'] ?>"><?php echo $fagrow1['fag'] ?></option> // fag der KAN vælges //

Jeg kan ikke finde ud af hvilken rækkefølge mine forespørgsler skal komme i, enten får jeg boksene fyldt flere gamge eller de bliver ikke fyldt eller et andet mærkligt resultat

Hvad gør jeg
Avatar billede jakobdo Ekspert
25. november 2008 - 19:34 #1
Du skal vel bygge dine selects ala:

$query = mysql_query("SELECT id,noget FROM tabel");
if(mysql_num_rows($query)>0){
echo '<select name="navn" size="1">';
while($row = mysql_fetch_assoc($query)){
echo '<option value="'.$row['id'].'">'.$row['noget'].'</option>';
}
echo '</select>';
}
Avatar billede nederbasse Nybegynder
26. november 2008 - 11:07 #2
Jeg har prøvet med forskelligt som fx:

Fag: <select size="1" name="fag1">
<?php
$fag1_result = mysql_query("SELECT fag1 FROM studretproj WHERE studretproj_id ='$studretproj_id'");
if(!$fag1_result) die("MySQL-fejl: ".mysql_error() );
while ($row = mysql_fetch_array($fag1_result)) {
echo '<option value="echo $row['fag1'] ?>">$row['fag1']</option>';
}
$fag_result = mysql_query("SELECT * FROM fag ORDER BY fag") or die(mysql_error());
while ($fagrow = mysql_fetch_array($fag_result)) {
echo '<option value="$fagrow['fag']">echo $fagrow['fag'] </option>';
}
?>
</select>

studretproj_id  bliver hentet med en session fra siden hvor man vælger hvad der skal rettes
Avatar billede nederbasse Nybegynder
26. november 2008 - 11:08 #3
skal lige nævnes at forbindelsen til databasen bliver lavet først på siden
Avatar billede jakobdo Ekspert
26. november 2008 - 15:16 #4
Hvorfor har du flere SQL'er inde i din <select...> ???
Avatar billede nederbasse Nybegynder
27. november 2008 - 09:34 #5
Fordi der skal hentes dat i 2 forskellige tabeller
Tabellen studretproj indeholde de data der allerede i ndtastet og der er 3 fag der skal vælges: fag1, fag2 og fag3

Tabellen fag indeholder alle fag og da denne select skal bruges flere steder på sitet vil jeg kun skulle opdaterer et sted og så er alle select opdateret

De 3 select kunne se sådan med de fag der er valgt øverst

FAG 1:
Dansk                
Arabisk
Billedkunst
Biologi
Dans
Dansk
Datalogi
Dramatik
Engelsk
Erhvervsret
Erhvervsøkonomi


FAG 2:
Erhvervsret
Arabisk
Billedkunst
Biologi
Dans
Dansk
Datalogi
Dramatik
Engelsk
Erhvervsret
Erhvervsøkonomi


FAG 3:
Engelsk
Arabisk
Billedkunst
Biologi
Dans
Dansk
Datalogi
Dramatik
Engelsk
Erhvervsret
Erhvervsøkonomi
Avatar billede jakobdo Ekspert
27. november 2008 - 09:37 #6
Prøv at vis hvordan du gerne vil have facit til at se ud, altså i ren html evt. ?
Avatar billede nederbasse Nybegynder
27. november 2008 - 13:52 #7
Avatar billede jakobdo Ekspert
27. november 2008 - 14:49 #8
Hvis du trækker data ud af 2 tabeller, men smider der ind i en select / options, så vil du jo få et problem, når du skal update, for hvilken tabel er option taget fra ?
Derfor bør du enten smide det hele i en tabel.
Eller dele den op i 2 select / options.
Avatar billede nederbasse Nybegynder
28. november 2008 - 08:08 #9
Der er ingen problem med at få de redigerede data tilbage i den rettte tabel, siden er jo ren html når den vises i browseren og er der ikke rettet i et fag skal det selvfølgelig være den værdi der er der i forvejen der updates i tabellen.
Jeg skal 'bare' finde ud af rækkefølgen af mine sql forespørgsler og visningen af data
Avatar billede jakobdo Ekspert
28. november 2008 - 08:16 #10
Men du siger du har 2 tabeller ?

studretproj

og

fag

Hvad indeholder de 2 da ?
Avatar billede nederbasse Nybegynder
28. november 2008 - 11:20 #11
studretproj indeholder de data som brugerne taster ind
felterne fag1, fag2 og fag3 er brugerdata og skal vises som første option i selecten

Tabellen fag indeholder alle de fag der kan vælges, grunden til jeg fylder min(e) select boxe med data fra fag tabeller er at der skal bruges select boxe på flere sider og for at gøre det nemt er det kun én tabel der skal opdateres og ikke 10-12 select boxe
Avatar billede jakobdo Ekspert
28. november 2008 - 11:26 #12
Prøv så lige at lave:

$query = mysql_query("SELECT fag FROM fag ORDER BY fag");
if(mysql_num_rows($query)>0){
    echo '<select name="fag1" size="1">';
    while($row = mysql_fetch_assoc($query)){
        echo '<option value="'.$row['fag'].'">'.$row['fag'].'</option>';
    }
    echo '</select>';
}

$query = mysql_query("SELECT fag FROM fag ORDER BY fag");
if(mysql_num_rows($query)>0){
    echo '<select name="fag2" size="1">';
    while($row = mysql_fetch_assoc($query)){
        echo '<option value="'.$row['fag'].'">'.$row['fag'].'</option>';
    }
    echo '</select>';
}

$query = mysql_query("SELECT fag FROM fag ORDER BY fag");
if(mysql_num_rows($query)>0){
    echo '<select name="fag3" size="1">';
    while($row = mysql_fetch_assoc($query)){
        echo '<option value="'.$row['fag'].'">'.$row['fag'].'</option>';
    }
    echo '</select>';
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester