NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Off-Topic (http://www.netvision-technik.de/forum/forumdisplay.php?f=44)
-   -   kleines problem mit bedanko (http://www.netvision-technik.de/forum/showthread.php?t=5654)

asus 07.08.2010 22:17

kleines problem mit bedanko
 
ich hab bei mir im forum ein kleines problem
wenn ich mich bedanke und ein user nach mir, dann kann ich mich nochmal bedanken

ich hoffe ihr wisst was ich meine

leider finde ich nicht wo der fehler sein soll evt kann mir einer helfen
hier mal die sache
PHP-Code:

$bedanko $arr["bedanko"];

  
//---- Get poster thanks

$resa mysql_query("SELECT * FROM postthanks WHERE topicid = $topicid") or sqlerr(__FILE____LINE__);
if (
mysql_num_rows($resa) > 0) {
while (
$arra mysql_fetch_array($resa)) {
$ptuserid $arra["userid"];
$ptpostid $arra["postid"];

$resb mysql_query("SELECT id, username, class, anon FROM users WHERE id = $ptuserid") or print(mysql_error());
while (
$arrb mysql_fetch_assoc($resb)) {
if (
$thanks$thanks .= ",\n";

if (
$arrb[anon] == no  || (($arrb[id] == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
$thanks .= "<a href=userdetails.php?id=" $arrb["id"] .  "><font class=".get_class_color($arrb["class"])."><b>" .  $arrb["username"] . "</b></font></a>";
} else {
$thanks .= "<font class=".get_class_color($arrb["class"])."><b>" $arrb["username"] . "</b></font>";
   }
  }
 }
}

$thanksbutton = ("<form method=\"post\"  action=\"forums.php?action=thanks&topicid=$topicid&postid=$postid&userid=$userid\"  style=\"display:inline\"><input type=\"submit\"  value=\"Bedanken\"></form>");


  
//---- Get poster details 

und hier der aufruf

PHP-Code:

if ($bedanko == "2" && $ptuserid != $CURUSER[id]) {
$body1 .= "<br>$thanksbutton<br>";
}

if (
$thanks && $ptpostid == $postid) {
$body1 .= "<br>Für diesen Beitrag haben sich bedankt:";
$body1 .= "<br>$thanks";


lg asus

Rasta 07.08.2010 22:21

das prop haben viele unteranderem ich


und brauche auch ne info...

asus 07.08.2010 22:25

alles scheisse außer mutti :D

DefCon3 07.08.2010 23:05

Zitat:

Zitat von asus (Beitrag 60879)
alles scheisse außer mutti :D

nich meggern ... php.net

das ding sollte ma dringend überarbeitet werden^^ schau ma ob es geht. Ansonsten bitte gute ne gute beschreibung abgeben was nicht geht

// edit, hab ne var falsch benannt, ist hier korrigiert
PHP-Code:

<?php
$bedanko 
$arr['bedanko'];
//---- Get poster thanks

$resa mysql_query('
            SELECT
                `userid` AS `thxUser`,
                `postid`,
                (SELECT `username` FROM `users` WHERE `id` = `thxUser`) AS `userName`,
                (SELECT `class` FROM `users` WHERE `id` = `thxUser`) AS `userClass`,
                (SELECT `anon` FROM `users` WHERE `id` = `thxUser`) AS `anonym`
            FROM
                `postthanks`
            WHERE
                `topicid` = ' 
$topicid) or sqlerr(__FILE____LINE__);

if (
mysql_num_rows($resa) > 0) {
    
$thxUser   = Array();
    
$thxPostID = Array();
    
$thanks    = Array();
    while (
$arra mysql_fetch_assoc($resa))
    {
        
$thxUser[]   = $arra['thxUser'];
        
$thxPostID[] = $arra['postid'];

        if (
$arra['anonym'] == 'no'  || $arra['thxUser'] == $CURUSER['id'] || get_user_class() >= UC_MODERATOR) {
            
$thanks[] = '<a href="userdetails.php?id=' $arra['userid'] .  '"><font class=' get_class_color($arra['userClass']) . '><b>' $arra['userName'] . '</b></font></a>';
        }
        else {
            
$thanks[] = '<font class=' get_class_color($arra['userClass']) . '><b>' $arra['userName'] . '</b></font>';
        }
    }
}

$thanksbutton '<form method="post"  action="forums.php?action=thanks&topicid=' $topicid '&postid=' $postid '&userid=' $userid .'"  style="display: inline;">
                    <input type="submit"  value="Bedanken">
                 </form>'
;


  
//---- Get poster details
  
if ( $bedanko == && !in_array($CURUSER['id'], $thxUser) ) {
    
$body1 .= '<br />' $thanksbutton '<br />';
}

if ( !empty(
$thanks) && !in_array($postid$thxPostID) ) {
    
$body1 .= '<br />Für diesen Beitrag haben sich bedankt:';
    
$body1 .= '<br />' implode(', '$thanks);
}


asus 07.08.2010 23:10

hmm ich hab bei deiner nur nen danke button klick ich drauf passiert nix und die alten thanks sind auch nicht mehr zu sehn

DefCon3 07.08.2010 23:15

nimm den code nochma, hab ihn editiert

asus 07.08.2010 23:21

ok hab mich bei deinem bedankt nur sehe ich keine namen auch bei den alten threads nicht

button kommt nciht wieder

DefCon3 07.08.2010 23:28

mach doch mal nen paar debug ausgaben ... fummel dich durch. Guck was der query leifert und die prüfungen ergeben. Morgen hab ich etwas Zeit... bin heut den 6 Tag arbeiten und muss morgen auch um 7 auf arbeit sein. Bin zu fertig heute ^^

asus 07.08.2010 23:34

ok ich schau noch etwas evt bekomm ich es ja hin danke dir aber schonmal



--======================================--
--==
Beitrag erstellt: 00:32 um 00:30 ==--
--==
geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 1 Minute und 47 Sekunden:

habs hinbekommen

das

PHP-Code:

        $thxPostID[] = $arra['postid']; 


muss so

PHP-Code:

        $thxPostID[] = $arra['posterid']; 



--======================================--
--==
Beitrag erstellt: 00:34 um 00:32 ==--
--==
geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 2 Minuten und 11 Sekunden:

aber schon kommt das nächste aufn tisch hehe

nun seh ich bei jedem post wer sich bedankt hat ich schau nochmal ^^

DefCon3 08.08.2010 08:37

wo holstn das her?
PHP-Code:

$thxPostID[] = $arra['posterid']; 

in der Abfrage is das nicht mit bei ...

asus 08.08.2010 09:50

ne hast recht aufjedenfall waren die ersten danke im ersten post wenn ich es so gemacht habe

hab nur noch das problem das die überall angezeigt wird nur im ersten post nicht

http://www.netvision-technik.de/foru...&pictureid=328

DefCon3 08.08.2010 09:56

seh ich das richtig das man sich für jeden Beitrag bedanken kann ...? Ich kenne es das man sich fürn Thread bedankt, aber jeden einzelnen Beitrag is doch etwas naja übertrieben, ist doch nen overhead vom feinsten!

Also nochmal von vorne:
Was genau funktioniert jetzt?
Kannst du dich nur einmal bedanken?
geht das Bedanken überhaupt?
Anzeige bei allen Beiträgen ausser dem ersten?
Oder den letzten?

Entity 08.08.2010 10:02

klingt ja komisch alles

asus 08.08.2010 10:02

nein mann kann sich nur fpr diesen thread bedanken!

der danke button befindet sich im ersten post!

sobald ich drauf klicke ist er weg und kommt für diesen user auch nciht wieder! (so wie es soll)

Anzeige bei allen Beiträgen ausser dem ersten!

DefCon3 08.08.2010 10:04

warum werden die User die sich bedankt haben in jedem Beitrag angezeigt? Sollte doch nur einmal sein, am besten direkt uter dem Startbeitrag, oder?

Entity 08.08.2010 10:05

ja so sollte es schon ich hab das gleiche auch

asus 08.08.2010 10:16

ja die sollen unter dem ersten beitrag oder unter dem ganzen thread ist eigendlich egal

nur wenn ich es woanders hinsetze sieht man nix



--======================================--
--==
Beitrag erstellt: 11:16 um 11:07 ==--
--==
geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 8 Minuten und 31 Sekunden:

immoment sieht es bei mir so aus (nicht aufgeräumt kommt später)

PHP-Code:

while ($arr mysql_fetch_assoc($res)) {
++
$pn;
$postid $arr["id"];
$posterid $arr["userid"];
$added $arr["added"];
$body $arr["body"];
$email $arr["guestmail"];
$user $arr["guestname"];
$answer $arr["answer"];


$res2 mysql_query("SELECT * FROM users WHERE id=$posterid") or sqlerr(__FILE____LINE__);
$arr2 mysql_fetch_assoc($res2);
$anon $arr2[anon];
$sig $arr2[sig];

$dt time() - 180;
$dt sqlesc(get_date_time($dt)); 

$postername = ("<font class=\"".get_class_color($arr2['class'])."\">$arr2[username]</font>");

if (
$arr[guestuser] == "yes") {
$by "<b>Gast: $arr[guestname]</b>";
} else {
if (
$arr2[username] == "") {
$by "<b>Gelöscht</b>";

} else {
if (
$anon && (($posterid == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
$by "<a href=userdetails.php?id=$posterid><b>$postername</b></a>" . ($arr2["donor"] == "yes" " <img src=\"".
$GLOBALS["PIC_BASE_URL"]."star.gif\" title=\"Dieses Mitglied hat gespendet\">" "") . ($arr2["enabled"] == "no" "<img src=\"".
$GLOBALS["PIC_BASE_URL"]."disabled.gif\" title=\"Dieses Mitglied wurde gesperrt\" style='margin-left: 2px'>" : ($arr2["warned"] == "yes" "<a href=rules.php#warning class=altlink><img src=\"".$GLOBALS["PIC_BASE_URL"]."warned.gif\" title=\"Dieses Mitglied wurde verwarnd\" border=\"0\"></a>" "")) . "";

} else {
$by "<b>$postername</b>";
 }
}
}
print(
"<a name=$postid>");

if (
$pn == $pc) {
print(
"<a name=last>");
if (
$postid $lpr)
mysql_query("UPDATE readposts SET lastpostread=$postid WHERE userid=$userid AND topicid=$topicid") or sqlerr(__FILE____LINE__);
}

if (
$arr2["avatar"]) {
$avatar = ("<img style=\"width:120px;\" src=\"".htmlspecialchars($arr2["avatar"])."\">");

} else {
$avatar = ("<img style=\"max-width:120px;\" src=\"".$GLOBALS["PIC_BASE_URL"]."default_avatar.gif\">");
}

$res3 mysql_query("SELECT COUNT(*) FROM posts WHERE userid=$posterid") or sqlerr(__FILE____LINE__);
$arr3 mysql_fetch_row($res3);
$forumposts $arr3[0];


print(
"<table align=\"center\" cellpadding=\"4\" cellspacing=\"1\" border=\"0\" width=\"770\" class=\"tableinborder\">
<tr><td align=\"center\" class=\"tabled\">
$by</td>
<td class=\"tabled\" style=\"vertical-align: middle;\">
<table width=\"100%\"><tr><td class=\"tabled\"><b>Vom:</b> 
$added</td>
<td align=\"right\" class=\"tabled\" style=\"vertical-align: middle;\">"
);


if (
$arr["guestuser"] == "no") {
print(
"$aktion");
} else {
if (
$arr["guestuser"] == "yes" && $arr["answer"] == "no") {
print(
"<form method=\"post\" action=\"staffemail.php?action=send&email=$email&user=$user&title=$subject&postid=$postid\" style=\"display:inline\"><input type=\"submit\" value=\"Antworten\"></form>");
} else {

print(
"<form method=\"post\" action=\"forums.php?action=answer&topicid=$topicid&postid=$postid\" style=\"display:inline\"><input type=\"submit\" value=\"Bearbeitet\"></form>");
 }
}


if (
$arr[guestuser] == "no") {
if (!
$locked && $maypost) {
print(
"&nbsp;<form method=\"post\" action=\"forums.php?action=quotepost&topicid=$topicid&postid=$postid\" style=\"display:inline\"><input type=\"submit\" value=\"Zitieren\"></form>");
}
if ((
$CURUSER["id"] == $posterid && !$locked) || get_user_class() >= UC_MODERATOR) {
print(
"&nbsp;<form method=\"post\" action=\"forums.php?action=edit&postid=$postid&forumid=$forumid\" style=\"display:inline\"><input type=\"submit\" value=\"Bearbeiten\"></form>");
}
if (
get_user_class() >= UC_MODERATOR) {
print(
"&nbsp;<form method=\"post\" action=\"forums.php?action=deletepost&postid=$postid&forumid=$forumid\" style=\"display:inline\"><input type=\"submit\" value=\"Löschen\"></form>");
}
}

if (
$arr[guestuser] == "no") {
print(
"&nbsp;<form method=\"post\" action=\"treport.php?postid=$postid\" style=\"display:inline\"><input type=\"submit\" value=\"Melden\"></form>");
}
print(
"&nbsp;<a href=\"#top\"><img src=\"".$GLOBALS["PIC_BASE_URL"]."top.gif\" border=0 title='Top'></a></td></tr></table></td></tr>");

print(
"<tr><td align=\"center\" valign=\"top\" class=\"tableb\" width=\"120\">");

print(
"<table align=\"center\" cellpadding=\"4\" cellspacing=\"0\" border=\"0\" width=\"100\">
<tr><td align=\"center\" valign=\"top\" class=\"tabled\" width=\"120\">
$avatar</td></tr>");
print(
"<tr><td class=\"tabled\" width=\"120\">");

if (
$forumposts && (($posterid == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
print(
"Beiträge: <a href=\"userhistory.php?action=viewposts&id=$posterid\">$forumposts</a>");

} else {
print(
"Beiträge: $forumposts");
}
print(
"</td></tr></table>");

$body1 "".format_comment($arr["body"])."";

$bedanko $arr['bedanko'];
//---- Get poster thanks

$resa mysql_query('
            SELECT
                `userid` AS `thxUser`,
                `postid`,
                (SELECT `username` FROM `users` WHERE `id` = `thxUser`) AS `userName`,
                (SELECT `class` FROM `users` WHERE `id` = `thxUser`) AS `userClass`,
                (SELECT `id` FROM `users` WHERE `id` = `thxUser`) AS `userid`,
                (SELECT `anon` FROM `users` WHERE `id` = `thxUser`) AS `anonym`
            FROM
                `postthanks`
            WHERE
                `topicid` = ' 
$topicid) or sqlerr(__FILE____LINE__);

if (
mysql_num_rows($resa) > 0) {
    
$thxUser   = Array();
    
$thxPostID = Array();
    
$thanks    = Array();
    while (
$arra mysql_fetch_assoc($resa))
    {
        
$thxUser[]   = $arra['thxUser'];
        
$thxPostID[] = $arra['postid'];

        if (
$arra['anonym'] == 'no'  || $arra['thxUser'] == $CURUSER['id'] || get_user_class() >= UC_MODERATOR) {
            
$thanks[] = '<a href="userdetails.php?id=' $arra['userid'] .  '"><font class=' get_class_color($arra['userClass']) . '><b>' $arra['userName'] . '</b></font></a>';
        }
        else {
            
$thanks[] = '<font class=' get_class_color($arra['userClass']) . '><b>' $arra['userName'] . '</b></font>';
        }
    }
}

$thanksbutton '<form method="post"  action="forums.php?action=thanks&topicid=' $topicid '&postid=' $postid '&userid=' $userid .'"  style="display: inline;">
                    <input type="submit"  value="Bedanken">
                 </form>'
;


  
//---- Get poster details
  
if ( $bedanko == && !in_array($CURUSER['id'], $thxUser) ) {
    
$body1 .= '<br />' $thanksbutton '<br />';
}

if ( !empty(
$thanks) && !in_array($postid$thxPostID) ) {
    
$body1 .= '<br />Für diesen Beitrag haben sich bedankt:';
    
$body1 .= '<br />' implode(', '$thanks);
}

if (
is_valid_id($arr['editedby'])) {
$res4 mysql_query("SELECT id, username, class, anon FROM users WHERE id=$arr[editedby]");
if (
mysql_num_rows($res4) == 1) {
$arr4 mysql_fetch_assoc($res4);
if (
$arr4[anon] == no  || (($arr4[id] == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
$body1 .= "<br><br><font class=\"smallfont\">Zuletzt bearbeitet von <a href=\"userdetails.php?id=$arr[editedby]\"><b><font class=\"".get_class_color($arr4["class"])."\">$arr4[username]</font></b></a> am $arr[editedat]</font>.";

} else {
$body1 .= "<br><br><font class=\"smallfont\">Zuletzt bearbeitet von <b><font class=\"".get_class_color($arr4["class"])."\">$arr4[username]</font></b> am $arr[editedat]</font>.";
  }
 }
}

if (
$sig) {
$body1 .= "<br>____________________<br>".format_comment($sig)."";
}

print(
"</td><td class=\"tablea\" valign=\"top\" width=\"650\"><div style=\"width:100%;min-height:100px;overflow:auto;\">".$body1."</div></td></tr>");

print(
"<tr><td align=\"center\" class=\"tableb\">");
print(
"&nbsp;".("'" $arr2['last_access'] . "'" $dt?"<font color=\"green\"><b>Online</b></font>":"<font color=\"red\"><b>Offline</b></font>") . "");
print(
"</td><td class=\"tableb\">");

if (
$arr[guestuser] == "no") {
if (
$CURUSER[id] != $posterid) {
print(
"&nbsp;<form method=\"post\" action=\"messages.php?action=send&receiver=$posterid\" style=\"display:inline\"><input type=\"submit\" value=\"PN\" class=\"btn\"></form>");
print(
"&nbsp;<form method=\"post\" action=\"friends.php?action=add&targetid=$posterid&type=friend\" style=\"display:inline\"><input type=\"hidden\" name=\"type\" value=\"friend\"><input type=\"submit\" value=\"Freund\" class=\"btn\"></form>");
print(
"&nbsp;<form method=\"post\" action=\"friends.php?action=add&targetid=$posterid&type=block\" style=\"display:inline\"><input type=\"hidden\" name=\"type\" value=\"block\"><input type=\"submit\" value=\"Blocken\" class=\"btn\"></form>");
}
if (
$arr2[anon] == no  || (($posterid == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
if (
$arr2["icq"]) {
print(
"&nbsp;<img style=\"vertical-align: middle;\" src=\"http://web.icq.com/whitepages/online?icq=".$arr2["icq"]."&img=5\"  alt=\"icq\" title=\"icq\" border=\"0\"> ".htmlspecialchars($arr2["icq"])."");
}
if (
$arr2["msn"]) {
print(
"&nbsp;<img style=\"vertical-align: middle;\" src=\"".$GLOBALS["PIC_BASE_URL"]."/messenger/msn.gif\" alt=\"msn\" title=\"msn\" border=\"0\"> ".htmlspecialchars($arr2["msn"])."");
}
if (
$arr2["aim"]) {
print(
"&nbsp;<img style=\"vertical-align: middle;\" src=\"".$GLOBALS["PIC_BASE_URL"]."/messenger/aim.gif\" alt=\"aim\" title=\"aim\" border=\"0\"> ".htmlspecialchars($arr2["aim"])."");
}
if (
$arr2["yahoo"]) {
print(
"&nbsp;<img style=\"vertical-align: middle;\" src=\"".$GLOBALS["PIC_BASE_URL"]."/messenger/yahoo.gif\" alt=\"yahoo\" title=\"yahoo\" border=\"0\"> ".htmlspecialchars($arr2["yahoo"])."");
}
if (
$arr2["skype"]) {
print(
"&nbsp;<img style=\"vertical-align: middle;\" src=\"http://mystatus.skype.com/smallicon/".$arr2["skype"]."\" alt-\"skype\" title=\"skype\" border=\"0\"> ".htmlspecialchars($arr2["skype"])."");
  }
 }
}

print(
"</td></tr></table><br>");


so setze ich dieses
PHP-Code:

if ( !empty($thanks) && !in_array($postid$thxPostID) ) {
    
$body1 .= '<br />Für diesen Beitrag haben sich bedankt:';
    
$body1 .= '<br />' implode(', '$thanks);


unter dem ganzen sieht man keine anzeige mehr der sich bedankt hat

DefCon3 08.08.2010 10:27

es ist doch gesamt an der falschen Stelle oder nicht? Du bist in der while die für die Beiträge verantwortlich ist, der gesamte part sollte doch egentlich nur unter dem Startbeitrag. Du fragst bei jedem Beitrag sämtliche Danke und so ab! Such mal die Stelle raus wo der Startbeitrag angezeigt wird. Denn da sollte es drunter

vom aufbau sollte es doch so sein:

Anzeige des Startbeitrags
Anzeige der Danke
Anzeige der Beiträge

asus 08.08.2010 10:35

also nochmal zum mit mitfassen

nach dem erstellen des thread hab ich den danke button im ersten beitrag siehe screen (sehe gerade da ist auch noch ein fehler in der zeile 910 das wäre das hier

PHP-Code:

Warningin_array() [function.in-array]: Wrong datatype for second argument in /var/www/baustelle/forums.php on line 910 

das wäre der code
PHP-Code:

if ( $bedanko == && !in_array($CURUSER['id'], $thxUser) ) { 

http://www.netvision-technik.de/foru...&pictureid=329

so und nun aufm bild zwei die anzeige wer sich bedankt hat
http://www.netvision-technik.de/foru...&pictureid=330

das sieht man bei den anderen beiträgen auch dann nur im ersten nicht der fehler ist auch weg wenn man sich bedankt hat



--======================================--
--==
Beitrag erstellt: 11:33 um 11:31 ==--
--==
geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 2 Minuten:

das mit deinem beschriebenden aufbau ist richtig nur war es vorher auch so:) das forum kommt vom skydiver oder so



--======================================--
--==
Beitrag erstellt: 11:35 um 11:33 ==--
--==
geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 2 Minuten und 31 Sekunden:

äh in dem forum gibt es doch keine stelle wo nur der erste beitrag angezeigt wird das hängt alles zusammen

DefCon3 08.08.2010 10:49

jo caste es ma aufm array, kommt weil es leer ist.
PHP-Code:

if ( $bedanko == && !in_array($CURUSER['id'], (array)$thxUser) ) { 

der code muss aus der while schleife raus der für die Beiträge verantwortlich ist. Warum sollte denn bei jedem Beitrag erneut die Danke abgefragt werden? Das nötige was du für die Danke brauchst ist doch nur die topic id.

Ich kenne das Forum auch nicht. Ansonsten sollte es kein Problem sein die Danke nur im ersten beitrag anzuzeigen. Mach einfach ne kontroll variable. Auf die prüfst du ob es schon angezeigt wurde.

Die Abfragen für die Danke müssen nicht in die while der beiträge. $topicid ist schon vor der while verfügbar.

so mein ich das ungefähr ... damit die thx nur einmal angezeigt werden
PHP-Code:

$displayThx false;  // kontroll variable
$dankeQueryUndSo mysql_query('SELECT fooThx FROM barThx WHERE foobarThx = barfooThx'); // danke query und so

while ($arr mysql_fetch_assoc($res)) // die while die du gepostet hast, stark abgekürzt
{
    echo 
$arr ' Beitraege'// normale beiträge in der while
    
if ( $displayThx === false ) {
        echo 
'den ganzen danke kram';
        
$displayThx true// jo wir haben es jetzt einmal angezeigt
    
}   // beim nächsten durchlauf wirds ignoriert und anzeige nur der nachfolgenden beitraege



tantetoni2 08.08.2010 13:08

haut das für die dankesager doch ganz einfach unter dem angezeigten beiträgen wenn die while schleife dafür zuende ist.

auf die idee müsste man doch selber kommen, und der code dafür ist ja schon da

asus 08.08.2010 14:44

Liste der Anh?nge anzeigen (Anzahl: 1)
hmm sobald ich es aus der while schleife schmeiße wird mir nix mehr angezeigt irgendwie bin ich wohl zu doof

ich hänge meine forums.php mal an (ist ein sauhaufen ich weiß ist ja nicht von mir! sie wird noch aufgeräumt)

danke euch das ihr zumindest helfen tut

hänge da nun stunden dran leider bleibt es so wie ich es schon gesagt habe :-(

Baba 01.12.2010 11:09

Mahlzeit,

also ich habe das bei mir so drin in der forums.php und es funzt bei mir.

Öffnet Eure forums.php und suche das:
Code:

  //---- Get poster thanks
  $resa = mysql_query("SELECT * FROM postthanks WHERE topicid = $topicid") or sqlerr(__FILE__, __LINE__);
  if (mysql_num_rows($resa) > 0) {
  while ($arra = mysql_fetch_array($resa)) {
      $ptuserid = $arra["userid"];
      $ptpostid = $arra["postid"];

      $resb = mysql_query("SELECT id, username, class FROM users WHERE id = $ptuserid") or print(mysql_error());
  while($arrb = mysql_fetch_assoc($resb)) {
  if ($thanks) $thanks .= ",\n";
      $thanks .= "<a href=userdetails.php?id=" . $arrb["id"] . "><font class=".get_class_color($arrb["class"])."><b>" . $arrb["username"] . "</b></font></a>";
      }
    }
  }
  $thanksbutton = ("<form method=\"post\" action=\"forums.php?action=thanks&topicid=$topicid&postid=$postid&userid=$userid\" style=\"display:inline\"><input type=\"submit\" value=\"Bedanken\"></form>");

und ersetze das mit dem:
Code:

  //---- Get poster thanks
  $is_thx = false;
  $resa = mysql_query("SELECT * FROM postthanks WHERE topicid = $topicid") or sqlerr(__FILE__, __LINE__);
  if (mysql_num_rows($resa) > 0) {
  while ($arra = mysql_fetch_array($resa)) {
      $ptuserid = $arra["userid"];
      $ptpostid = $arra["postid"];

      if ($CURUSER["id"] == $ptuserid && $ptpostid == $postid) $is_thx = true;

      $resb = mysql_query("SELECT id, username, class FROM users WHERE id = $ptuserid") or print(mysql_error());
  while($arrb = mysql_fetch_assoc($resb)) {
  if ($thanks) $thanks .= ",\n";
      $thanks .= "<a href=userdetails.php?id=" . $arrb["id"] . "><font class=".get_class_color($arrb["class"])."><b>" . $arrb["username"] . "</b></font></a>";
      }
    }
  }
  $thanksbutton = ("<form method=\"post\" action=\"forums.php?action=thanks&topicid=$topicid&postid=$postid&userid=$userid\" style=\"display:inline\"><input type=\"submit\" value=\"Bedanken\"></form>");

dann suche weiter nach dem:
Code:

  if ($bedanko == "2" && $ptuserid != $CURUSER[id]) {
      $body1 .= "<br>$thanksbutton<br>";
  }
  if ($thanks && $ptpostid == $postid) {
      $body1 .= "<br>Bedankt für diesen Beitrag haben sich:";
      $body1 .= "<br>$thanks<br>";
  }

und ersetze das mit dem:
Code:

  if ($bedanko == "2" && !$is_thx) {
      $body1 .= "<br>$thanksbutton<br>";
  }
  if ($thanks && $ptpostid == $postid) {
      $body1 .= "<br>Bedankt für diesen Beitrag haben sich:";
      $body1 .= "<br>$thanks<br>";
  }

suche weiter nach dem:
Code:

//-------- Action: Thanks
if ($action == "thanks") {
    $userid = $_GET["userid"];
    $topicid = $_GET["topicid"];
    $postid = $_GET["postid"];

if (!is_valid_id($topicid))
    stderr("Forum Fehler", "<b><p>Falsche Beitrags ID $postid.</p></b>");

mysql_query("INSERT INTO postthanks (id,topicid,postid,userid) VALUES (id,$topicid,$postid,$userid)") or sqlerr(__FILE__, __LINE__);

header("Location: $BASEURL/forums.php?action=viewtopic&topicid=$topicid");
die;
}

und ersetze es mit dem:
Code:

//-------- Action: Thanks
if ($action == "thanks") {
$userid = $CURUSER["id"]; // Nicht die $_GET["userid"],  das kann jeder Faken!
$topicid = $_GET["topicid"];
$postid = $_GET["postid"];

$query_check = mysql_query("SELECT * FROM postthanks WHERE topicid = $topicid AND postid= $postid AND userid= $userid") or sqlerr(__FILE__, __LINE__);
$row_check = mysql_num_rows($query_check);

if (!is_valid_id($topicid))
  stderr("Forum Fehler", "<b><p>Falsche Beitrags ID $postid.</p></b>");
elseif($row_check > 0)
  stderr("Forum Fehler", "<b><p>Du hast dich bereits bedankt !</p></b>");

mysql_query("INSERT INTO postthanks (id,topicid,postid,userid) VALUES (id,$topicid,$postid,$userid)") or sqlerr(__FILE__, __LINE__);

header("Location: $BASEURL/forums.php?action=viewtopic&topicid=$topicid");
die;
}

Ich hoffe ich konnte helfen und habe jetzt nix vergessen.

MFG


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2025, vBulletin Solutions, Inc.