mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 02:40 Benutzername: Passwort: Auto-Login

Thema: datenbank abfrage bzgl. buddylist vom 21.10.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> datenbank abfrage bzgl. buddylist
Seite: 1, 2  Weiter
Autor Nachricht
hoplite
Threadersteller

Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 21.10.2008 17:56
Titel

datenbank abfrage bzgl. buddylist

Antworten mit Zitat Zum Seitenanfang

hallo,

kann mir jemand die eigenschaften der folgenden line etwas erklären?

Code:
$buddy = tx_cwtcommunity_lib_common::doDatabaseQuery('SELECT uid FROM tx_cwtcommunity_buddylist WHERE buddy_uid = "'.$buddy_uid.'" AND fe_users_uid = "'.$uid.'"');


ich möchte gerne eine if-abfrage auf der seite einfügen, ob zwischen dem eingeloggten user und dem user auf dessen seite man sich befindet ($_GET['uid']) bereits eine buddy-verbindung besteht. wenn ja, soll etwas anderes ausgegeben werden, als wenn nein. der code oben befindet sich in einer php-datei von einer extension die ich auf der seite verwende und ich vermute halt, das es etwas damit zu tun hat.

danke für eure antworten, hoplite


Zuletzt bearbeitet von hoplite am Di 21.10.2008 17:59, insgesamt 7-mal bearbeitet
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Mi 22.10.2008 09:32
Titel

Antworten mit Zitat Zum Seitenanfang

demnach gehe ich davon aus, dass $buddy_uid die id des users ist, auf dessen seite sich der usere gerade befindet, richtig?

dann dürfte das query nur dann ein result liefern, wenn es eine buddybeziehung gibt.
irgendwo wird es eine rückmeldung von der db geben, ob nun im script weiter unten, oder in der function doDatabaseQuery kann ich nicht sagen, da ich das system nicht kenne.

diese rückmeldung musst du abfangen und abfragen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
hoplite
Threadersteller

Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 22.10.2008 19:32
Titel

Antworten mit Zitat Zum Seitenanfang

hy,


weiter unten im script gibt es noch diese line:
Code:
 //Do the query

        $res = tx_cwtcommunity_lib_common::doDatabaseUpdateQuery('DELETE FROM tx_cwtcommunity_buddylist WHERE fe_users_uid = "'.$uid.'" AND buddy_uid = "'.$buddy_uid.'"');


das könnte es vieleicht sein. ich würde dort gerne ein echo-befehl eingeben, aber weiß jetzt gar nciht, wo das dann ausgegeben würde. hab es daher jetzt mal auf einem anderen wege versucht: (aber danke trotzdem für deine antwort)

Code:
$query = "SELECT * FROM tx_community WHERE feuser_uid = '".$_GET['uid']."'";
$res = mysql(community_db,$query);
$resArr=array();

while ( $row=mysql_fetch_assoc($res)) {

if ($row["buddy_uid"] != $GLOBALS['TSFE']->fe_user->user['uid']) { }

else { echo '<a href="index.php?id=94">Freundschaft beenden</a>';  }


 }


damit wird dann ein link ausgegeben, wenn die id vom eingeloggten user in der liste der buddy-ids des aktuelle aufgerufenen profils ist. das ist wahrscheinlich nicht die eleganteste methode, aber zunächst mal funktioniert es damit.

ich würde nun gerne noch alternativ einen link ausgeben, wenn die id des eingeloggten users nicht in der liste der buddy-ids vom aufgerufenen profil ist. hab da schonmal paar veränderungen an dem script oben ausprobiert, aber hat bisher nicht gefunzt. wie könnte das nun gehen?

THX & LG


Zuletzt bearbeitet von hoplite am Mi 22.10.2008 19:37, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Do 23.10.2008 08:53
Titel

Antworten mit Zitat Zum Seitenanfang

also für ein select-query solltest du dich nun mal entscheiden! und für die abfrage ob buddy oder nicht, solltest du auch das query nehmen:

Code:

$buddy = tx_cwtcommunity_lib_common::doDatabaseQuery('SELECT uid FROM tx_cwtcommunity_buddylist WHERE buddy_uid = "'.$buddy_uid.'" AND fe_users_uid = "'.$uid.'"');


wenn die db sauber ist, dürfte da nur ein einziger datensatz kommen, wenn sie buddies sind, und kein ergebnis kommen, wenn sie halt keine sind. das könntest du dann abfragen:

Code:

$buddy = tx_cwtcommunity_lib_common::doDatabaseQuery('SELECT uid FROM tx_cwtcommunity_buddylist WHERE buddy_uid = "'.$buddy_uid.'" AND fe_users_uid = "'.$uid.'"');

// wieviele ergebnisse kommen zurück?
$resAffected = mysql_num_rows($res);


if ($resAffected>1) { //mehr als eins... scheisse in db!
   echo "hier ist murks in der db";
} elseif ($resAffected == 1) { //genau eins = freunde
   echo "alter, wir sind buddies";
} else { //demnach 0 = keine freunde
   echo "verpiss dich, wir sind keine buddies";
}


probiers mal...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
hoplite
Threadersteller

Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 23.10.2008 09:18
Titel

Antworten mit Zitat Zum Seitenanfang

hallo, ich möchte lieber den zweiten ansatz weiter verfolgen, weil damit schon jetzt richtig erkannt wird, ob user buddies sind oder nicht. die andere variante gibt zudem im moment fehler aus und funktioniert auch nicht. also für ansatz nr.2 wird im moment etwas ausgegeben, wenn die user buddies sind, was noch fehlt ist eine alternative message, wenn keine buddies. mfg, hoplite

Zuletzt bearbeitet von hoplite am Do 23.10.2008 09:20, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Do 23.10.2008 09:30
Titel

Antworten mit Zitat Zum Seitenanfang

hoplite hat geschrieben:
hallo, ich möchte lieber den zweiten ansatz weiter verfolgen, weil...


gut, verfolg deinen falschen ansatz weiter und frag weiter schlicht weg die falsche tabelle ab. keule, du hast da einen DENKFEHLER.

du arbeitest da mit zwei tabellen:

a) tx_community
b) tx_cwtcommunity_buddylist

was meinst du, wo die buddybeziehungen drinne stehen?
(kleiner tipp, ein delete-query, was du hier gepostet hast, gibt dir den goldenen hinweis)
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
hoplite
Threadersteller

Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 23.10.2008 09:42
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
gut, verfolg deinen falschen ansatz weiter und frag weiter schlicht weg die falsche tabelle ab. keule, du hast da einen DENKFEHLER.


oh man, ich seh grad, missverständniss. der tabellenname im ersten beispiel ist falsch geschrieben, richtig sieht es so aus:

Code:
$query = "SELECT * FROM tx_cwtcommunity_buddylist WHERE fe_users_uid = '".$_GET['uid']."'";

### zugriff auf Typo3 Datenbank zuweisung der SQL Abfrage

$res = mysql(TYPO3_db,$query);
$resArr=array();

while ( $row=mysql_fetch_assoc($res)) {

if ($row["buddy_uid"] != $GLOBALS['TSFE']->fe_user->user['uid']) { }

else { echo '<a href="index.php?id=79">Freundschaft beenden</a>';  }


 }


sorry, das hat wohl etwas verwirrung gestiftet. also obiges beispiel funktioniert schonmal soweit, das etwas ausgegeben wird, wenns buddies sind. nun möchte ich gerne, das noch etwas ausgegeben wird, wenn das nciht der fall ist.
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Do 23.10.2008 09:53
Titel

Antworten mit Zitat Zum Seitenanfang

na, das macht die sache doch schon mal anders. Grins

dennoch holst du dir mit dem query unnötiger zuviele datensätze. wenn dir performance also egal ist, und du zwingend da weiter ansetzen willst, dann mach es so, dass du in der while-schleife nur einen indikator setzt, ob die freundschaft erkannt wurde. die ausgabe verlagerst du nach außerhalb (naja, und schreib die if abfrage so um, dass du kein else brauchst... völlig überflüssig):

Code:

$query = "SELECT * FROM tx_cwtcommunity_buddylist WHERE fe_users_uid = '".$_GET['uid']."'";

### zugriff auf Typo3 Datenbank zuweisung der SQL Abfrage

$res = mysql(TYPO3_db,$query);
$resArr=array();

// Freundschaft vorerst nicht vorhanden
$isFriendship = "false";

while ( $row=mysql_fetch_assoc($res)) {

 if ($row["buddy_uid"] == $GLOBALS['TSFE']->fe_user->user['uid']) {

   // sobald der eintrag in der db gefunden wird, wird freundschaft auf true gesetzt
   // andernfalls bleibt sie auf false
   $isFriendship ="true";

 }
}

//so, und hier nun das handling
if ($isFriendship=="true") { // sind freunde
  echo "toll, wir sind freunde lass und spielen";
} else { // sind keine freunde
  echo "verpiss dich, kenn dich nicht!";
}
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen While-Schleife für Datenbank-Abfrage mit PHP
[PHP] Probleme bei $_POST und Datenbank abfrage
[PHP, MySQL] Datenbank Abfrage sortieren
[PHP, MySQL] Datenbank Abfrage nach Datum sortieren
frage bzgl. if/else
Frage bzgl. Contact Code
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.