YourWBB


yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Wieso funktioniert es nicht? » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 4.822 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Zum Ende der Seite springen Wieso funktioniert es nicht?
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Revolutionary Act
Ex Teammitglied

Dabei seit: 19.02.15
Beiträge: 268

 Wieso funktioniert es nicht? Antworten Zitieren Editieren Melden       UP

Blöder kann man es wohl nicht formulieren.
Ich sitze gerade an einem neuen Hack womit man Beiträge Liken kann.

Natürlich soll jeder User einen Beitrag nur 1x liken können
und deswegen habe ich folgende Passage geschrieben:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
//Already Liked?
$lock_a = $db->query("SELECT * FROM bb".$n."_likes WHERE post_id = '$posts[postid]'");
$lock = mysql_num_rows($lock_a);
if ($lock == 0)
{
eval ("\$add_like = \"".$tpl->get("thread_addlike")."\";");
}


Das mich nun sehr verwirrende Problem:

Ich hab ein Testthema mit 2 Beiträgen erstellt.
Wenn ich nun im ersten Posting "Gefällt mir" drücke, dann verschwindet der Button und der Like wird gespeichert.

Im Zweiten posting bleibt er wie gewollt stehen und ich kann nun auch diesen Beitrag liken
und er verschwindet, alles super - wie es soll.

ABER:

Like ich erst den Zweiten Post (also nicht den Startpost) dann bleibt der Button weiterhin stehen
und ich würde dann (sieht man anhand der URL, welche postid er mir nun ausspuckt) den STARTPOST liken können mit diesem Button.

Der verschwindet auch erst insofern man den Startpost geliked hat, bzw. oder halt nochmal
auf den Button im zweiten posting geklickt hat und somit den Startpost liked.

Ich bin mit dem Latein am Ende hab nun über eine Stunde überlegt und rumprobiert,
aber ich finde den Fehler nicht. Hoffe jemand hat eine Idee.
Der Code ist in der thread.php und wird vor dem laden der thread_postbit.tpl eingefügt

Wie gesagt hoffe mir kann jemand helfen
und auch erklären (möglichst einfach) wieso es nicht funktioniert...
Und wie es funktioniert...

__________________
» Meine Erweiterungen

Lite 1
» Sitemanager Lite (Download)
» Infobox für den Index (Frei definierbar) (Download)
» Gefällt mir (Für Beiträge, Facebook Like) (Download)
» BBCode Youporn und Pornhub (Download)
» User Anstupsen (Facebook Like) (Download)
» your-WBB.de Invitesystem Pro (Download)
» Pflichtthread (Download)
» Sicherheitsfrage beim registrieren (Download)
» your-WBB.de Mobile Erkennung (Download)
» Geburtstag und Geschlecht Pflicht beim registrieren (Download)

WBB 2.3.x
» BBCode Youporn und Pornhub PRO (Download)
» your-WBB.de Mobile Erkennung (Download)

lg
Revolutionary Act
22.06.15 02:52 Revolutionary Act ist offline E-Mail Finden Als Freund hinzufügen
derkleene derkleene ist männlich
Alternativ Mitglied


Dabei seit: 28.08.06
Beiträge: 181
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi
Herkunft: Niedersachsen
Forenversion: Lite 1.0

Antworten Zitieren Editieren Melden       UP

Variable $add_like nicht wieder geleert.
$add_like = "";

trauig trauig..... geschockt traurig verwirrt böse Irre

__________________
---
Es grüßt
DerKleene
NeoTower
22.06.15 05:47 derkleene ist offline E-Mail WWW Finden Als Freund hinzufügen
Revolutionary Act
Ex Teammitglied

Dabei seit: 19.02.15
Beiträge: 268

Themenstarter Thema begonnen von Revolutionary Act
Antworten Zitieren Editieren Melden       UP

Danke, genau daran hat es gelegen.
Der optimierte Code sieht mittlererweile übrigens so aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
//Already Liked?
$add_like = "";
$lock_a = $db->query("SELECT * FROM bb".$n."_likes WHERE post_id = '$posts[postid]' AND liked_by = '$wbbuserdata[username]'");
$lock = mysql_num_rows($lock_a);
if ($lock == 0)
{
if ($wbbuserdata[userid]!==0)
{
eval ("\$add_like = \"".$tpl->get("thread_addlike")."\";");
}
}


Kannst du vllt. kurz erklären warum man die Variable hier leeren muss?
bzw. warum passiert das nicht automatisch? Ich steh grad bei diesem Vorgang wohl noch etwas auf dem Schlauch...

Aber jedenfalls funktioniert es nun schonmal wie es soll!

__________________
» Meine Erweiterungen

Lite 1
» Sitemanager Lite (Download)
» Infobox für den Index (Frei definierbar) (Download)
» Gefällt mir (Für Beiträge, Facebook Like) (Download)
» BBCode Youporn und Pornhub (Download)
» User Anstupsen (Facebook Like) (Download)
» your-WBB.de Invitesystem Pro (Download)
» Pflichtthread (Download)
» Sicherheitsfrage beim registrieren (Download)
» your-WBB.de Mobile Erkennung (Download)
» Geburtstag und Geschlecht Pflicht beim registrieren (Download)

WBB 2.3.x
» BBCode Youporn und Pornhub PRO (Download)
» your-WBB.de Mobile Erkennung (Download)

lg
Revolutionary Act
22.06.15 18:48 Revolutionary Act ist offline E-Mail Finden Als Freund hinzufügen
derkleene derkleene ist männlich
Alternativ Mitglied


Dabei seit: 28.08.06
Beiträge: 181
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi
Herkunft: Niedersachsen
Forenversion: Lite 1.0

Antworten Zitieren Editieren Melden       UP

Wein aber OK. Kurz und knapp:

es läuft durch eine WHILE schleife.

Post 2= geliked.
ich rufe die Seite auf.

Ester Durchlauf: Post 1 bekommt $add_like = Erster Post (da nicht geliked)
Zweiter Durchlauf: Post 2 bekommt ebenfalls $add_like = Erster Post (da Variable nicht geleert, und immer noch existiert)
3ter durchlauf: Post 3 bekommt ebenfalls $add_like = erster Post oder halt $add_like = Dritter Post (je nachdem ob schon geliked oder nicht)

wenn du davor die Variable nicht lerst.

Könntest auch schreiben:
code:
1:
2:
3:
4:
5:
6:
7:
if ($lock == 0){
    if (!$wbbuserdata[userid]){
        eval ("\$add_like = \"".$tpl->get("thread_addlike")."\";");
    }
}else {
    $add_like = ""
}

Bitte Zeileneinrückung angewöhnen, deinen Code kann man scheiße lesen. Danke

__________________
---
Es grüßt
DerKleene
NeoTower
22.06.15 19:03 derkleene ist offline E-Mail WWW Finden Als Freund hinzufügen
Revolutionary Act
Ex Teammitglied

Dabei seit: 19.02.15
Beiträge: 268

Themenstarter Thema begonnen von Revolutionary Act
Antworten Zitieren Editieren Melden       UP

Ach ja, das da ne While Schleife ist wo ich den Code eingefügt habe
bzw. das ich ihn in selbige Einfüge habe ich garnicht bemerkt... Aber logisch.

Danke nochmal für die Aufklärung nun ist klar.
So ne Situation hatte ich auch noch nicht...

__________________
» Meine Erweiterungen

Lite 1
» Sitemanager Lite (Download)
» Infobox für den Index (Frei definierbar) (Download)
» Gefällt mir (Für Beiträge, Facebook Like) (Download)
» BBCode Youporn und Pornhub (Download)
» User Anstupsen (Facebook Like) (Download)
» your-WBB.de Invitesystem Pro (Download)
» Pflichtthread (Download)
» Sicherheitsfrage beim registrieren (Download)
» your-WBB.de Mobile Erkennung (Download)
» Geburtstag und Geschlecht Pflicht beim registrieren (Download)

WBB 2.3.x
» BBCode Youporn und Pornhub PRO (Download)
» your-WBB.de Mobile Erkennung (Download)

lg
Revolutionary Act
22.06.15 21:24 Revolutionary Act ist offline E-Mail Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Wieso funktioniert es nicht?