Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabellenausgabe.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Investmentclub
    hat ein Thema erstellt Tabellenausgabe..

    Tabellenausgabe.

    Ich versuche mal meine Programmieraufgabe zu beschreiben, damit wir gemeinsam nach Lösungen suchen können.

  • litterauspirna
    antwortet
    Ich habe nen guten Verbesserungsvorschlag, schmeiß dem ganzen mist über Bord und Versuche ernsthaft zu planen und nachzudenken.

    Für jedes Verzeichnis ne extra Tabelle ist mist. Stell dir vor du hast 500 Verzeichnisse, oder 20 User hätten jeweils 100 Verzeichnisse. Nun darfst dir vorstellen was das wird.

    Deine Funktionen sind käse, die bringen einfach null Mehrwert. Denn Funktionen sollten schon auch im prozeduralen dazu dienen Arbeit abzunehmen und mehrfach in einem oder sogar mehreren Projekten wiederverwendet werden zu können, bei dir ist bei nicht einer Funktion gegeben.

    Einen Kommentar schreiben:


  • Investmentclub
    antwortet
    Nach dem die Tabellenausgabe funktioniert konnte auch der Versuch gemacht werden eine Tabelle zu sortieren, die Einträge mit Zwischenräume zu nummerieren und in die Ausgangstabelle zurück zu schreiben.
    Wie man sieht wird die Reihenfolge sowohl der Gruppen als auch der Bezeichnung innerhalb der Gruppen durch die Nr. festgelegt.
    Wer hat Verbesserungsvorschläge?
    PHP-Code:
    <?php

    include_once ( 'db1.php' );
    echo 
    "<h1>".$_SERVER['PHP_SELF']."</h1>";
    anmelden_db();

    $sql1 "DROP TABLE verzeichnis1";
    echo 
    $sql1."<br>";
    $ergebnis mysql_query($sql1);

    $sql2 "CREATE TABLE verzeichnis1 ";
    $sql2 .=  "( nr int(5), gruppe text, bezeichnung text ) ";
    echo 
    $sql2."<br>";
    mysql_query($sql2);

    $sql "INSERT INTO verzeichnis1 VALUES (7,'b','ba'),(9,'a','aa'),(16,'b','bb') ";
    $sql .= ",(4,'c','ca') ";
    echo 
    $sql."<br>";
    mysql_query($sql);

    $sql3 "SELECT * FROM verzeichnis1";
    anzeige_verzeichnis($sql3);

    $sql4 "SELECT a.nr, a.gruppe, a.bezeichnung FROM verzeichnis1 AS a ";
    $sql4 .= "INNER JOIN verzeichnis1 AS b ON a.gruppe=b.gruppe ";
    $sql4 .= "GROUP BY b.gruppe, a.nr ORDER BY b.nr,a.nr";
    anzeige_verzeichnis($sql4);

    $sql5 "DROP TABLE verzeichnis2";
    echo 
    $sql5."<br>";
    $ergebnis mysql_query($sql5);

    $sql "CREATE TABLE verzeichnis2 ";
    $sql .=  "( nr int(5) AUTO_INCREMENT, gruppe text, bezeichnung text, PRIMARY KEY (nr) ) ";
    echo 
    $sql."<br>";
    mysql_query($sql);

    $ergebnis mysql_query($sql4);

    while(
    $row mysql_fetch_object($ergebnis)) {
    $sql "INSERT INTO verzeichnis2 (gruppe, bezeichnung) ";
    $sql .= "VALUES ('".$row->gruppe."', '".$row->bezeichnung."') ";
    $ergebnis1 mysql_query($sql); }

    $sql "SELECT * FROM verzeichnis2";
    anzeige_verzeichnis($sql);

    echo 
    $sql1."<br>";
    $ergebnis mysql_query($sql1);
    echo 
    $sql2."<br>";
    mysql_query($sql2);

    $sql "INSERT INTO verzeichnis1 (nr,gruppe,bezeichnung) ";
    $sql .= "SELECT nr*4,gruppe,bezeichnung FROM verzeichnis2  ";
    echo 
    $sql."<br>";
    mysql_query($sql);
    anzeige_verzeichnis($sql3);

    echo 
    $sql5."<br>";
    $ergebnis mysql_query($sql5);

    mysql_close();

    function 
    anzeige_verzeichnis($sql) {
        
    $ergebnis mysql_query($sql);
        echo 
    "<h2>Verzeichnis</h2>";
        echo 
    "<h4>(".$sql.")</h4>";
        echo 
    "<table width='30%' border='5' cellpadding='0' cellspacing='2'>";
        echo 
    "<tr><th>Nr</th><th>Gruppe</th><th>Bezeichnung</th></tr>";
        while(
    $row mysql_fetch_object($ergebnis)) {
            echo 
    "<tr><td>";
            echo 
    $row->nr;
            echo 
    "</td><td>";
            echo 
    $row->gruppe;
            echo 
    "</td><td>";
            echo 
    $row->bezeichnung;
            echo 
    "</td></tr>";          }
        echo 
    "</table>"; }

    ?>
    Ansicht

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Die Aufgabenstellung ist gar nicht umschrieben!
    Lies den Thread nochmal, insbesondere deine eigenen Posts...

    Einen Kommentar schreiben:


  • Investmentclub
    antwortet
    Ist mir schon bewusst, dass die Aufgabenstellung nicht besonders gut umschrieben ist, aber vielleicht hat doch jemand einen Hinweis auf Grund seiner Erfahrung.

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Du willst jetzt was von uns ? Simplifizierung ohne Wissen über die Komplexität darüber was du wirklich umsetzen möchtest ?

    Einen Kommentar schreiben:


  • Investmentclub
    antwortet
    Hier meine Lösung:
    PHP-Code:
    <?php
    anmelden_db
    ();
    anzeige_verzeichnis();
    mysql_close();

    function 
    anmelden_db() {
        
    mysql_connect("a""m","k") or die ("Keine Verbindung moeglich");
        
    mysql_select_db("m") or die ("Die Datenbank existiert nicht.");
       }

    function 
    anzeige_verzeichnis() {
        
        
    $sql "SELECT b.*, MIN(a.nr) AS c, a.gruppe FROM verzeichnis AS a ";
        
    $sql .= "INNER Join verzeichnis AS b ON a.gruppe = b.gruppe ";
        
    $sql .= "GROUP BY a.gruppe,b.nr ";
        
    $sql .= "ORDER BY c, b.nr";

        
    $ergebnis mysql_query($sql);
        echo 
    "<h2>Verzeichnis</h2>";
        echo 
    "<table width='30%' border='5' cellpadding='0' cellspacing='2'>";
        echo 
    "<tr><th>Nr</th><th>Gruppe</th><th>Bezeichnung</th></tr>";
        while(
    $row mysql_fetch_object($ergebnis)) {
            echo 
    "<tr><td>";
            echo 
    $row->nr;
            echo 
    "</td><td>";
            echo 
    $row->gruppe;
            echo 
    "</td><td>";
            echo 
    $row->bezeichnung;
            echo 
    "</td></tr>";          }
        echo 
    "</table>";     }
    ?>
    Ansicht sortiert


    Gibt es eine einfáchere Lösung?

    Wie kann man die gefundene Reihenfolge zurückschreiben, also die Nr verändern?[/QUOTE]

    Einen Kommentar schreiben:


  • Investmentclub
    antwortet
    Hier meine Lösung:
    PHP-Code:
    <?php
    anmelden_db
    ();
    anzeige_verzeichnis();
    mysql_close();

    function 
    anmelden_db() {
        
    mysql_connect("a""m","k") or die ("Keine Verbindung moeglich");
        
    mysql_select_db("m") or die ("Die Datenbank existiert nicht.");
       }

    function 
    anzeige_verzeichnis() {
        
    $sql "SELECT * FROM verzeichnis";
        
    $ergebnis mysql_query($sql);
        echo 
    "<h2>Verzeichnis</h2>";
        echo 
    "<table width='30%' border='5' cellpadding='0' cellspacing='2'>";
        echo 
    "<tr><th>Nr</th><th>Gruppe</th><th>Bezeichnung</th></tr>";
        while(
    $row mysql_fetch_object($ergebnis)) {
            echo 
    "<tr><td>";
            echo 
    $row->nr;
            echo 
    "</td><td>";
            echo 
    $row->gruppe;
            echo 
    "</td><td>";
            echo 
    $row->bezeichnung;
            echo 
    "</td></tr>";          }
        echo 
    "</table>";     }
    ?>
    Ansicht



    Gibt es eine einfáchere Lösung?

    Wie muss die SQL-Anweisung aussehen, damit sich die Gruppenreihefolge aus der nr ergibt?

    Einen Kommentar schreiben:


  • Sonic
    antwortet
    Vll. ist das noch immer der 1. April Bot, der sich selbständig gemacht hat

    Einen Kommentar schreiben:


  • alxy
    antwortet
    Das ist jetzt nicht dein Ernst?

    Einen Kommentar schreiben:

Lädt...
X