php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.03.2010, 22:32  
Neuer Benutzer
 
Registriert seit: 27.02.2010
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Kidstorm befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Buddyliste

Hallo PHP Forum, ich beschäftige mich mit PHP häufig und arbeite ständig an meiner hp nur irgendwie bleib ich bei der Buddyliste hängen. und ne buddyliste wäre schon was feines

Ich wollte nehmlich ne Freundesliste machen in einer Community ich hab das momentan so aufgebaut:

Ich besitze 1 Tabelle die Buddyliste und 3 Spalten user_id, friend_id und status
user id ist klar der jenige der eingeloggt ist also (ich) friend id ist der dem ich den Freundesantrag schicke und status ist halt das ob er annimmt oder ablehnt. wenn er annimt wird das auf 1 gemacht und wenn er ablehnt auf 2 wenn das noch offen ist ist klar 0 ...

Ich hoffe der Aufbau ist richtig nun zu meinem Problem:

ich übergebe die ID mittels $_GET .. also an die Url oben

PHP-Code:
<?php
//Variablen
$id $_GET['id'];
$myusername $_SESSION['username'];
$result mysql_query("SELECT * FROM users WHERE id='$id'") OR die(mysql_error()); 
$row mysql_fetch_object ($result);
$username $row->username;
$check mysql_query("SELECT * FROM buddyliste WHERE user_id='$myusername'");
$row mysql_fetch_object ($check);
$status $row->status;

$user_id $row->user_id;
$friend_id $row->friend_id;

if (
$myusername&&$username&&$status)
 {
  echo 
"Sorry Sie haben schon einen Freundesantrag gemacht";
 }
  elseif (
$myusername!==$myusername)
 {
  echo 
"Sorry aber du kannst dich nicht selber als Freund hinzufügen";
 }
  elseif (
$status=0)
 {
  echo 
"Sie haben schon ein Freundesantrag gesendet, warten Sie bis er/sie es angenommen hat";
 }
  elseif (
$status==1)
 {
  echo 
"Ihr seid schon miteinander befreundet";
 }
 else
 {
 echo 
"ein Freundesantrag wird versendet Bitte warten sie!";
 
$queryreg mysql_query("
        
        INSERT INTO buddyliste VALUES ('$myusername', '$username','0')
        
 "
);
 }
?>
Mein Problem ist wenn ich ein freundesantrag mache.. macht er es nochmal doppelt in der datenbank ist es sinnvoll danach mit update zu arbeiten ich hab mom kein plan.. wie ich das angehen soll^^

ich hoffe ihr könnt mir auf die sprünge helfen ..

greetz
Kidstorm ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.03.2010, 22:45  
Neuer Benutzer
 
Registriert seit: 14.03.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
truetopia befindet sich auf einem aufstrebenden Ast
Standard

Ich weiß nicht so ganz ob ich dein Problem ganz begriffen habe:

Wann wird ein Eintrag doppelt angelegt?
Ich hab das in etwa so verstanden, dass die ganzen User ja irgendwo in deiner DB existieren und pro Anfrage gibt es ein Problem, weil jemand der des einen Buddy ist (Status 1) ja des eventuell bei jemand anderem einen Anderen Status haben kann. Ist das in etwa dein Grundproblem?

Oder hilf mir nochmal auf die Sprünge =)

lg
truetopia
truetopia ist offline  
Alt 14.03.2010, 22:51  
Neuer Benutzer
 
Registriert seit: 27.02.2010
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Kidstorm befindet sich auf einem aufstrebenden Ast
Standard

nunja
wenn ich jetzt kidstorm heiße und ich mach ein freundesantrag zuu DarkPeter oder so klappt das auch nur wenn ich nochmal da druaf klicke exestiert in der datenbank das gleiche das heißt

user_id | friends_id | status
kidstorm | darkpeter | 0
kidstorm | darkpeter | 0

wobei 2 tabellen quatsch sind ich brauch ja nur eine und der statu ließt ja nur das aus wie akteptiert oder abgelehnt oder freundesantrag offen ..
mir ist das ein rätsel wie ich das angehen soll..^^

lg kidstorm
Kidstorm ist offline  
Alt 15.03.2010, 00:15  
Neuer Benutzer
 
Registriert seit: 14.03.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
truetopia befindet sich auf einem aufstrebenden Ast
Standard

Hast du mal versucht eventuell die Felder in etwa so zu aufzufassen:

Requesting User | Requestet User | Request Status
kidstorm darkpeter 0

und dann abzufragen ob bereits eine Request besteht
WHERE requesting_user == 'kidstorm'
AND requested_user == 'darkpeter'

Dann musst du nur noch abfragen ob der Status 0,1 oder 2 ist und kannst dementsprechend ausgeben ob die Anfrage noch läuft, bereits angenommen ist oder ausgeschlagen wurde.

Nur so als Vorschlag.

lg
truetopia
truetopia ist offline  
Alt 15.03.2010, 00:48  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 682
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php
//Variablen
$id $_GET['id'];
$myusername $_SESSION['username'];
$result mysql_query("SELECT * FROM users WHERE id='$id'") OR die(mysql_error()); 
$row mysql_fetch_object ($result);
$username $row->username;
$check mysql_query("SELECT * FROM buddyliste WHERE user_id='$myusername'");
$row mysql_fetch_object ($check);
$status $row->status;

$user_id $row->user_id;
$friend_id $row->friend_id;

if (
$myusername&&$username&&$status)
 {
  echo 
"Sorry Sie haben schon einen Freundesantrag gemacht";
 }
  elseif (
$myusername!==$myusername)
 {
  echo 
"Sorry aber du kannst dich nicht selber als Freund hinzufügen";
 }
  elseif (
$status=0)
!!-------------^


 {
  echo 
"Sie haben schon ein Freundesantrag gesendet, warten Sie bis er/sie es angenommen hat";
 }
  elseif (
$status==1)
 {
  echo 
"Ihr seid schon miteinander befreundet";
 }
 else
 {
 echo 
"ein Freundesantrag wird versendet Bitte warten sie!";
 
$queryreg mysql_query("
        
        INSERT INTO buddyliste VALUES ('$myusername', '$username','0')
        
 "
);
 }
?>
die komplette If else-Konstruktion läßt zu wünschen übrig.
if ($status) gibt imho true zurück, aber auch, falls $status = 0 ist ?
zum zweiten siehe !!-----
Harry_X ist gerade online  
Alt 15.03.2010, 01:03  
Neuer Benutzer
 
Registriert seit: 27.02.2010
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Kidstorm befindet sich auf einem aufstrebenden Ast
Standard

Naja zumindest hab ich jetzt das so umgeändert

PHP-Code:
<?php
//Variablen
$id $_GET['id'];
$myusername $_SESSION['username'];
$result mysql_query("SELECT * FROM users WHERE id='$id'") OR die(mysql_error()); 
$row mysql_fetch_object ($result);
$username $row->username;
$check mysql_query("SELECT * FROM buddyliste WHERE user_id='$myusername'");
$row mysql_fetch_object ($check);
$status $row->status;

$user_id $row->user_id;
$friend_id $row->friend_id;

if (
$myusername&&$username&&$status)
 {
  echo 
"Sorry Sie haben schon einen Freundesantrag gemacht";
 }
  elseif (
$myusername!==$myusername)
 {
  echo 
"Sorry aber du kannst dich nicht selber als Freund hinzufügen";
 }
  elseif (
$status=='0')
 {
  echo 
"Sie haben schon ein Freundesantrag gesendet, warten Sie bis er/sie es angenommen hat";
 }
  elseif (
$status==1)
 {
  echo 
"Ihr seid schon miteinander befreundet";
 }
 else
 {
 echo 
"ein Freundesantrag wird versendet Bitte warten sie!";
 
$queryreg mysql_query("
        
        INSERT INTO buddyliste VALUES ('$myusername', '$username','0')
        
 "
);
 }
?>
Ich habe grad ein Freundesantrag an mich gemacht soweit so gut er hat ein eintrag erstellt dann der nächste versuch dann kam diese ausgabe: Sie haben schon ein Freundesantrag gesendet, warten Sie bis er/sie es angenommen hat ..

schonmal erfolgreich nu ich denke ich muss ein wenig mit der if else strukturierung arbeiten
Kidstorm ist offline  
Alt 15.03.2010, 01:05  
Neuer Benutzer
 
Registriert seit: 27.02.2010
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Kidstorm befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kidstorm Beitrag anzeigen
Naja zumindest hab ich jetzt das so umgeändert

PHP-Code:
<?php
  
elseif ($status=='0')
 {
  echo 
"Sie haben schon ein Freundesantrag gesendet, warten Sie bis er/sie es angenommen hat";
 }
  elseif (
$status==1)
 {
  echo 
"Ihr seid schon miteinander befreundet";
 }
 else
 {
 echo 
"ein Freundesantrag wird versendet Bitte warten sie!";
 
$queryreg mysql_query("
        
        INSERT INTO buddyliste VALUES ('$myusername', '$username','0')
        
 "
);
 }
?>
Ich habe grad ein Freundesantrag an mich gemacht soweit so gut er hat ein eintrag erstellt dann der nächste versuch dann kam diese ausgabe: Sie haben schon ein Freundesantrag gesendet, warten Sie bis er/sie es angenommen hat ..

schonmal erfolgreich nu ich denke ich muss ein wenig mit der if else strukturierung arbeiten
Kidstorm ist offline  
Alt 15.03.2010, 02:05  
Neuer Benutzer
 
Registriert seit: 27.02.2010
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Kidstorm befindet sich auf einem aufstrebenden Ast
Standard

Ich hab ein Wenig rumgebastelt ... ich denke nu funktioniert es vielleicht noch nich einband frei aber ich hab schon folgendes versucht: Freundesantrag an mir: geklappt, danach nochmal freundesantrag an mir .. Post offen .. der user überprüft.. danach hab ich ein andern user freundesantrag gemacht .. geklappt^^ und danach nochma und überprüft anscheinend klappt der code aber nu muss ich das noch so hinkriegen das der jenige user sich nich selbst in die kontaktliste setzt wie mach ich das???

Hier nochmal der Code:

PHP-Code:
<php
if ($user_id!==$myusername || $friend_id!==$username)
  {
  echo 
"Sie haben ein Freundesantrag beantragt!";
  
mysql_query ("INSERT INTO buddyliste VALUES ('$myusername', '$username','0')");
  }
  elseif (
$status=='0')
  {
   echo 
"Der Freundesantrag ist noch (Offen), warten Sie bis er/sie es angenommen hat!";
  }
  elseif (
$status=='1')
  {
  echo 
"Freundesantrag wurde schon bestätigt, Ihr seid schon miteinander befreundet!";
  }
  elseif (
$status=='2')
  {
  echo 
"Das Mitglied hat dein Freundesantrag abgelehnt!";
  }
  elseif (
$myusername==$user_id)
  {
   echo 
"Sorry aber du kannst dich nicht selber als Freund hinzufügen";
  }
 else
 {
   echo 
"Fehler, könnte kein Freundesantrag schreiben";
 }
?> 
Kidstorm ist offline  
Alt 15.03.2010, 02:56  
Neuer Benutzer
 
Registriert seit: 27.02.2010
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Kidstorm befindet sich auf einem aufstrebenden Ast
Standard

Kann Geschlossen werden bin stück für stück näher dran

übrigends danke für eure hilfe
Kidstorm ist offline  
Alt 15.03.2010, 17:23  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 929
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard

Grober Fehler: sql injection gefahr. Such einfach danach im Forum
ragtek ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php checken ob user befreundet

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum