Mysql PHP Abfrage

Dieses Thema im Forum "Programmierung" wurde erstellt von mk98killer, 10. November 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. mk98killer
    Offline

    mk98killer

    Registriert seit:
    12. September 2012
    Beiträge:
    41
    Hallo,
    ich hab ein ******* Problem.
    und zwar habe ich alle Datenbanken meines Minecraft Servers verbunden mit eine Mysql Datenbank.
    Nur habe ich das Problem das das "script" funktioniert wenn dort dies steht:
    Code (Text):
    1. ...
    2. $sql = ("SELECT * FROM stats");
    3. ...
    Nur wenn ich dann es so schreibe gehts nicht:
    Code (Text):
    1. $sql = ("SELECT * FROM lb-players");
    Wie kann ich es schreiben das es auch sonder Zeichen wie "-" nimmt?
     
    #1
  2. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Versuchs mal mit:
    Code (Text):
    1. [LEFT][COLOR=#FFFFFF]SELECT * FROM 'lb-players'[/COLOR][/LEFT]
     
    #2
  3. mk98killer
    Offline

    mk98killer

    Registriert seit:
    12. September 2012
    Beiträge:
    41
    Ne

    Ne leider auchnicht.
    Kommt dann die gleiche Fehler Meldung.
     
    #3
  4. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Was für eine Fehlermeldung kommt denn überhaupt?
     
    #4
  5. mk98killer
    Offline

    mk98killer

    Registriert seit:
    12. September 2012
    Beiträge:
    41
    ("Anfrage nicht erfolgreich")

    Code (Text):
    1. ("Anfrage nicht erfolgreich")
    Wenn ich extra vorher einen Fehler einbaue dann kommt die Meldung für den vorherigen "die".
    Wenn ich "lb-players" durch "stats" ersetzte dann funktioniert alles einwandfrei.
     
    #5
  6. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    -.-

    Du sollst den mysql error Posten, nicht die Fehlermeldung deines Programmes.
     
    #6
  7. mk98killer
    Offline

    mk98killer

    Registriert seit:
    12. September 2012
    Beiträge:
    41
    Mysql gibt aber keine Error raus sondern nur "Anfrage nicht erfolgreich" also die Error Meldung.
    Das problem kann nur das "-" von "lb-players" sein, da wenn ich es durch "stats" ersetze dann geht es ja.

    Wenn ich eine TEST Tabbelle erstelle mit namen "test-test" und ein paar einträgen dann funktioniert es auch nicht.
     
    #7
  8. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Hast du das überhaupt selber programmiert?
    Ich glaube nicht, denn wenn du PHP könntest wüsstest du wie du dir den mysql error ausgeben lässt.
     
    #8
  9. mk98killer
    Offline

    mk98killer

    Registriert seit:
    12. September 2012
    Beiträge:
    41
    Php

    Nein dieser Code ist nicht meins habe es umgebaut das es die Mysql meines Servers abfragt.

    PHP und HTML kenne ich mich ein bisschen aus.

    Aber Recht hast ich weiß nicht wie ich das mache das PHP den Error ausgibt.

    Normal gibt er sowas aus wenn ein fehler besteht mit angaben wo ein Fehler ist usw. (hier aber nicht)
    Code (Text):
    1. Warning: include(Stats_move.hp): failed to open stream: No such file or directory in
     
    #9
  10. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
  11. Ragehoch2
    Offline

    Ragehoch2

    Wenn du ausschließen kannst, dass es die Tabelle nicht gibt poste mal mehr Code. Nich nur dein Query
     
    #11
  12. mk98killer
    Offline

    mk98killer

    Registriert seit:
    12. September 2012
    Beiträge:
    41
    Also habe wie Benni gesagt mal den Error ausgeben lassen.
    Raus kam:
    Code (Text):
    1. 0: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-players' at line 1
    Dann habe ich auchnochmal geguckt das die Tabbelle wirkilch auch besteht.
    Code (Text):
    1. lb-players
    und habe es auchnochmal anhand des LogBlock Mysql Schemas überprüft.

    Code (Text):
    1.  
    2.   CREATE TABLE `lb-players` (    playerid SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,    playername varchar(32) NOT NULL,    firstlogin DATETIME NOT NULL,    lastlogin DATETIME NOT NULL,    onlinetime TIME NOT NULL,    ip varchar(255) NOT NULL,    PRIMARY KEY (playerid),    UNIQUE (playername) );
    Leider kann man das Schema nicht verändern sonst hätte ich einfach Logblock verändert und neugestartet dann wäre es gelöst.

    Das komisch ist auch das er anscheinend "-" nicht nimmt aber "_" schon.
     
    #12
  13. waoler
    Offline

    waoler

    Registriert seit:
    31. März 2012
    Beiträge:
    72
    Ort:
    Auf dem Mond
    Minecraft:
    waoler
    Versuche deine Anfrage so zu verändern:

    PHP:
    1. $sql = ("SELECT * FROM `lb-players`");

    Das sollte dann funktionieren ;-D

    Melde dich nochmal wenn dus versucht hast!

    MfG
     
    #13
  14. Du kannst auch einfach \- machen. Sollte auch gehen. Ansonsten benutz PHPMyAdmin, der zeigt dir Queries an.
     
    #14
  15. FireCraft
    Offline

    FireCraft

    Registriert seit:
    3. April 2012
    Beiträge:
    310
    -.-

    funktunirt dasP
    erstelle eine Tabele mit
    BenutzerName
    PW

    BenutzerName = TEST
    PW = TEST

    MySQL_USER = Dein MySQL_Name
    MySQL_PW = Dein MySQL_PW

    wenn das klapt machst du was falsch
    es tut mir leid das das eine Login-Datei ist, wenn du php kannst weist du was du alles tun musst



    Code (Text):
    1.  
    2. <?php
    3. $BenutzerName = TEST;
    4. $PW = TEST;
    5.  
    6.  
    7. $connect = mysql_connect("localhost","MySQL_USER","MySQL_PW");
    8. mysql_SELECT_db("DATENBANK");
    9. $query = mysql_query("SELECT * FROM TABELE WHERE BenutzerName='$BenutzerName'");
    10. $num = mysql_num_rows($query);
    11.  
    12.  
    13.  
    14.  
    15. if ($num!=0)
    16. {
    17. WHILE ($row = mysql_fetch_assoc($query))
    18. {
    19.  
    20.  
    21. $dbbenutzer = $row['BenutzerName'];
    22. $dbpasswort = $row['PW'];
    23.  
    24.  
    25. }
    26. if ($dbbenutzer==$BenutzerName AND $dbpasswort==$PW)
    27. {
    28. echo "Willkomen '$BenutzerName' auf SkyFire.de";
    29. }
    30. else
    31. echo "Fail to Login =((Datenbank fehler)";
    32. }
    33. else
    34. echo"Der BenutzerName '$BenutzerName' oder das Passwort '******' ist falsch(Datenbank funktunirt)";
    35. ?>
    36.  
    37.  

    mach mall das 'TABELEN-NAME' diese ' weg
     
    #15
  16. mk98killer
    Offline

    mk98killer

    Registriert seit:
    12. September 2012
    Beiträge:
    41
    DU willst testen ob ein script auf die Datenbank zugreifen kann?
    Wenn ich meine Datenbank abfrage mit dem script was ich auch für Tabbelle "lb-players" benutze nur mit der Tabelle "stats" dann funktionierts.
    Wenn ich ein "-" in den Tabellen namen mache dann gehts nicht,aber "_" geht.
    Liegt nicht an der Datenbank zugriff geht.
     
    #16
  17. Pappi
    Offline

    Pappi Gesperrt

    Registriert seit:
    28. Oktober 2012
    Beiträge:
    141
    Ort:
    H.a.S/NRW/Germany
    Minecraft:
    Pappi / PapaHarni
    Hat jemand mal dran gedacht ob die Spalten auch die richtigen Bezeichnungen haben?

    lb-players ist doch von LogBlock und ist die stats auch von LogBlock für die gleiche Funktion gedacht gewesen? Wenn nicht können gut und gerne auch die Spalten ganz anders heißen. Das sollte man auch immer beachten. Schliesßlich kann man mit mysql_fetch_array() sowie mysql_fetch_row() arbeiten. So muss die ausgabe entweder mit dem Spaltennamen lauten oder eben doch nur Nummerisch von 0 biw (Spaltenanzahl der Tabelle).
     
    #17
Status des Themas:
Es sind keine weiteren Antworten möglich.