[MySQL 4.0] Umschreiben von subselcts, wer hilft?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wurzel
    replied
    hmmm ... mit nem join komm ich auch nicht hin aber so sollte es gehen:
    PHP Code:
    $query1 "SELECT lv_name, MAX(beurteilungs_id) maxi 
                          FROM beurteilung 
                          GROUP BY beurteilungs_id 
                          ORDER BY maxi DESC 
                          LIMIT 1"

    $result1mysql_query($query1$conn);
    $data1 mysql_fetch_array($result1);

    $query2 "SELECT anwesenheit 
                         FROM beurteilung 
                         WHERE lv_name = '"
    .$data1['lv_name']."'";
    $result2 mysql_query($query2$conn); 

    Leave a comment:


  • jamson
    replied
    danke trotzdem für eure mühe.

    Leave a comment:


  • jamson
    replied
    hat "sie" gelesen, sieht aber kein beispiel das passt.

    Leave a comment:


  • Wurzel
    replied
    Original geschrieben von schmalle
    nein
    stimmt ... hat er nicht.

    Leave a comment:


  • jamson
    replied
    Wie schon gesagt, ich brauche die höchste beurteilungs_id, weil ich den lv_namen aus diesem Eintrag brauche. Dann will ich alle Einträge (z.B. anwesenheit )wo der lv_name gleich dem lv_namen des letzten Eitrags in der Datenbank ist. Ich weiß nicht, wie ich das sonst beschreiben soll. es handelt sich um eine Umfrage mit auswertung. Diese Auswertung soll aber nur mit den Einträgen rechnen, die den gleichen lv_namen haben.

    Ich brauche definitiv den lv_namen aus dem letzten Eintrag in die Datenbank.

    Die Auswertung findet abhängig vom lv_namen statt

    Das ist die Tabelle:

    CREATE TABLE beurteilung (
    lv_name varchar(30),
    dozent_name varchar(30),
    semester varchar(30),
    anwesenheit int,
    stoffumfang int,
    inhalt int,
    lv_insg int,
    engagement int,
    vortragsstil int,
    puenktlichkeit int,
    dozent_insg int,
    lehrinhalte int,
    bedeutung_stoff int,
    didaktik_insg int,
    rahmenbedingungen text,
    beurteilungs_id int NOT NULL auto_increment,
    PRIMARY KEY (beurteilungs_id)

    Leave a comment:


  • schmalle
    replied
    Original geschrieben von Wurzel
    schon gelesen?
    http://www.php-resource.de/forum/sho...threadid=28292
    nein

    Leave a comment:


  • Wurzel
    replied
    schon gelesen?
    http://www.php-resource.de/forum/sho...threadid=28292

    Leave a comment:


  • hydrococcus
    replied
    ich versteh nicht ganz was du machen willst. MAX gibt nur den höchsten wert einer tabellenspalte wieder.
    wäre gut zu wissen, was der zweck deines tun's ist.

    Leave a comment:


  • jamson
    replied
    also ich brauche alle eintrage zur "anwesenheit". und zwar nur die, wo der lv_name der gleiche ist, wie im letzten Eintrag in die Tabelle. Der Schlüssel ist beurteilungs_id (auto_increment). ich suche also MAX(beurteilungs_id) FROM beurteilung. Das alleine funktioniert auch.

    Leave a comment:


  • hydrococcus
    replied
    was ist denn
    [SELECT [COLOR=firebrick]MAX[/COLOR](beurteilungs_id) FROM beurteilung]];

    Leave a comment:


  • [MySQL 4.0] Umschreiben von subselcts, wer hilft?

    Da mysql keine Subselects unterstützt habe ich mit folgender Anfrage ein Problem:

    SELECT anwesenheit FROM beurteilung WHERE lv_name = [SELECT lv_name FROM beurteilung WHERE beurteilungs_id = [SELECT MAX(beurteilungs_id) FROM beurteilung]];

    Ich krieg das nicht aufgelöst, hab schon mit Temporary Tables rumprobiert aber irgendwas funzt das nicht.

    Das ganze wird in php eingebunden, hab folgenden code geschrieben, der funktioniert aber auch nicht, seh schon Sternchen von der Fehlersuche. Bin nicht so superfit in php, wie man wahrscheinlich sieht:

    <?
    $query1 = "SELECT MAX(beurteilungs_id) FROM beurteilung";
    $result1= mysql_query($query1, $conn);

    while ($data1 = mysql_fetch_array($result1))
    {
    $beurteilungs_id = $data1["beurteilungs_id"];
    }

    $query2 = "SELECT lv_name FROM beurteilung WHERE beurteilungs_id= '".$beurteilungs_id."';
    $result2 = mysql_query($query2, $conn);

    while ($data2 = mysql_fetch_array($result2))
    {
    $lv_name = $data2["lv_name"];
    }

    $query3 = "SELECT anwesenheit FROM beurteilung WHERE lv_name LIKE '".$lv_name."';
    $result3 = mysql_query($query3, $conn);

    while ($data3 = myql_fetch_array($result3))
    {
    for $i = 0; $i < mysql_num_rows($data3); $i++)
    {
    echo $data3['anwesenheit'];
    }
    }
    ?>

    Wär cool, wenn mir jemand helfen könnte, muss meine Prüfung sonst knicken.
Working...
X