Den Inhalt einer Variabel löschen

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

  • Den Inhalt einer Variabel löschen

    PHP-Code:
    if(isset($_POST['ip'],$_POST['mac'],$_POST['dns'],
    $_POST['lokation'], $_POST['anzahlg'],$_POST['firmwarev'],$_POST['kvlan'],
    $_POST['spanningtree'],$_POST['ivl']))
    {
     
    $ok=1;
    //Fehlerprüfung
    if($_POST['ip'] == ""
    {echo(
    "Es wurde keine IP Adresse angegeben.");$ok=0;}
    if(
    $_POST['mac'] == ""
    {echo(
    "Mac-Adresse");$ok=0;}
    if(
    $_POST['dns'] == ""
    {echo(
    "DNS-Name");$ok=0;}             
    if(
    $_POST['lokation'] == ""
    {echo(
    "Lokation");$ok=0;}            
    if(
    $_POST['anzahlg'] == ""
    {echo(
    "Geräte!");$ok=0;}        
    if(
    $_POST['firmwarev'] == "")
     {echo(
    "Firmware -Version!");$ok=0;}
    if(
    $_POST['kvlan'] == ""
    {echo(
    "Firmware -Version!");$ok=0;}            
    if(
    $_POST['spanningtree'] == ""
    {echo(
    "Spanningtree!");$ok=0;}
    if(
    $_POST['ivl'] == "") {echo("IVL");$ok=0;}
    //senden der daten an db wenn keke
     
    if($ok==1)
    {
    //IP-Adresse speichern in Tabelle IP und auslesen der id_ip
     
    $ip mssql_query("INSERT INTO IP(ip)VALUES('".($_POST['ip'])."')SELECT @@IDENTITY as id_ip");
    // Wert von Tabelle IP (id_ip)wird in Tabelle Switch (id_ip) eingetragen
    $ip1  mssql_query("INSERT INTO SWITCH(id_ip)VALUES(@@IDENTITY)");
    //----Hier löschen des Inhaltes-------
    //Mac-Adresse speichern in Tabelle Geraete und auslesen der id_mac
    $mac mssql_query("INSERT INTO MAC(mac)VALUES('".($_POST['mac'])."')SELECT @@IDENTITY as id_mac");
                     
    // Wert von Tabelle MAC (id_mac)wird in Tabelle Switch (id_mac) eingetragen
    $mac1 =mssql_query("UPDATE SWITCH SET id_mac = @@IDENTITY");
                     
    //DNS-Daten speichern in Tabelle DNS und auslesen der id
    $dns mssql_query("INSERT INTO DNS(dns, lokation, anzahlg, firmwarev,kvlan, spanningtree, ivl)
     VALUES('"
    .($_POST['dns'])."','".($_POST['lokation'])."',
    '"
    .($_POST['anzahlg'])."','".($_POST['firmwarev'])."',
    '"
    .($_POST['kvlan'])."',
    '"
    .($_POST['spanningtree'])."','".($_POST['ivl'])."')
    SELECT @@IDENTITY as id_dns"
    );
                             
    header("Location:?action=switchport");
                             }           
                   } 
    Ich würde gern wissen wie ich den Inhalt aus meiner variable (@@IDENTITY)löschen kann,

  • #2
    @@IDENTITY ist eine MSSQL-Variable? Dann falsches Forum. *verschieb*

    wieso möchtest du den löschen?

    Kommentar


    • #3
      Ich trage in das formular daten ein.
      Er sendet die an die DB und trägt die letze id von ip und die letzte id von mac in eine andere Tabelle das geht ja ach.
      Wenn ich jetzt das formular nochmal neue daten eingebe
      speichert er die letzte id von ip richtig,aber von MAC da nimmt er die auch die letzte id und bügelt die über die anderen einfach rüber
      hier eine kleine ansicht.
      http://www.dingos-web.de/testt/image002.jpg
      da wo dreimal 64 steht müsste eigendlich
      62
      63
      64

      Kommentar


      • #4
        Original geschrieben von dingo
        Wenn ich jetzt das formular nochmal neue daten eingebe speichert er die letzte id von ip richtig,aber von MAC da nimmt er die auch die letzte id und bügelt die über die anderen einfach rüber
        wieso wundert dich das?

        du hast doch nirgends gesagt, dass du irgendeine spezielle ID auslesen willst.

        SELECT @@IDENTITY as id_ip

        wieso sollte das deiner meinung nach nicht irgendeine beliebige auslesen?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Das ist ja nicht mein Problem.
          mein Problem ist das er beim UPDATE einfach die neue id nimmt
          $mac1 =mssql_query("UPDATE SWITCH SET id_mac = @@IDENTITY");
          und sie dann über die anderen drüber bügelt.

          Kommentar


          • #6
            Original geschrieben von dingo
            mein Problem ist das er beim UPDATE einfach die neue id nimmt
            wie schon gesagt, du hast ja m.E. auch absolut nichts angegeben, was die DB zur auswahl einer bestimmten ID anhalten könnte - also hast du keinen grund, traurig zu sein, weil sie irgendeine hernimmt.

            und sie dann über die anderen drüber bügelt.
            natürlich wird sie über alle drübergebügelt - welcher datensatz aktualisiert werden soll, schränkst du ja ebenso wenig ein.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Original geschrieben von wahsaga
              wie schon gesagt, du hast ja m.E. auch absolut nichts angegeben, was die DB zur auswahl einer bestimmten ID anhalten könnte - also hast du keinen grund, traurig zu sein, weil sie irgendeine hernimmt.
              hab grad keinen ms-sql server da, aber wenn ichm ich recht entsinne, dann bewirkt @@IDENTITY in etwa das gleiche wie mysql_insert_id, liefert also die id des zuletzt angelegten datensatzes (wenn die tabelle dementsprechend angelegt wurde)


              natürlich wird sie über alle drübergebügelt - welcher datensatz aktualisiert werden soll, schränkst du ja ebenso wenig ein.
              ACK

              mal so ganz prinzipiell:
              warum hast du nicht einen AFTER INSERT trigger für die tabelle IP gemacht in der du alles weitere (bis auf den eintrag in die tabelle DNS) abhandelst?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                @dingo: geht's noch? schau dir mal dein T-SQL an:

                UPDATE SWITCH SET id_mac = @@IDENTITY

                was meinst du was der macht?




































                [color=silver]die Existenz einer Where-Klausel hilft sicher weiter[/color]

                Kommentar


                • #9
                  Morgen
                  Also nch mal.

                  Tabelle IP
                  id_ip(Ps)(auto)
                  ip

                  Tabelle MAC
                  id_mac(Ps)
                  mac

                  Tabelle SWITCH
                  id_sw (Ps)(auto)
                  id_ip (Fs)von Tabelle IP
                  id_mac (Fs)von Tabelle IP
                  1 Eintrag
                  PHP-Code:
                  //IP-Adresse speichern in Tabelle IP und auslesen der id_ip
                  $ip mssql_query("INSERT INTO IP(ip)VALUES('".($_POST['ip'])."')");
                  // auslesen des letzten id der Tabelle ip
                  $ip1 mssql_query("SELECT @@IDENTITY as id_ip"");
                  // Wert von Tabelle IP (id_ip)wird in Tabelle Switch (id_ip) eingetragen
                  $ip2  = mssql_query("INSERT INTO SWITCH(id_ip)VALUES(@@IDENTITY)"); 
                  Jetzt habe ich folgende Werte in Tabelle IP und SWITCH

                  Tabelle IP
                  id_ip= 1
                  ip=192.168.240.1

                  Tabelle SWITCH
                  id_sw = 1
                  id_ip= 1
                  id_mac=NULL

                  Jetzt tage ich in Tabelle MAC ein

                  PHP-Code:
                  //Mac-Adresse speichern in Tabelle MAC
                  $mac mssql_query("INSERT INTO MAC(mac)VALUES('".($_POST['mac'])."')");
                  // auslesen des letzten id der Tabelle mac
                  $mac1 =mssql_query("SELECT @@IDENTITY as id_mac"); 
                  was meinst du was der macht?
                  Nun möchte ich das die Letze ID die aus Tabelle MAC hole
                  in die Tabelle SWITCH eingetragen wird. Dazu nehme ich "Update"
                  denn wie wir wissen habe ich schon ein datensatz in Tabelle SWITSCH und den möchte ich Update.
                  UPDATE SWITCH SET id_mac = @@IDENTITY

                  Jetzt habe ich folgende Werte in Tabelle Mac und SWITCH

                  Tabelle MAC
                  id_mac=1
                  mac =01-02-03-04-05-06

                  Tabelle SWITCH
                  id_sw = 1
                  id_ip= 1
                  id_mac=1
                  so das ist ja auch alles ok.

                  2 Eintrag

                  //IP-Adresse speichern in Tabelle IP und auslesen der id_ip
                  $ip = mssql_query("INSERT INTO IP(ip)VALUES('".($_POST['ip'])."')");
                  // auslesen des letzten id der Tabelle ip
                  $ip1 = mssql_query("SELECT @@IDENTITY as id_ip"");
                  // Wert von Tabelle IP (id_ip)wird in Tabelle Switch (id_ip) eingetragen
                  $ip2 = mssql_query("INSERT INTO SWITCH(id_ip)VALUES(@@IDENTITY)");[/PHP]
                  Jetzt habe ich folgende Werte in Tabelle IP und SWITCH
                  Tabelle IP
                  id_ip ip
                  1 192.168.240.1
                  2 192.168.240.2

                  Tabelle SWITCH
                  id_sw id_ip id_mac
                  1 1 1
                  2 2 NULL

                  Jetzt tage ich wieder in Tabelle MAC ein

                  PHP-Code:
                  //Mac-Adresse speichern in Tabelle MAC
                  $mac mssql_query("INSERT INTO MAC(mac)VALUES('".($_POST['mac'])."')");
                  // auslesen des letzten id der Tabelle mac
                  $mac1 =mssql_query("SELECT @@IDENTITY as id_mac"); 
                  was meinst du was der macht?
                  Nun möchte ich das die Letze ID die aus Tabelle MAC hole
                  in die Tabelle SWITCH eingetragen wird. Dazu nehme ich "Update"
                  denn wie wir wissen habe ich schon ein datensatz in Tabelle SWITSCH und den möchte ich Update.
                  UPDATE SWITCH SET id_mac = @@IDENTITY

                  Jetzt habe ich folgende Werte in Tabelle Mac und SWITCH

                  Tabelle MAC
                  id_mac mac
                  1 01-02-03-04-05-06
                  2 02-03-04-05-06-70

                  Tabelle SWITCH
                  id_sw id_ip id_mac
                  1 1 2
                  2 2 2
                  und da liegt das problem er schreibt über den ersten datensatz von mac einfach drüber.

                  @mrhappiness

                  Was meinst du mit AFTER INSERT trigger ???

                  Kommentar


                  • #10
                    ich dachte immer, bei ms-sql gäbe es die möglichkeit trigger anzulegen

                    vielleicht gibt's auch nur die möglichkeit einen trigger für INSERT anzulegen, hab schon lang nix mehr mit ms-sql gemacht, was ein trigger ist solltest du aber wissen

                    ----

                    stell dir doch mal vor, du wärst die datenbank und kriegst gesagt:
                    Code:
                    UPDATE SWITCH SET id_mac = @@IDENTITY
                    dann schaust du dir die tabelle switch an und stellst fest, dass da mehr als ein datensatz drinsteht.
                    änderst du den ersten?
                    änderst du den zweiten?
                    änderst du alle?
                    änderst du keinen?

                    ms-sql entscheidet sich für tor 3 und ändert alle, da du keinerlei einschränkung mittels WHERE in deinem UPDATE stehen hast
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      @happy, klar gibt es TRIGGER, aber wenn er noch nicht mal ein UPDATE vernüftig auf die Reihe kriegt, was soll er mit TRIGGER anfangen

                      @dingo, wie mrhappiness schon sagte (und ich auch s. kleine Zeile im vorrigen Posting), ersetzt die DBMS alle Werte, die es findet, genauso gut kannst du: DELETE FROM ... machen, da die Daten der Tabelle ohnehin zerstört sind

                      Kommentar


                      • #12
                        @asp
                        ich weiß :-)
                        bin nur grad am überlegen: ms-sql kennt nur INSERT TRIGGER, das mit BEFORE INSERT und AFTER INSERT war bei db2, korrigier mich doch bitte wenn ich falsch liege
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          bei MSSQL hast du stattdessen ein AFTER- und ein INSTEAD OF-Trigger

                          Kommentar


                          • #14
                            ich habe es jetzt mal so probiert.

                            PHP-Code:

                            //IP-Adresse speichern in Tabelle IP und auslesen der id_ip
                             
                            $ip ="INSERT INTO IP(ip)VALUES('".($_POST['ip'])."')";
                            $sql =mssql_query($ip);
                            //auslesen der id_ip
                            $ip1 ="SELECT @@IDENTITY as id_ip";
                            $sql =mssql_query($ip1);
                            // Wert von Tabelle IP (id_ip)wird in Tabelle Switch (id_ip) eingetragen
                            $ip1  ="INSERT INTO SWITCH(id_ip)VALUES(@@IDENTITY)";
                            $sql =mssql_query($ip1);
                            //auslesen der id_sw
                            $sw ="SELECT @@IDENTITY as id_sw";
                            $sql =mssql_query($sw);
                            //Mac-Adresse speichern in Tabelle Geraete und auslesen der id_mac
                            $mac "INSERT INTO MAC(mac)VALUES('".($_POST['mac'])."')";
                            $sql =mssql_query($mac);
                            //auslesen der id_sw
                            $mac1 ="SELECT @@IDENTITY as id_mac";
                            $sql =mssql_query($mac1);
                             
                            // Wert von Tabelle MAC (id_mac)wird in Tabelle Switch (id_mac) eingetragen
                            $mac2 ="UPDATE SWITCH SET id_mac =@@IDENTITY where id_sw = @@IDENTITY";
                            $sql =mssql_query($mac2); 
                            Jetzt habe ich aber kein wert drin.Er trägt NULL ein

                            @asp2php
                            Ich hoffe das Update gefällt dir besser.

                            Kommentar


                            • #15
                              Original geschrieben von dingo
                              @asp2php
                              Ich hoffe das Update gefällt dir besser.
                              die Struktur sieht ansprechend aus , aber immer noch Mist. Wo hast du denn id_sw mit dem Wert von dem letzten Identity eingefügt, dass du genau weißt, dass einen Eintrag dazu existiert?
                              EDIT:
                              übrigens, MS-SQL hat den Vorteil, dass man mehrere Abfrage, Commands, ... einfach in einem Rutsch absetzen kann. Warum machst du denn immer stückweise?
                              Zuletzt geändert von asp2php; 03.11.2004, 10:53.

                              Kommentar

                              Lädt...
                              X