PHP+ SQL Datenbank

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

  • PHP+ SQL Datenbank

    Hi,
    aaalllssooo *tief luft holt*
    Ich soll eine Datenbank erstellen mit folgenden Tables und Feldern:

    Computer:
    Computername
    Benutzung

    User:
    Name
    Vorname
    Tel

    Addressen:
    IP-Addresse
    Mac-Addresse
    Hersteller(Netzwerkkarte)

    Wie kann ich die Tables miteinander verbinden.

    Es soll der Rechnername(danach soll auch sortiert werden) angezeigt werden, wer für ihn zuständig ist (User) wozu er benutzt wird etc.

    Nächstes Problem: Ein Rechner kann mehrer Netzwerkkarten haben sprich auch mehrer Mac-Addressen und mehrer IP-Addressen, ich will aber nicht das der Rechner mit jeder Addresse dann mehrmals aufgeführt wird sondern jeder Rechner einmal mit den vorhandenen Addressen. Läßt sich das realisieren, wenn ja wie.

    Ich hoffe einer von euch blickt da durch.

    Gruß

    Aroree

  • #2
    machs doch leichter ....

    warum willst du drei oder mehr tables anlegen? geht doch auch ebenso mit nur einer. da passen alle daten rein, die du rein haben willst. dass ein rechner mehr als 3 netzwerkkarten hat, ist wohl nicht wahrscheinlich oder? also nenne doch einfach die spalten net_1, net_2 usw....

    damit du besser durchblickst, solltest du noch jedem rechenr eine einfache nummer verpassen. am besten automatisch erstellen lassen von mysql.

    ich hoffe, du kommst weiter ....

    schmalle
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      Ich kann Schmalle nur zustimmen. Solltest Du aber die DB später erweitern wollen, würd ichs so machen:


      tabelle computer

      id int(11) auto-increment
      name varchar(255)
      benutzung longblob oder was auch immer

      tabelle user
      id int(11) auto-increment
      name varchar(255)
      usw.

      tabelle adressen
      id int(11) auto-increment
      steckt_in_computer int(11)
      IP varchar(255)
      MAC varchar (255)
      Hersteller varchar(255)

      tabelle wer_benutzt_welchen_computer
      id int(11) nur aus prinzip...
      user int(11)
      benutzt_computer int(11)

      In dem Beispiel kann jeder User unbegrenzt viele Computer verwalten und umgekehrt.

      Wie das in ein schönes Web-Interface umzusetzen ist, ist eine andere, sehr lange Geschichte... Aber ein paar SQL-Beispiele:

      Alle computer, die von Peter (id 256) benutzt werden:
      SELECT * FROM benutzt_computer WHERE user = 256

      Alle Netzwerkkarten, die im alten 486er, bei dem die Lüftung surrt und vorne die Blenden fehlen(id 56) stecken:
      SELECT * FROM adressen WHERE computer = 56

      Alle user, die diesen Computer benutzen:
      SELECT * FROM benutzt_computer WHERE computer = 56

      Und noch was ganz scharfes! Alle user, die Computer benutzen, in denen Novell-Netzwerkkarten stecken.
      SELECT user FROM benutzt_computer, adressen LEFT JOIN ON benutzt_computer.computer = adressen.computer WHERE benutzt_computer.id = ... hm, zu breit, folgt morgen! :-)

      etc.

      Wenn Du Probleme bei der Umsetzung hast, melde Dich!

      Guats Nächtle!

      Kommentar


      • #4
        Allsssoooo...

        So zwei Tabellen habe ich jetzt schon kombiniert bekommen:

        form.php:
        <?php
        if ($gesendet)
        {
        $db = mysql_select_db("Computerverwaltung");
        $sqlab = "insert into Computer";
        $sqlab .= " (Name)";
        $sqlab .= " (Nutzung)";
        $sqlab .= " ('$cn','$bn')";
        $sqlac = "insert into adressen";
        $sqlac = "(Name)";
        $sqlac = "(Vorname)";
        $sqlac = "(Telefon)";
        $sqlac .= " ('$nn','$vn', '$tn')";
        $sqlad = "insert into user";
        $sqlad = "()";
        $sqlad = "()";
        $sqlad = "()";
        $sqlad .= " ('$mn','$in','$hn')";


        mysql_db_query("Computerverwaltung", sqlab);

        $num = mysql_affected_rows();
        if ($num>0)
        echo "Es wurde ein Datensatz hinzugefügt<p>";
        else
        {
        echo "Es ist ein Fehler aufgetreten,<br>";
        echo "es wurde kein neuer Datensatz hinzugefügt<p>";
        }
        mysql_close($db);
        }
        ?>

        daten.php:

        <?php
        $db = mysql_select_db("Computerverwaltung");

        $res = mysql_db_query("Computerverwaltung", "select * from Computer");
        $num = mysql_num_rows($res);

        //Tabellenbeginn
        echo "$num Datensätze gefunden <p>";
        echo "<table border=1>";

        //Überschrift
        echo "<tr> <td> Nachname </td> <td> Vorname </td> <td>Telefonnummer</td> <td> Computername </td> <td> Nutzungszweck </td> ";

        $sqlquery ="SELECT u.id, u.Name AS Nachname, u.Vorname , u.Telefon, c.ID, c.Name AS Computername, c.Nutzung";
        $sqlquery .= " FROM User u, Computer c";
        $sqlquery .= " WHERE u.id = c.ID;";

        $ausgabe = mysql_query($sqlquery);

        while($row = mysql_fetch_array($ausgabe)) {
        //Tabellenzeile mit -zellen

        echo "<tr><td>";
        echo $row["Nachname"], "</td>";
        echo "<td>";
        echo $row["Vorname"],"</td>";
        echo "<td>";
        echo $row["Telefon"],"</td>";
        echo "<td>";
        echo $row["Computername"],"</td>";
        echo "<td>";
        echo $row["Nutzung"],"</td>";
        //if ("Mac-Addresse"){
        //

        //echo $row["Mac-Addresse1"];
        //} else {
        //echo $row["Mac-Addresse2"];
        //}
        //if ("IP-Addresse > 1 "){
        //

        //echo $row["IP-Addresse1"];
        //} else {
        //echo $row["IP-Addresse2"];
        //}
        //if ("Hersteller"){
        //echo $row["Hersteller"];
        //} else {
        //echo $row["Hersteller"];
        //}
        echo "</tr>";
        }
        //Tabellenende
        echo "</table>";

        /*for ($i=0; $i<$num; $i++)
        {
        $in = mysql_result($res, $i, "ID");
        $nn = mysql_result($res, $i, "Name");
        $bn = mysql_result($res, $i, "Nutzung");
        $lf = $i + 1;


        }*/


        //mysql_close($db);

        ?>


        So jetzt habe ich folgendes Problem, da ja in einem Rechner mehrere Netzwerkkarten sein können, weiß ich nicht wie ich das mit dem Verknüpfen machen soll, hatte überlegt bei Eintrag in die Datenbank eine Nummer an alle Tables vergeben zu lassen, jedoch weiß ich irgendwie nicht wie ich das lösen kann (hab da so kleine Denkfehler ;-))
        Fällt euch was ein wie ich das machen kann das eine Id vergeben wird die sich erhöht, allerdings nicht automatisch sondern mit Abfrage oder so.
        Außerdem brauche ich noch Sortierungen nach zum Beispiel Computer oder Benutzer und so.

        Ist irgendwie blöd wenn man ne Sprache noch nicht richtig kann und solche aufgaben bekommt :-(

        Wäre schön wenn mir einer helfen könnte.

        Gruß

        Aroree

        Kommentar

        Lädt...
        X