Einzelnen Beitrag anzeigen
Alt 18.12.2005, 11:48  
Gast
 
Beiträge: n/a
Standard Abfrage mehrerer Tabellen per PHP (Code vereinfachen)

Morgen Leutz...

Ich hoffe dass ich das ganze jetzt in das richtige Forum reingesetzt habe, weil es sowohl MySQL aber auch PHP beinhaltet, ich aber nicht genau weiss ob ich bei PHP oder MySQL was ändern muss um das Problem zu lösen...

Ich habe ein Eingabe-Formular gemacht, in dem 3 Felder aus anderen Tabellen ausgelesen werden sollen, die dann zusammen in einer andere Tabelle geschrieben werden sollen (ID), welche sich die Infos dann später wieder aus den anderen Tabellen holen (zum besseren Verständnis habe ich mal das ER-Diagramm der DB raufgeladen

ER-Diagram: http://www.dieternuhrfanclub.de/proj...bank-Plan5.gif

Das Problem ist folgendes:

Das ist ein Eingabeformular für Kurse. Um Fehler zu vermeiden und damit Daten nicht ständig neu eingegeben werden müssen kann der User verschieden Teile vorher aus einem DropDown-Menü auswählen, welche aus den jeweiligen Tabellen ausgelesen werden und von denen später die ID in die Tabelle KURSE geschrieben wird. Das wären hier Kurs-Kategorie (kurs_kat), Kursbeschreibung (kursbeschreibung) und der Dozent (dozenten).

Das Problem ist jetzt, das ich für jedes DropDown-Menu eine eigene Abfrage gestartet. Habe das auch mit einer zentralen Abfrage versucht, aber da bekam ich immer doppelte Ergebnisse die ich auch mit DISTINCT nicht weg bekam.

Das Ganze funzt jetzt so wie ich es habe. Jetzt wollte ich gerne wissen ob jemand eine "elegantere" Lösung kennt, damit das ganze etwas übersichtlicher und kleiner wird.

Ich habe euch unten einmal den Code eingefügt, ihr könnt euch das ganze aber auch einmal unter

http://www.dieternuhrfanclub.de/proj...abe_kurs_b.php

anschauen.

Wäre für jede Hilfe dankbar...

Lapje


PHP-Code:
<body>



<?php


    
//$kurs_beschreibung_id=1;
    //$kurs_dozent_id=1;

    
if (isset($gesendet))
    {
    
        
mysql_connect();
        
mysql_select_db("schulungen");
        
        
//if ($kurs_name == "")
        //    echo "Es ist ein Fehler aufgetreten

";
        
        //else
        //{
        $mysql_eingabe = "
INSERT kurse";
        $mysql_eingabe .= "
(kurs_namekurs_kat_idkurs_anfangkurs_endekurs_anmeldeschlusskurs_zeitenkurs_gebuehrkurs_bemerkungkurs_beschreibung_idkurs_dozent_id)";
        $mysql_eingabe .= "
VALUES ('$kurs_name''$kurs_kat_id_send''$kurs_anfang''$kurs_ende''$kurs_anmeldeschluss''$kurs_zeiten''$kurs_gebuehr''$kurs_bemerkung''$kurs_beschreibung_id_send''$kurs_dozent_id_send')";
        
        mysql_query($mysql_eingabe);
        
        $num = mysql_affected_rows();
        
        
            
        
        if ($num>0)
            {
            
            echo "
1 Datensatz wurde hinzugefügt

";
            }
        else
            echo "
Ein Fehler ist aufgetreten.

";
        }
        //}
?>
        
        
    
        
    
    


Bitte geben Sie einen vollständigen Datensatz ein: </p>


</p>
<form action="
eingabe_kurs.php" method="post">
    
Kursname: <input name="
kurs_name" size="50"> 



    <?php
    
        mysql_connect();
        mysql_select_db("
schulungen");
        
        $mysql_abfrage  = "
SELECT DISTINCT kurs_katkurs_kat_id FROM kurs_kat ORDER BY kurs_kat"; 
        
        $mysql_ergebnis=mysql_query($mysql_abfrage);
        
        $num = mysql_num_rows($mysql_ergebnis);
                
        mysql_close();
        
    ?>

Kurs-Kategorie:     <select name="
kurs_kat_id_send">

    <?php
            while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
            {
                        echo "
<option value='" . $datensatz["kurs_kat_id"] . "'>" . $datensatz["kurs_kat"] . "</option>";                
            }
    ?>

</select>




Kurs-Anfang: <input name="
kurs_anfang" size="50"> 


Kurs-Ende: <input name="
kurs_ende" size="50"> 


Kurs-Anmeldeschluss: <input name="
kurs_anmeldeschluss" size="50"> 


Kurs-Zeiten: <input name="
kurs_zeiten" size="50"> 


Kurs-Gebühr: <input name="
kurs_gebuehr" size="50"> 


Kurs-Bemerkung: <input name="
kurs_bemerkung" size="50"> 



    <?php
    
        mysql_connect();
        mysql_select_db("
schulungen");
        
        $mysql_abfrage  = "
SELECT DISTINCT kurs_name_kurzkurs_beschreibung_id FROM kursbeschreibung ORDER BY kurs_name_kurz"; 
        
        $mysql_ergebnis=mysql_query($mysql_abfrage);
        
        $num = mysql_num_rows($mysql_ergebnis);
        
        mysql_close();
        
    ?>

Kurs-Beschreibung:     <select name="
kurs_beschreibung_id_send">

    <?php
            while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
            {
                        echo "
<option value='" . $datensatz["kurs_beschreibung_id"] . "'>" . $datensatz["kurs_name_kurz"] . "</option>";                
            }
    ?>

</select>




    <?php
    
        mysql_connect();
        mysql_select_db("
schulungen");
        
        $mysql_abfrage  = "
SELECT DISTINCT dozent_iddozent_namedozent_vorname FROM dozenten ORDER BY dozent_name"; 
        
        $mysql_ergebnis=mysql_query($mysql_abfrage);
        
        $num = mysql_num_rows($mysql_ergebnis);
        
        mysql_close();
        
    ?>

Kurs-Kategorie:     <select name="
kurs_dozent_id_send">

    <?php
            while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
            {
                        echo "
<option value='" . $datensatz["dozent_id"] . "'>" . $datensatz["dozent_vorname"] . " " . $datensatz["dozent_name"] . "</option>";                
            }
    ?>

</select>



        
<input type="
submit" name="gesendet">
<input type="
reset">
    
        
</form>
</body>
[/php]
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten