Ankündigung

Einklappen
Keine Ankündigung bisher.

Primary Key in ein weiteres Feld übernehmen

Einklappen

Neue Werbung 2019

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

  • Primary Key in ein weiteres Feld übernehmen

    Hi. So ich habe Eine DB, mit einer ID als Primary Key..
    Nun möcht ich gerne ein Weiteres Feld in dieser DB haben, die den gleichen Wert wie die ID hat. Gibt es eine Option in Mysql die as default den durch autoincrement generierten PrimaryKey von ID in ein weiteres Feld dublizieren kann / übernimmt?

  • #2
    Zitat von Obsidian Beitrag anzeigen
    Nun möcht ich gerne ein Weiteres Feld in dieser DB haben, die den gleichen Wert wie die ID hat.
    Wozu? Klingt unsinnig.

    Kommentar


    • #3
      Wozu sollte sowas gut sein? Automatisch bei neuen Daten wird das nicht ohne weiteres klappen.

      Kommentar


      • #4
        Wozu.. ganz einfach ich habe ein __construct welches mir nach folgendem schema die daten der tabelle in ein array speichert:
        PHP-Code:
            foreach ($tmp as $key => $value)
            {
             foreach(
        $value as $ky => $val)
             {
              
        $name explode("_"$ky);
              if (
        $ky != 'e_id')
              
        $this->eventArray[$value['e_id']][$name[1]] = $val;
             }
            } 
        nun steht mir in dem array allerdings die id (e_id) nicht zur verfügung..
        diese wird jedoch bei der weiteren verwendung benötigt..

        Kommentar


        • #5
          ja dann ist es doch wohl wesentlich SINNVOLLER , wenn du die e_id auch in dem Array unterbringst - andersherum würde es Redundanz in deine Datenbank bringen - und jede Redundanz ist eine Fehlerquelle, die auf ihren Ausbruch wartet

          Kommentar


          • #6
            ok da geb ich dir recht.
            allerdings bin ich mir nicht sicher wie ich das hinkrieg und weiterhin mein explode beibehalte.. ein kleiner tip wie ich
            PHP-Code:
            $name explode("_"$ky);
                  if (
            $ky != 'e_id')
                  
            $this->eventArray[$value['e_id']][$name[1]] = $val
            anpassen müsste damit mir die id auch im array zur verfügung steht?
            wär ich euch sehr dankbar für

            Kommentar


            • #7
              da wirst du wohl mal ein paar Zeilen mehr Quellcode liefern müssen, .. wir wissen doch gar nicht, wie dein Array eigentlich aussehen soll / aussieht

              Kommentar


              • #8
                Construct:
                PHP-Code:
                 public function __construct()
                 {
                  
                parent::__construct();
                  if(!
                is_array($this->DB) || empty($this->DB['database']))
                   throw new 
                Exception("Missing data for database connection!");
                  else
                  {
                   
                $connectString "mysql:dbname=".$this->DB['database']."; host=".$this->DB['host'].";";
                   try
                   {
                    
                $this->dbh = new PDO($connectString$this->DB['user'], $this->DB['password'] );
                    
                $this->dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
                    
                $sql "SELECT e_id, e_eventname, e_flyer, e_location, e_city, e_linkname1, e_eventlink2, e_linkname2,
                                    e_eventlink3, e_linkname3, e_eventlink4, e_linkname4, e_eventlink5, e_linkname5, e_eventlink6, e_linkname6,
                                    e_date, e_time, e_age, e_price, e_headliner, e_support, e_deco, e_places, e_description, e_content, e_xdate
                              FROM gl_events
                             WHERE e_id > 0 AND e_xdate >= CURDATE()
                           ORDER BY e_xdate"
                ;
                    
                $result $this->dbh->query($sql);
                    
                $tmp $result->fetchAll(PDO::FETCH_ASSOC);
                    foreach (
                $tmp as $key => $value)
                    {
                     foreach(
                $value as $ky => $val)
                     {
                      
                $name explode("_"$ky);
                      if (
                $ky != 'e_id')
                      
                $this->eventArray[$value['e_id']][$name[1]] = $val;
                     }
                    }
                   } 
                So wird das array nun weiterverwendet:

                PHP-Code:
                  public function view()
                  {
                   foreach(
                $this->eventArray as $key => $value)
                    { 
                      print 
                "    <table width=\"100%\" border=\"0\">\n";
                      foreach(
                $value as $subKey => $subVal)
                      {
                        if (
                $subKey == "eventname")
                         print 
                $subVal;
                        elseif (
                $subKey == "flyer"#und so weiter und so fort 
                hier bräucht ich nun sowas:
                PHP-Code:
                if ($subKey == "id")
                         
                $variablezurweiterverwendung $subVal
                aber eben id steht mir hier ja nicht zur Verfügung..

                Kommentar


                • #9
                  Der Sinn der Sache ist: function view, gibt mir eine Liste mit allen aktuellen events aus. Nun hab ich einen link bei jedem event, der bei aktivierung die id als Parameter mitgeben soll.
                  Anhand des parameters wird nun nur dieses eine event angezeigt.

                  Klar könnte ich als Parameter zB eventname mitgeben lassen. Allerdings ist die nicht zwingend Unique. Was dann wohl zu einigen Problemen führen würde ;P

                  Kommentar


                  • #10
                    Ist das Script von dir? Du kickst die Id doch selbst aus dem Array raus. "if ($ky != 'e_id')". Alternativ steht die id auch als $key zur Verfügung.

                    Kommentar


                    • #11
                      nun steht mir in dem array allerdings die id (e_id) nicht zur verfügung..
                      Große Überraschung!
                      if ($ky != 'e_id')

                      Kommentar


                      • #12
                        jo .. wirf das if da raus - dann hast du die e_id als

                        'id' drin stehen (wegen deinem Explode zum $name[1]

                        Kommentar


                        • #13
                          Ja ist es. Anfangs war das mit der Parameter mitgabe jedoch nicht so. Das wurde erst im nachhinein miteingebaut.
                          Wenn ich dich recht verstanden hab, könnte ich das so lösen:
                          PHP-Code:
                          if ($key == "id"#respektive =="e_id"
                                   
                          $variablezurweiterverwendung $value

                          Kommentar


                          • #14
                            Nein. Nachdenken!

                            Kommentar


                            • #15
                              Zitat von eagle275 Beitrag anzeigen
                              jo .. wirf das if da raus
                              was ist an diesen 5 Worten nicht zu verstehen ? du brauchst das if eigentlich überhaupt nicht - musst dir halt nur den Zugriff auf die id überlegen ....

                              Kommentar

                              Lädt...
                              X