PHP | Problem bei der Verbindung zur MYSQL-Datenbank | + weiteres Problem

  • Guten Tag,


    ich bin gerade dabei, ein kleines Control Panel zu scripten. Da ich noch nicht viel Erfahrung habe mit dem Scripten, schaue
    ich mir sehr viele Tutorials an, und habe neben mir zwei Bücher mit jeweils 500 Seiten liegen, damit ich eigentlich
    meine Probleme immer selber lösen kann. Doch leider bin ich zu doof, dieses Problem zu lösen. Desweiteren, werde ich am
    Ende dieses Threads noch eine weitere Frage stellen, denn bei dieser Frage habe ich auch ein Problem.
    Ich fange erstmal mit dem Fehlercode an:


    PHP
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/customers/webs/ni71250_1/php/fraktionenabfrage/index.php on line 8


    Hier kommt jetzt das .php Dokument:



    Es ist nur der Anfang, also ihr müsst mir jetzt nicht sagen, dass ich "?>" vergessen habe. Theoretisch müsste, wenn ich mich nicht
    irre, da jetzt die Anzahl der FBI Member stehen und der aktuelle Leader, diese Daten wurden in der MYSQL- Datenbank festgelegt.
    ("fbianzahldermember = 3" | "fbileader" = Chris_Parker" | Nur damit Ihr wisst, was da eigentlich angezeigt werden muss.)


    Mein zweites Problem / Frage:



    Das ist jetzt sozusagen der zweite Teil der .php. Wie ihr vll. in Zeile 7 entdeckt, soll da ja eigentlich der aktuelle Leader stehen, aber dies
    ist nicht so, stattdessen steht da - '' - . Da wo "//TESTICON" steht, soll eigentlich ein Icon erscheinen, welches ich aber noch nicht designt habe,
    deswegen habe ich mir da einfach mal einen Platzhalter sozusagen erschaffen.
    Ich weiß nicht warum nicht der aktuelle Leader da angezeigt wird. Ihr seht jetzt nochmal einen Screen:



    Ich hoffe mir kann jemand helfen! Bei Fragen könnt ihr hier einfach fragen.
    Ich hoffe, das ist der richtige Bereich, wenn nicht tut es mir schrecklich leid, und ich hoffe
    ein Mod ist dann so nett, und moved diesen Thread. Wenn es so ist: Danke.
    Desweiteren Danke! Das Du den Thread bis hier hin gelesen hast. Ich hoffe auf
    eine "positive" Antwort, welche mir weiterhelfen kann.


    Kontakt:


    Skype: germanmeincraft
    ICQ: 603771492

  • 1. Schau dir deine MySQL Query mal genauer an, da ist ein Punkt zuviel

    Das verstehe ich nicht ganz, könntest du mir freundlicherweiße dies ein bisschen genauer erklären, was ich jetzt machen muss?
    Tut mir leid, aber ich bin sehr neu in "diesem Geschäft".
    SSL:



    //Hat das etwas mit phpMyAdmin zu tun? :>

    Einmal editiert, zuletzt von Chris_Parker () aus folgendem Grund: Frage hinzugefügt

  • $resultat = mysql_query ($abfrage) or die(mysql_error())

    UzaK: Vielen Dank für deine Antwort. Doch leider muss ich feststellen, dass jetzt ein weiterer Fehlercode aufgetaucht ist, und
    die ganze Website gar nicht mehr funktioniert.


    Fehlercode:


    PHP
    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 '.' at line 1


    Die .php:



    Achso und die Datenbank heißt: "fbi.frak." Also wirklich, der Punkt ist dahinter. Also eigentlich kein Fehler, oder darf kein Punkt am Ende sein?

  • PHP
    $verbindung = mysql_connect("localhost", "DATENBANKNAME", "PASSWORT");


    ^ Das ist für mich noch etwas fragwürdig - ist dein Benutzername wirklich genau der gleiche wie dein Datenbankname? Ansonsten wäre nämlich "DATENBANKNAME" durch deinen MySQL-Nutzername zu ersetzen. ;)

    Ich bin Dittis Signatur.

  • PHP
    $verbindung = mysql_connect("localhost", "DATENBANKNAME", "PASSWORT");


    ^ Das ist für mich noch etwas fragwürdig - ist dein Benutzername wirklich genau der gleiche wie dein Datenbankname? Ansonsten wäre nämlich "DATENBANKNAME" durch deinen MySQL-Nutzername zu ersetzen. ;)


    Ja, da mein Webspace Hoster, dies nur so zur Verfügung stellt, dass der Datenbankname auch der Nutzername der Datenbank ist.

  • PHP
    $verbindung = mysql_connect("localhost", "DATENBANKNAME", "PASSWORT");


    ^ Das ist für mich noch etwas fragwürdig - ist dein Benutzername wirklich genau der gleiche wie dein Datenbankname? Ansonsten wäre nämlich "DATENBANKNAME" durch deinen MySQL-Nutzername zu ersetzen. ;)


    Ich glaube er hat die DB-Verbindung einfach geändert fürs Forum.




    Also lieber Chris Parker,



    er sagt das du ein Fehler in der SQL Schreibweise hast, ich habe es ebend schnell probiert und bei mir zickt mysql auch rum wenn ich zu viele Punkte im Tabellen namen habe. Deswegen würde ich einfach wörter mit unterstrichen trennen.



    sprich statt :


    fbi.frak.


    einfach


    fbi_frak

    Do you have code that doesn't work, but still compiles without errors?


    [

  • Okay, dann jetzt noch eine Frage:

    PHP
    $abfrage = 'SELECT * FROM fbi.frak';


    Versuchst du damit das Feld fbi in der Tabelle frak anzusteuern?


    Wenn ja, müsstest du eher

    PHP
    $abfrage = 'SELECT fbi FROM frak';


    schreiben.


    Ist frak aber der Datenbankname und fbi der Tabellenname, solltest du

    PHP
    $abfrage = 'SELECT * FROM fbi';


    schreiben, da du die Datenbank ja via mysql_select_db() auswählst.

    Ich bin Dittis Signatur.


  • Vielen Dank! Es klappt! Vielen vielen dank! Vll. kannst du mir noch bei meinem zweiten Problem helfen?


  • Wenn du etwas in den doppelten Quotes (" ") ausgibst, kannst du Variablen direkt in den Quelltext schreiben, nur bei einfachen Quotes (' ') musst du erst wieder raus.


    Edit: Mh, sollte aber trotzdem gehen. Mal versucht, einfach nur $daten->fbileader auszugeben?

    Ich bin Dittis Signatur.

  • Wenn du etwas in den doppelten Quotes (" ") ausgibst, kannst du Variablen direkt in den Quelltext schreiben, nur bei einfachen Quotes (' ') musst du erst wieder raus.


    Edit: Mh, sollte aber trotzdem gehen. Mal versucht, einfach nur $daten->fbileader auszugeben?



    Ja, aber dann kommt da nur ein "weißes" Feld, also eigentlich kommt da gar nichts... :>



    Ich glaube das Problem liegt daran das die 2 Augabe (echo) nicht mehr in der While schleife ist.


    Glaube ich auch, aber da ich sehr neu bin, kann ich leider, bzw. ich weiß nicht wie ich die while - Schleife beende? Kann mir
    jemand da die Antwort sagen?

  • Kein Ding,



    du beendest eine schleife mit der 2 geschweifen klammer, sprich



    PHP
    While ($row = mysql_fetch_object($randomvariabel)
    {
        echo $row->random_table;
    }


    wenn du hier jz was schreibst wird nicht das Datenbank Feld ausgegeben



    €dit 1 : Formatierung

    Do you have code that doesn't work, but still compiles without errors?


    [


  • PHP
    while($daten = mysql_fetch_object ($resultat))  {
               echo "Anzahl der Member: "."$daten->fbianzahldermember"."</br> aktueller Leader: "."$daten->fbileader"."</br>";
            }


    Sry, aber da sind schon die Klammern, und es funktioniert trotzdem nicht. Mache ich was falsch? :>

  • Mal ein wenig Offtopic: Würde es mysql_fetch_assoc nicht auch tun? Also anstatt mysql_fetch_object. Ist eventuell etwas leichter verständlich und funktioniert, wenn ich mich nicht irre, auch mit foreach und das verbraucht insgesamt weniger Speicher und Zeit (wenn ich richtig liege).


    Edit: Du musst den 2. echo-Aufruf mit dem $daten->fbileader mit in die while-Schleife reinnehmen.



    also.

    Ich bin Dittis Signatur.

  • Mal ein wenig Offtopic: Würde es mysql_fetch_assoc nicht auch tun? Also anstatt mysql_fetch_object. Ist eventuell etwas leichter verständlich und funktioniert, wenn ich mich nicht irre, auch mit foreach und das verbraucht insgesamt weniger Speicher und Zeit (wenn ich richtig liege).


    Wie gesagt: Ich bin neu, und freue mich über Verbesserungsvorschläge. Wenn du mir freundlicherweiße sagen würdest (vll. per Beispiel an meiner .php) wie ich das
    richtig einfüge, wäre ich sehr froh darüber.
    Gibt es dabei einen Unterschied? bzw. ist dieser groß?



    //aha! ;D so also :D

  • Wie gesagt: Ich bin neu, und freue mich über Verbesserungsvorschläge. Wenn du mir freundlicherweiße sagen würdest (vll. per Beispiel an meiner .php) wie ich das
    richtig einfüge, wäre ich sehr froh darüber.
    Gibt es dabei einen Unterschied? bzw. ist dieser groß?


    Weißt du denn schon, wie Arrays funktionieren?
    Objekte sind in der Gesamtheit etwas schwieriger zu verstehen und man sollte diese auch erst etwas später verwenden, da sie hier etwas overpowered sind. ^^

    Ich bin Dittis Signatur.

  • Mal ein wenig Offtopic: Würde es mysql_fetch_assoc nicht auch tun? Also anstatt mysql_fetch_object. Ist eventuell etwas leichter verständlich und funktioniert, wenn ich mich nicht irre, auch mit foreach und das verbraucht insgesamt weniger Speicher und Zeit (wenn ich richtig liege).


    Edit: Du musst den 2. echo-Aufruf mit dem $daten->fbileader mit in die while-Schleife reinnehmen.


    Ja das ist aber schon die fortgeschrittene Variante, ich fetche meine queries nur noch in arrays:



    PHP
    $query = mysql_query("SELECT rank,id,user,dies,jenes,bla FROM accounts ") or die (mysql_error());
    $result = mysql_fetch_array($query, MYSQL_ASSOC);

    Do you have code that doesn't work, but still compiles without errors?


    [


  • Weißt du denn schon, wie Arrays funktionieren?
    Objekte sind in der Gesamtheit etwas schwieriger zu verstehen und man sollte diese auch erst etwas später verwenden, da sie hier etwas overpowered sind. ^^

    Nein weiß ich nicht.


    So, ich habe das jetzt hier mal, wie oben beschrieben aufgeführt:
    Aber:


    Zitat

    Parse error: syntax error, unexpected '}', expecting ',' or ';' in /var/customers/webs/ni71250_1/php/fraktionenabfrage/index.php on line 28