Mit PHP Datenbank abfragen

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

  • Mit PHP Datenbank abfragen

    Hallo,

    erstmal möchte ich mich dafür entschuldigen, sollte meine Anfrage hier nicht hingehören.

    Ich bin nicht nur hier neu, sondern auch noch ziemlich unerfahren in PHP, mySQL etc.

    Nun zu meinem Problem :

    Mein Ziel ist es, für jeden neuen Benutzer meines tools, das ich gerade schreibe, eine Tabelle anzulegen. Der entscheidende Teil des scriptes :

    $create = "CREATE TABLE '$nick'
    (
    `y_achse` VARCHAR(3),
    `gebaeude_heim` VARCHAR(25),
    `ga1h` VARCHAR(3),
    `ga2h` VARCHAR(3),
    `ga3h` VARCHAR(3),
    `ga4h` VARCHAR(3),
    `gebaeude_neutral` VARCHAR(25),
    `ga1n` VARCHAR(3),
    `gebaeude_zentral` VARCHAR(25),
    `ga1z` VARCHAR(3),
    `ga2z` VARCHAR(3),
    `ga3z` VARCHAR(3),
    `ga4z` VARCHAR(3)
    )";
    $res = mysql_query($create) OR DIE (mysql_error());


    wenn ich mich nun mit nick = test registriere, kommt folgende Fehlermeldung :

    You have an error in your SQL syntax near ''test' ( `y_achse` VARCHAR(3), `gebaeude_heim` VARCHAR(25), ' at line 1

    Seit mittlerweile 3 Stunden versuche ich es nun mit den unmöglichsten Kombinationen, aber es will einfach nicht funktionieren.

    Wo könnte der Fehler liegen ?

  • #2
    apostrophe werden in handumdrehen zu richtigen backticks und du darfst dem forum kurz erklären, warum.
    Code:
    CREATE TABLE `$nick`

    Kommentar


    • #3
      Hmm. Komisch... Wenn ich den Code per Copy & Paste in mySQLFront (Win XP) übernehme, verschluckt er sich an den Umbrüchen zwischen den Felddefinitionen und gibt genau denselben Fehler aus. Wenn ich diese entferne (Bequem geht das in Notepad!), läuft sie aber.

      Kommentar


      • #4
        Vielen Dank Hab das nun geändert von '$nick' nach `$nick` und es geht

        Wundert mich aber ehrlich gesagt und vermutlich bin ich auch deshalb nicht darauf gekommen, weil ich meine Abfragen z.B. so geschrieben habe :

        SELECT email FROM user WHERE nick = '$nick'

        da geht es einwandfrei :/

        Die Umbrüche stören übrigens nicht in meinem Fall, das lag wirklich nur an '' bzw. eben ``

        Was backticks sind - darüber informiere ich mich mal

        Kommentar


        • #5
          informiere dich doch gleich noch darüber, daß man nicht für jeden besucher eine eigene tabelle anlegt.
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            Also das würde mich jetzt auch mal interessieren, was das für einen Sinn machen soll, für jeden Benutzer eine neue Tabelle anzulegen???
            mens agitat molem

            Kommentar


            • #7
              keinen
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                Ob es nun Sinn macht, für jeden Benutzer eine Tabelle anzulegen, weiss ich nicht. Nur sehe ich momentan keine (bzw. nur eine, für mich aber sinnlose) weitere Möglichkeit.

                Es geht darum : Das Ganze soll eine Artefaktverwaltung für ein online-game werden. Bei diesem game hat jeder Spieler 1 Hauptwabe und drei Kolonien, die jeweils aus Heimwabe (217 Felder), Neutralwabe (217 Felder) und Zentralwabe (28 Felder) mit insgesamt 1848 Feldern bestehen. Auf jedem Feld kann ein Gebäude errichtet werden und in jedem Gebäude können bis zu vier Artefakte verankert werden.

                Des weiteren gibt es drei Welten (Rassen). Bei jeder Rasse sehen die Gebäude anders aus und jeder Spieler kann seine Wabe im Prinzip bestücken wie er will.

                Somit ergeben sich unzählige Mögichkeiten, solch eine Wabe zu gestalten. Also hatte ich vor, für jeden Spieler eine Tabelle anzulegen, in der

                1. Nummer des Feldes
                2. Bild des Gebäudes der Heimwabe
                3. erstes Artefakt
                4. zweites Artefakt
                5. drittes Artefakt
                6. viertes Artefakt
                7. Bild des Gebäudes der Neutralwabe (hier kann nur ein Artefakt verankert werden.)
                8. erstes Artefakt
                9. Bild des Gebäudes der Zentralwabe
                10. erstes Artefakt
                11. zweites Artefakt
                12. drittes Artefakt
                13. viertes Artefakt

                Also wollte ich nun für jeden Benutzer eine Tabelle anlegen, die aus 13 Spalten und 217 Reihen besteht.

                Alle weiteren Tabellen sind, mit Ausnahme der Tabelle, die die 210 verschiedenen Artefakte verwaltet, recht klein.

                Ok, nun wisst ihr in etwa, was ich vorhabe. Wie würdet ihr sowas realisieren, wenn nicht in mehreren Tabellen ?

                Sämtliche Daten in eine einzige, riesige Tabelle ?

                PS: Eine Tabelle user gibt es natürlich auch, in der nick, name, passwort, email, rasse usw. eingetragen werden

                Kommentar


                • #9
                  Man sollte vielleicht auch direkt für jeden User eine eigene Page zu machen.

                  Aber jetzt mal im ernst, mach Dich da mal schlau drüber, das ist echt nicht gut wie Du das da vor hast ..
                  Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

                  Kommentar


                  • #10
                    Ok, dass das so nicht die geschickteste Lösung ist, weiss ich ja mittlerweile. Aber..... welche Möglichkeit gibt es denn noch ? Ich meine, nach was soll ich denn in dem Fall suchen ?

                    Mein Problem ist ja, dass ich letztendlich für jeden user mehrere tausend Werte speichern muss :/

                    Einzig die Koordinaten sind bei allen gleich, der Aufbau ist bei jedem anders.

                    Wäre super, wenn mir da jemand entweder sagen könnte, wie man sowas normalerweise realisiert oder aber, nach welches Infos ich suchen sollte.

                    Kommentar


                    • #11
                      Original geschrieben von Tommy75
                      Ok, dass das so nicht die geschickteste Lösung ist, weiss ich ja mittlerweile. Aber..... welche Möglichkeit gibt es denn noch ? Ich meine, nach was soll ich denn in dem Fall suchen ?
                      stichwort "normalisieren" ... auch mal bei google benutzen ... ansonsten hilft noch das sticky hier über JOINS
                      Mein Problem ist ja, dass ich letztendlich für jeden user mehrere tausend Werte speichern muss :/
                      na und? ich hab hier ne counter-tabelle mit knapp 3,8 Mio einträgen (=zeilen). ist für mysql kein grosses problem
                      Kissolino.com

                      Kommentar

                      Lädt...
                      X