Ankündigung

Einklappen
Keine Ankündigung bisher.

Separates Tabel per PHP anlegen!

Einklappen

Neue Werbung 2019

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

  • Separates Tabel per PHP anlegen!

    Hallo,

    suche nach einer Lösung!
    Code:
    <?php
    $servername = "localhost";
    $username = "benutzer";
    $password = "geheim";
    $dbname = "datenbank";
    $dataid ="9123456"; // Soll später aus einen anderen Table übernommen werden!
    
    
    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    
    // sql to create table
    $sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    )";
    
    if (mysqli_query($conn, $sql)) {
        echo "Table MyGuests created successfully";
    } else {
        echo "Error creating table: " . mysqli_error($conn);
    }
    
    mysqli_close($conn);
    ?>
    Dieser Code funktioniert soweit wie ich das gerne hätte! Mein problem ist wie bekomme ich das am besten hin, das er die DatenID anstelle des MyGuest einträgt?
    bin schon am verzweifeln !

    Gruss

  • #2
    Die neue Tabelle soll am Ende 9123456 oder was hast du genau vor?
    sorry, shift-taste kaputt

    Kommentar


    • #3
      Genau, das was oben unter dataid steht soll dann als Tablel eingetragen werden ... Die Tabelle soll nur die Nummer haben!

      Kommentar


      • #4
        Dann trage doch die Variable $dataid in dein Create-Statement in $sql mit ein.
        Aber Tabellennamen sollten eigentlich selbstsprechend sein und nicht einfach nur aus Zahlen bestehen.
        sorry, shift-taste kaputt

        Kommentar


        • #5
          Zitat von Meister1900 Beitrag anzeigen
          Aber Tabellennamen sollten eigentlich selbstsprechend sein und nicht einfach nur aus Zahlen bestehen.
          Und nicht nur das, Tabellen sollten nicht dynamisch erstellt werden.

          Der Artikel https://de.wikipedia.org/wiki/Normalisierung_(Datenbank) gibt dir einen Überblick über das, was du falsch machst.

          Kommentar


          • #6
            Ok Danke schon mal!
            wegen dem Dynamischen, meint ihr das ich irgendwie ein Wort vormachen sollte ?

            werde das nacher mal umbauen, hatte es vorhin auch mal so gemacht und dann eine Fehlermeldung bekommen.
            Ich muss mir mal gedanken machen jetzt, wie ich das von meinen Contoler aus umsetze!

            Gruss

            Kommentar


            • #7
              Guten Abend ....,
              ich habe es probiert und es funktioniert auch so wie ich mir das vorstelle , danke schon mal dafür.

              Leider macht sich ein anderes Problem auf, wie bekomme ich einen Datensatz ( Tabelle User ) in die oben erwähnte zum erstellen einer Tabelle ?

              PHP-Code:
              <?php
              session_start
              ();
              require_once(
              "inc/config.inc.php");
              require_once(
              "inc/functions.inc.php");

              //Ãœberprüfe, dass der User eingeloggt ist
              //Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
              $user check_user();

              include(
              "templates/header.inc.php");
              ?>

              <div class="container main-container">

              <h1>Herzlich Willkommen!</h1>

              Hallo <?php echo htmlentities($user['name']); ?>,<br>
              Herzlich Willkommen im internen Bereich!<br><br>

              <div class="panel panel-default">

              <table class="table">
              <tr>
                  <th></th>
                  <th>Name</th>
                  <th>Kunden_ID</th>
                  <th>E-Mail</th>
              </tr>
              <?php
              $statement 
              $pdo->prepare("SELECT * FROM users ORDER BY id");
              $result $statement->execute();
              // $count = 1;
              while($user $statement->fetch()) {
                  echo 
              "<tr>";
                  echo 
              "<td>".$count++."</td>";
                  echo 
              "<td>".$user['name']."</td>";
                  echo 
              "<td>".$user['knid_id']."</td>"; <<<< Diese würde ich gern in den Skript oben als tabellen id übernehmen
                  
              echo '<td><a href="mailto:'.$user['email'].'">'.$user['email'].'</a></td>';
                  echo 
              "</tr>";
              }
              ?>
              </table>
              </div>


              </div>
              <?php
              include("templates/footer.inc.php")
              ?>
              Bekomme immer eine Weise seite !

              Gruss

              Kommentar


              • #8
                Zitat von Coini Beitrag anzeigen
                $statement = $pdo->prepare("SELECT * FROM users ORDER BY id");
                stelle Dir vor, Dein Geschäft wächst. Wäre schlimm, bei dem, was Du machst. Warum?
                • du würdest bei jedem Deiner Kunden noch ein Vorstellungsvideo von je 100GB Größe speichern. Bei 1000 Kunden wären das wieviele Byte? Rechne bitte selber!


                Das reicht eigentlich schon, oder?

                Falls nicht:
                • warum selektierst Du alle?
                • warum läßt Du Dir (Anzahl der Kunden) * (beliebig viel) an Daten senden, und wirfst dann ca, 99,99999% davon wieder weg? Weil Leitung so billig ist? Weil Speicher so billig ist? CPU sowieso?

                PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                Kommentar


                • #9
                  Zitat von Coini Beitrag anzeigen
                  Guten Abend ....,

                  Bekomme immer eine Weise seite !

                  Gruss
                  Dafür gibt es einen error.log, in der Wissenssamluing erfährst Du mehr.
                  Nett wieder von Dir zu lesen akretschmer , manch einer hatte Dich wohl Deine nicht verstummende Stimme zum Thema Mysql vermisst

                  Kommentar


                  • #10
                    Hehe

                    Urlaub,viel Arbeit, wenig Lust sich mit den üblichen Verdächtigen hier zu streiten, ..., egal. Danke tomBuilder
                    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                    Kommentar


                    • #11
                      Als Ergänzung oder Konkretisierung zu den Problemen, die schon genannt wurden
                      Zitat von Coini Beitrag anzeigen
                      echo "<td>".$user['knid_id']."</td>"; <<<< Diese würde ich gern in den Skript oben als tabellen id übernehmen
                      Wenn es das ist:
                      Du willst für jeden User eine eigene Gästetabelle anlegen?

                      Dann machst Du auch damit einen großen Fehler. protestix hat es schon geschrieben, das ergibt ein Normalisierungsproblem. (Kannst Du ja nachlesen, was das ist) In Kurz: Man macht es nicht Punkt.
                      Das hat auch gar nichts mit dem Namen der Tabelle zu tun. Dafür nur Nummern zu nehmen ist schon eher ein kosmetisches Problem im Vergleich zum "Konzept", was Du umsetzen möchtest.

                      Was Du möchtest ist folgendes:
                      Du legst eine Gästetabelle an, 1! (EINE!), die Du z.B. "guest" nennst, in Englisch, wie die Tabelle "users", Singular wird empfohlen.
                      Jeder Datensatz, also jeder Gast eines Users bekommt dort nun einen Eintrag mit allen Daten, die er so braucht und zusätzlich und wichtig mit einer Referenz auf den User, dessen Guest er ist. Die ID, die Du zum Tabellennamen machen möchtest, kommt also in den jeweiligen Datensatz eines Guests als Verweis auf den Gastgeber.

                      Nur noch als Denkanstoß:
                      Meinst Du bei Amazon hat jeder Kunde eine eigene Tabelle für seine Bestellungen also "MyOrders"?! Und Amazon benennt die Tabellen nach der Kundennummer eines Kunden? Nein, "myOrders" steht vielleicht irgendwo in den Webseiten so drin, damit der dumme Kunde auch ganz sicher weiß, dass es seine Bestellungen sind und nicht zufällig die eines anderen Kunden oder seines Nachbarn. Aber es ist wie mit Deinen Gästen, alle Orders von Amazon stehen in einer Tabelle und die heißt nicht myOrders, sondern wahrscheinlich Orders. Das "my" ist die falsche Spur. Wenn sollte es "all" heißen, denn dafür sind Tabellen da. Aber weils eh klar ist und auch klar ist, dass es eh mehrere werden, lässt man das all und das Plural S weg:
                      "order", "user", "customer", "article"

                      Und noch ein Nachstoß:
                      Stell Dir vor Jeff B. beschließt, dass die Orderstabelle eine neue Spalte braucht. Wie würde das nach Deinem Konzept umgesetzt? Alle Admins machen einmal Nachtschicht um 100 Mio Kundentabellen zu ändern?
                      Und jetzt komm bitte nicht mit der Antwort, kann man ja per Script machen.

                      Und noch einmal zu Deinen jetzigen und zukünftigen Problemen:
                      Im Moment bastelst du die Seite, um die Tabelle(n) anzulegen. Was kommt als nächstes? Die Webseiten, wo die Daten dieser Tabellen dargestellt werden müssen, also abgefragt. Auch hier musst Du ständig, in jedem Select Statement jeder Session jedes Users den Tabellennamen anpassen.
                      Das ist Schrott!

                      Und bitte nicht sauer sein, man könnte den Thread umbenennen in "gutes Beispiel für falsches Datenmodell". Das würde vielen weiterhelfen. Denn es sind immer wieder die gleichen Fehler, die gemacht werden. Also nicht übel nehmen, ich hab das geschrieben, damit Du eine Ahnung bekommst, worum es bei einem Datenmodell geht (Und andere vielleicht auch).

                      Und zur Zusammenfassung noch eine nicht ganz ernst gemeinte Faustregel am Schluss:
                      "my" ist im Zusammenhang mit SQL meist falsch.

                      Kommentar


                      • #12
                        Zitat von Perry Staltic Beitrag anzeigen
                        Und zur Zusammenfassung noch eine nicht ganz ernst gemeinte Faustregel am Schluss:
                        "my" ist im Zusammenhang mit SQL meist falsch.
                        Der ist gut
                        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                        Kommentar


                        • #13
                          Hat sich irgendwie so ergeben diese Regel.

                          Ich find an dem Beitrag interessant, dass Amazon ein Link geworden ist. Kriegt ihr wenigstens Geld dafür? Dann würde ich nur noch Amazon Beispiele machen und das Wort in jedem Beitrag 10 mal verwenden.
                          Obwohl ich persönlich Amazon gar nicht mag! Irgendwie muss ja Geld reinkommen.

                          Kommentar

                          Lädt...
                          X