kostenloser Webspace werbefrei: lima-city


Datenbank auslesen mit WHERE

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    hi
    ich lese meine Datenbank aus. Jetzt möchte ich nur die Inhalte aus der Spalte massage anzeigen lassen, bei denen der inhalt der Spalte to mit deem Namen des angemeldeten Users übereinstimmt.

    Hier mal mein php-script:
    $abfrage = "SELECT * FROM nachrichten WHERE to = '$user' ";
    	echo $abfrage;
         $ergebnis = mysql_query($abfrage);
         echo $ergebnis; 
         while($row = mysql_fetch_object($ergebnis))
           {
              echo "$row->from, $row->to, $row->massage, $row->time <br>";
           }


    Doch da kommt immer diese Meldung:
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\FireChat\massages.php on line 17


    die echi befehle hab ich nur rein gemacht, um die Variablen zu überprüfen. Komischerweise ist $ergebniss leer. Ich versteh da grad garnix mehr, weil ichs immer so mache und weils jetzt aufeinmal nichtmehr klappt :( Hoffe sehr , dass ihr mir da helfen könnt!
    MVG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Versuchs mal so:
    $abfrage = "SELECT * FROM nachrichten WHERE to = '" . $user . "' ";
    	echo $abfrage;
         $ergebnis = mysql_query($abfrage);
         echo $ergebnis; 
         while($row = mysql_fetch_object($ergebnis))
           {
              echo "$row->from, $row->to, $row->massage, $row->time <br>";
           }
  4. Bist du dir sicher, dass die Spalte "massage" heisst und nicht "message"?
  5. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Danke erstmal, aber leider hats nix gebracht... (ja alle massages müssen ein message werden aber auch wenn ich das endere ändert sich nix an der Fehlermeldung!) MVG
  6. @programtools
    Danke erstmal, aber leider hats nix gebracht... (ja alle massages müssen ein message werden aber auch wenn ich das endere ändert sich nix an der Fehlermeldung!) MVG
    nochmals fehlermeldung lesen ;o)
    um mal herauszufinden was dahinter steckt, tue mal das:
    <?php
    
    $query = "SELECT * FROM nachrichten WHERE to='$user'";
    if ( false === ($result = mysql_query ($query)) ) exit ("<pre><strong>ERROR: ".mysql_errno ()."\n".mysql_error ()); 
    while ( $row = mysql_fetch_object ($result) ) {
      echo "$row->from, $row->to, $row->massage, $row->time <br>";
    }
    
    ?>
    in der zeile 'if ( false === ($ ...' erfährst du was das für ein fehler ist.
    dein fehler ist typisch für alle, die es nicht prüfen, ob mysql_query () false zurückgibt. sollte man sich angewöhnen ;o) statt exit kannst du natürlich geeignete reaktion wählen (ich kenne dein prog nicht)
  7. Vermutlich läuft dein mysql_query ins leere!

    Versuch mal folgende Abfrage:

    $abfrage = "SELECT * FROM nachrichten WHERE to LIKE '$user'";


    Du kannst dich aber auch mit PHPMyAdmin anmelden und unter SQL deinen SELECT Befehl reinkopieren um zu sehen ob da auch was ausgegeben wird! Natürlich darfst du hier keine Variable verwenden!
    Probier auch mal ein "echo $abfrage" umzu sehen ob die Variable auch richtig verarbeitet wird! (diese kannst du dann auch im phpmyadmin eingeben)

    greetz
  8. Hast du schon geprüft, ob du eine korrekte Verbindung zur DB hast? Bei mysql_connect und mysql_select_db treten keine Fehler auf?

    $connection = mysql_connect($dbhost, $dbuser, $dbpwd);
    
    if (!$connection)
    {
    	echo "Keine Verbindung möglich!":
    } // if
    elseif (!mysql_select_db($dbname))
    {
    	echo "Datenbank nicht gefunden!";
    } // elseif
    else
    {
    	echo "Verbindung erfolgreich!";
    } // else


    PS: Und die Variable $user, die du in der Abfrage verwendest, ist auch bestimmt nicht leer?

    Beitrag zuletzt geändert: 17.2.2010 13:16:49 von wagnerm
  9. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    also vielen Dank erstmal, das mit dem Fehler finden hat so in etwa geklappt, doch hilft mir dass nicht weiter :( er sagt mir nähmlich immer folgendes:

    ERROR: 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 'to LIKE 'username'' at line 1


    Jetzt dachte ich, dass es ev auch daran liegen könnte, dass die Tabelle leer ist. Als ich dann ein script geschrieben habe um sie zu füllen, blieb die Seite weis. Ich dachte dann zuerst 'cool keine Fehler drin' da ja sonst ne Fehlermeldung gekommen währe aber leider hat sich meine Tabelle auch nicht gefüllt.

    Hier mal das script zum reinschreiben, was doch eig immer geklappt hat:

    <?php
    include('db_connect.php');
    
    $eintrag = "INSERT INTO nachrichten
    (from, to, massage, time)
    VALUES
    ('peter', 'fritz', 'Hey und alles klar??', '1503')";
    
    ?>


    Ich verstehs einfach nichtmehr. Hoffe ihr könnt mich wieder auf die Bahn bringen! MVG
  10. Kann es sein, dass das Wörtchen "to" ein Schlüsselwort bei mysql oder sonstwo ist und deshalb der Befehl nicht verarbeitet wird?
  11. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    SUPER!
    Genau das wars! to ist irgendein Befehl oder Schlüsselwort in MySQL und daher konnte es nicht genutzt werden. habs jetzt geändert. Leider klappt das mit dem Füllen aber trotzdem nicht ?!?
    Also vielen vielen Dank an euch alle, die mir geholfen haben!

    EDIT: Sry ich muss das natürlich auch noch eintragen lassen... Ich hatte nur die Informationen in einer Variable gespeicher, ohne diese abzuschicken. Also hat sich alles dank eurer großartigen Hilfe geklärt!!!

    MVG

    Beitrag zuletzt geändert: 17.2.2010 17:34:06 von programtools
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!