Avatar billede sabumnim Novice
02. september 2009 - 10:50 Der er 4 kommentarer og
1 løsning

Hente fra flere tabeller

Hej alle

Jeg har et spørgsmål, som er ret presserende, som jeg håber I kan hjælpe mig med.

Jeg sidder og omstrukturerer et ordresystem som skal køre på en localhost på en EasyPHP installation.

Mit problem er følgende:
Ved insert into skal jeg have mulighed for at vælge fra nogle andre tabeller som ligeledes ligger i samme database, men jeg ved ikke hvordan jeg skal oprette denne "krydsreference" så jeg i nogle selectbokse får mulighed for at hente navnene ind på alle som allerede er oprettet.

Min kode som den ser ud pt. er herunder, og den er testet og virker:

------------PHP

<?php
        require_once ('strings.php');
        if(isset($_POST['Submit'])){
            $ordredato = htmlentities ($_POST['ordredato']);
            $deadline = htmlentities ($_POST['deadline']);
            $type_opgave= htmlentities ($_POST['type_opgave']);
            $skaffer = htmlentities ($_POST['skaffer']);
            $ordrebeskrivelse = htmlentities ($_POST['ordrebeskrivelse']);
            $antal_format = htmlentities ($_POST['antal_format']);
            $antal_sider = htmlentities ($_POST['antal_sider']);
            $antal_farver = htmlentities ($_POST['antal_farver']);
            $kunderef = htmlentities ($_POST['kunderef']);
            $oprettet_for = htmlentities ($_POST['oprettet_for']);
            $godkendt = htmlentities ($_POST['godkendt']);
    if(!get_magic_quotes_gpc()){
            $ordredato = addslashes($ordredato);
            $deadline = addslashes($deadline);
            $type_opgave = addslashes($type_opgave);
            $skaffer = addslashes($skaffer);
            $ordrebeskrivelse = addslashes($ordrebeskrivelse);
            $antal_format = addslashes($antal_format);
            $antal_sider = addslashes($antal_sider);
            $antal_farver = addslashes($antal_farver);
            $kunderef = addslashes($kunderef);
            $oprettet_for = addslashes ($oprettet_for);
            $godkendt = addslashes($godkendt);
    }
    $query="INSERT INTO orders (`ordredato`, deadline, type_opgave, skaffer, ordrebeskrivelse, antal_format, antal_sider, antal_farver, kunderef, oprettet_for, godkendt) VALUES (NOW(),'$deadline', '$type_opgave', '$skaffer','$ordrebeskrivelse', '$antal_format', '$antal_sider', '$antal_farver', '$kunderef', '$oprettet_for', '$godkendt')";
                mysql_query($query);
                echo "Nyheden er tilføjet";
                }   
               
   
        ?>
       
   
    <form name="form1" id="form1" method="post" action="">
      <input type="hidden" name="Submit" value="1">       
      <input type="hidden" name="ordredato" />
       
      <p>Deadline dato: (dd.mm.yyyy)<br />
          <input type="text" name="deadline" class="felt" />
        </p>
        <p>Opgavetype:<br />
            <select name="type_opgave">
                                    <option value=0><font color="#00ee00">Vælg type</font></option>
                                    <option value="tryk">Tryk</option>
                                    <option value="web">Web</option>
                                </select>
        </p>
        <p>Skaffer af opgaven:<br />
            <select name="skaffer">
                                    <option value=0><font color="#00ee00">Vælg skaffer</font></option>
                                    <option value="elev">elev</option>
                                    <option value="SKP">SKP</option>
                                </select>
        </p> 
          <p>Beskrivelse af opgaven:<br />
        <textarea name="ordrebeskrivelse" class="felt" rows="8" cols="30"></textarea>       
        </p>
        <p>Format:<br />
          <input type="text" name="antal_format" class="felt" />
        </p>
        <p>Sider:<br />
          <input type="text" name="antal_sider" class="felt" />
        </p>
        <p>Farver: <br />
          <input type="text" name="antal_farver" class="felt" />
        </p>
        <p>Find kunden:<br /> // her skal hentes navne på alle kunder i en select som ligger i samme DB ved navn "kunde"
          <select name="kunderef">
                                    <option value=0><font color="#00ee00">V&aelig;lg kunde</font></option>
                                    <option value="kunde1">Kunde 1</option>
                                    <option value="kunde2">Kunde 2</option>
                                </select>
        </p>
        <p>Oprettet for:<br />
            <select name="oprettet_for"> // Her skal kunne hentes et navn ind ved hjælp af en selectbox fra en anden tabel ved navn "bruger"
                                    <option value=0><font color="#00ee00">Find elev</font></option>
                                    <option value="elev1">Elev 1</option>
                                    <option value="elev2">Elev 2</option>
                                </select>
        </p>
        <p>Godkendt af:<br />
            <select name="godkendt"> // Her skal indhentes navnene på de instruktører som er oprettet i en anden tabel kaldet "instruktor"
                                    <option value=0><font color="#00ee00">V&aelig;lg instrukt&oslash;r</font></option>
                                    <option value="inst1">Instrukt&oslash;r 1</option>
                                    <option value="inst2">Instrukt&oslash;r 2</option>
                                </select>
        </p>
       
        <p>
          <input type="submit" name="opdater" value="Afsend" class="knap" />
        </p>
       
      </form>

------------PHP SLUT

Håber på noget hurtig hjælp, da det er en opgave som jeg er stillet helt uden noget, men som naturligvis skal være færdig hurtigt.

//Carsten
Avatar billede sw_red_6 Nybegynder
02. september 2009 - 14:38 #1
Er det ikke 'bare' at hente informationerne i 3 queries og skrive dem i de pågældende <select>'s..?
Avatar billede sabumnim Novice
02. september 2009 - 14:44 #2
Hej SW

Det er det måske, men jeg ved ikke om det kan gøres og i så fald har jeg behov for at se et eller andet eksempel på hvordan dette kan lade sig gøre, for jeg kan ikke selv se hvordan sådan en "kryds" query kan foretages.

//Carsten
Avatar billede sw_red_6 Nybegynder
02. september 2009 - 14:57 #3
prøv det her:
<select name="kunderef">
<?php
$sql = "SELECT KundeID, KundeNavn FROM kunde ORDER BY KundeID ASC;";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)) {
echo "<option value=\"".$row['KundeID']."\">".$row['KundeNavn']."</option>";
}
?>
</select>

Eller misforstår jeg det spørgsmål?

Desuden kan det være en fordel at bruge mysqli (http://dk2.php.net/manual/en/book.mysqli.php)
Avatar billede sabumnim Novice
02. september 2009 - 15:41 #4
Hej sw

Det ser sgu ud til at det virker, det er bare super:0)

Du har sgu fortjent pointene, så smid et svar og lad mig tildele dig nogle point.

Tak for input hertil, det hjælper gevaldigt på det hele.

//Carsten
Avatar billede sw_red_6 Nybegynder
02. september 2009 - 16:27 #5
ok..

Som sagt er det en fordel at skifte til mysqli for at undgå div. problemer mht. sikkerhed ifm. INSERT og UPDATE queries
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