Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
hoplite
Threadersteller
Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 21.10.2008 17:56
Titel datenbank abfrage bzgl. buddylist |
|
|
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
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mi 22.10.2008 09:32
Titel
|
|
|
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.
|
|
|
|
|
Anzeige
|
|
|
hoplite
Threadersteller
Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 22.10.2008 19:32
Titel
|
|
|
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
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Do 23.10.2008 08:53
Titel
|
|
|
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...
|
|
|
|
|
hoplite
Threadersteller
Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 23.10.2008 09:18
Titel
|
|
|
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
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Do 23.10.2008 09:30
Titel
|
|
|
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)
|
|
|
|
|
hoplite
Threadersteller
Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 23.10.2008 09:42
Titel
|
|
|
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.
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Do 23.10.2008 09:53
Titel
|
|
|
na, das macht die sache doch schon mal anders.
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!";
}
|
|
|
|
|
|
|
|
|
Ä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
|
|
|
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.
|
|