Datenbank anlegen und Tabelle erstellen

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

  • Datenbank anlegen und Tabelle erstellen

    Hallo, habe ein Problem, und zwar erstelle ich in einer Funktion eine Datenbank (mySQL), und rufe anschließend eine Funktion auf in der die erste Tabelle angelegt wird.

    Die Datenbank legt er an aber die Tabelle nicht.
    Rufe ich erneut beide Funktionen auf(die datenbank ist dann ja schon vorhanden), legt er die Tabelle an.

    Ich hättet das aber gerne in einem Schritt, woran kann das liegen ?
    Muss die Datenbank zwischenzeitlich erst geschlossen werden oder sowas in der Art ?

    mfg Paranoia

  • #2
    1. gehört datenbank-gedöns auch dahin, wo datenbank drüber steht (auch wenn da nur SQL ist) .....

    *VERSCHIEB*

    2. poste mal das was du hast.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      achso danke, dachte das wäre jetzt eher ein PHP-Problem

      PHP-Code:
          createDatabase();
          
      createTables();

      function 
      createDatabase()
      {
          global 
      $conn;

          
      $sel mysql_select_db("myDataBase"$conn);

          if(
      $sel) {
              echo 
      "Datenbank schon vorhanden";
              return;
          }

          
      $result mysql_create_db("myDataBase"$conn);
          if(
      $result)
              echo 
      "Datenbank erfolgreich angelegt";
          else
              echo 
      "Anlegen der Datenbank fehlgeschlagen !";
      }

      function 
      createTables()
      {
          global 
      $conn;
          
          
      $select "CREATE TABLE 'kunden' ('id' INT NOT NULL AUTO_INCREMENT ,
      'nname' VARCHAR( 25 ) NOT NULL ,
      'vname' VARCHAR( 25 ) NOT NULL ,
      'titel' VARCHAR( 8 ) NOT NULL ,
      'firma' INT NOT NULL ,
      PRIMARY KEY ( 'id' ) ,
      INDEX ( 'nname' ))"
      ;

          
      $result mysql_query($select$conn);
          if(
      $result)
              echo 
      "Tabelle erfolgreich angelegt";
          else
              echo 
      "Fehler beim Anlegen der Tabelle";

      ************************************
      also tabelle wird erst angelegt wenn ich die beiden funktionen erneut aufrufe


      EDIT:
      php.tags by Abraxax

      Kommentar


      • #4
        erst einmal .... hier im forum gibt es php.tags, um den code besser lesen zu können. nutze diese bitte auch.

        nun zu deinem problem ...

        ich nehme an, dass die verbindung zur DB irgendwo vorher erfolgt....

        eine funktion sollte auch immer was zurückgeben..... auch wenn es nur true oder false ist.

        und dann .... wenn die database noch nicht vorhanden ist, und du eine neue anlegst, warum selectierst du diese nach dem anlegen dann nciht?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          hmm nun legt er die Tabelle auch net beim zweiten Durchlauf des Skriptes an, dabei hab ich eigentlich nur die funktion zum Tabelle-erstellen etwas formatiert. Da muss also auch noch ein Bug drin sein, mist

          Kommentar


          • #6
            hast du mal meine anregungen umgesetzt?

            glaueb ich nicht, wenn man schon nach einer minute antworten kann....
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Danke das mit dem Code mach ich nächstes Mal.

              Stimmt ich wähle nach dem Anlegen ja keine Datenbank aus, deshalb weiß er wahrscheinlich nicht wo er die Tabelle anlegen soll ...


              Vielen Dank

              Kommentar

              Lädt...
              X