Ergebnis 1 bis 7 von 7

Thema: Freundschaftssystem

  1. #1
    Samurai Avatar von Bleistift
    Registriert seit
    20.03.2012
    Alter
    21
    Beiträge
    235
    Danke
    0
    Bekam 4 mal "Danke" in 4 Postings

    Standard Freundschaftssystem

    Hey Leute,

    ich versuche derzeit ein Freundschaftssystem mit MySQL zu basteln ..
    Wenn der USER 1 beim USER 2 auf "Freundschaft" klickt,
    so sollen in die Datenbank bei userone 1 und bei usertw 2 und der status 1 rein.
    Nach der Bestätigung von USER 2 soll der Status auf 2 sein.
    Nun habe ich jedoch ein Problem.
    Ich möchte prüfen ob die Mitglieder bereits befreundet sind.
    Wenn sie bereits befreundet sind sollen neue Freundschaftsanfragen von den gleichen Usern natürlich nicht zulässig sein.
    Ebenso soll der Profilinhalt erst angezeigt werden, sobald USER 1 und USER 2 eine eingetragene Freundschafts mit dem Status 2 führen ..

    Ich habe sogut wie alles versucht was mir dazu einfällt..
    Ich habe es mit
    PHP-Code:
    $slcfriends mysql_query("SELECT COUNT FROM `friends` WHERE `userone`='".$id."' AND `usertwo`='".$userid['id']."' AND `status`='2'"$db);
    $slcswitch mysql_query("SELECT COUNT FROM `friends` WHERE `userone`='".$userid['id']."' AND `usertwo`='".$id."' AND `status`='2'"$db);
    $checkr mysql_fetch_assoc($slcfriends);
    $checks mysql_fetch_assoc($slcswitch);
    if ((
    $checkr != '0') OR ($checks != '0')) {
    echo 
    'profilzeigen / keine neuen möglichen freundeseinladungen';
    }
    else {
    echo 
    'nicht befreundet';

    probiert. Funktioniert nicht.

    warum ich bei den WHERE-Klauseleln die Variablen escaped habe liegt daran,
    wenn ich es nicht getan habe bekam ich eine fehlermeldung das die variablen falsch escaped wurden .. :s

    dann habe ich es auch noch so probiert:
    PHP-Code:
    $slccheck mysql_query("SELECT `userone`, `usertwo` FROM `friends`"$db);
    $check mysql_fetch_assoc($slccheck);
    if ((
    $check['userone'] == $id) AND ($check['usertwo'] == $userid['id']) OR ($check['usertwo'] == $id) AND ($check['userone'] == $userid['id'])) {
             echo 
    'Bereits befreundet.';
    }
    else {
             
    $inserrequest mysql_query("INSERT INTO `friends`(`userone`, `usertwo`, `status`) VALUES ('".$id."', '".$user['id']."', 1)"$db) or die (mysql_error());
             
    header('Location: /./user/index.php?id='.$id.'');
         } 

    Wer kann mir helfen ?
    Auch mysql_num_rows() habe ich nicht ausgelassen und ich habe jeweils alle Varianten durchgeschaut.
    Die Datenbankverbindung stimmt auch und wenn ich mit jemanden befreundet bin und dann nochmal neu einlade
    wird der eintrag nocheinmal vorgenommen oder es steht von vorne rein dort das ich bereits mit dem user befreundet bin.

    Ich weiß nicht mehr weiter :s
    Wäre lieb wenn mir jemand einen kleinen Denkanstoß gibt. . :s
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von Bleistift (18.05.2012 um 21:52 Uhr)


  2. #2
    Bandit
    Gast

    Standard AW: Freundschaftssystem

    Und wenn man einen dritten Freund haben will, gibt es einen userthree? Kann nicht dein Ernst sein, oder? Ich würde sagen, deine DB-Struktur solltest du nochmal gut überdenken

  3. #3
    Samurai
    Themenstarter
    Avatar von Bleistift
    Registriert seit
    20.03.2012
    Alter
    21
    Beiträge
    235
    Danke
    0
    Bekam 4 mal "Danke" in 4 Postings

    Standard AW: Freundschaftssystem

    Ist eigentlich so aufgebaut das das Chema wie folgt weiter läuft
    sagen wir USER 1 ist mit USER 2,3,4 befreundet und USER 2 mit 4,5 würde das so aussehen:

    userone usertwo status
    USER 1 USER 2 2
    USER 1 USER 3 2
    USER 1 USER 4 2
    USER 2 USER 4 2
    USER 2 USER 5 2

    kein `userthree`
    Desswegen will ich ja auch sozusagen mysql_num_rows oder COUNT anwenden mit der WHERE.
    Dachte das erschließt sich o.O


  4. #4
    Bandit
    Gast

    Standard AW: Freundschaftssystem

    PHP-Code:
    $query "Select
                 `status`
                from 
                 `friends`
                where
                  (`userone` = 
    $id_user_one and `usertwo` = $id_user_two)
                 or
                  (`userone` = 
    $id_user_two and `usertwo` = $id_user_one)";
                  
    $result mysql_query($query)
       or die(
    "MySQL-Error: " mysql_error());
       
    if (
    mysql_num_rows($result))
    {
       echo 
    "Status = " mysql_result($result0);
    }
    else
      echo 
    "Noch nicht befreundet"

  5. #5
    Samurai
    Themenstarter
    Avatar von Bleistift
    Registriert seit
    20.03.2012
    Alter
    21
    Beiträge
    235
    Danke
    0
    Bekam 4 mal "Danke" in 4 Postings

    Standard AW: Freundschaftssystem

    Leider genau das gleiche wie bei mir gewesen war.

    Ergebnis: 'Noch nicht befreundet'
    Einträge in der DB: 0


  6. #6
    Bandit
    Gast

    Standard AW: Freundschaftssystem

    Das kann nicht sein!

    Richtig debuggen

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  7. #7
    Samurai
    Themenstarter
    Avatar von Bleistift
    Registriert seit
    20.03.2012
    Alter
    21
    Beiträge
    235
    Danke
    0
    Bekam 4 mal "Danke" in 4 Postings

    Standard AW: Freundschaftssystem

    Gut jetzt klappts.

    Vielen Dank
    Das merk ich mir!


Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •