PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Paidmails sortierung Wed Wahnsinnig



cece75
26.10.2010, 20:29
Ich werde noch Wahnsinnig
versuche seit ca 2 Wochen mit Pausen xD die paidmails sortiert zu bekommen.
Ich nutze ein Mailbox Addon was Premium Mails und normal Paidmails trennt sowie das eaysinbox addon

Nun wird bei mir die sortierung im userprofil eingestellt.

Bei den Forcedbannern sieht das so aus:


$usr = mysql_fetch_assoc (db_query ('SELECT max_forced, art, sort FROM '.$db_prefix.'_userdaten WHERE uid = '.$_SESSION['uid'].' LIMIT 1'));
und das ende der zeile für die Banner so:

ORDER BY t1.'.$usr['art'].' '.$usr['sort'].' LIMIT '.$usr['max_forced'].'');Funzt auch ohne Probleme.

Nun zu meinem Problem

Dies sind meine Zeilen für die Paidmails:


$maxshow = db_query ('SELECT '.$db_feld.' max_forced, art, sort FROM '.$db_prefix.'_userdaten WHERE uid = '.$_SESSION['uid'].' LIMIT 1');
if (mysql_num_rows($maxshow)) { $max = mysql_fetch_assoc($maxshow); } else { $max[$db_feld] = 20; }
und hier soll sortiert werden:


$q3 = 'SELECT t1.* FROM '.$db_prefix.'_gebuchte_werbung AS t1 LEFT JOIN '.$db_prefix.'_reloads AS t2 ON (t1.tan = t2.tan AND (t2.uid = '.$_SESSION['uid'].' OR t2.ip = "'.$ip.'") AND t2.bis >= '.time().') WHERE t2.tan IS NULL AND t1.werbeart = "paidmail" AND t1.menge > 0 AND t1.status = 1 AND t1.verdienst > 0 AND (sponsor != '.$_SESSION['uid'].' AND sponsor '.$choice.'IN ('.$list.')) ORDER BY t1.verdienst DESC LIMIT '.$max[$db_feld];
Wie stelle ich es an das nicht mehr nach verdienst sondern wie oben nach $usr art $usr sort sortiert wird?
Das $max dbfeld muss erhalten bleiben.
Ich erhalte bei meinen versuchen andauernd Fehlermeldungen.
Da ich mich mit Mysql und Php ned so auskenne weiss ich ned welche Zeichen usw rein müssen.

hankfromhelvete
26.10.2010, 23:52
$maxshow = db_query ('SELECT '.$db_feld.' max_forced, art, sort FROM '.$db_prefix.'_userdaten WHERE uid = '.$_SESSION['uid'].' LIMIT 1');

max_forced kannst du weg lassen. Möglichweise ist $db_feld sogar max_forced. Am Anfang der Datei sollte sowas wie $db_feld = 'xxx'; stehen.

Also:


$maxshow = db_query ('SELECT '.$db_feld.', art, sort FROM '.$db_prefix.'_userdaten WHERE uid = '.$_SESSION['uid'].' LIMIT 1');

ORDER BY dann so ändern:



ORDER BY t1.'.$maxshow['art'].' '.$maxshow['sort'].'

cece75
27.10.2010, 00:33
hab das eingefügt:


$q3 = 'SELECT t1.* FROM '.$db_prefix.'_gebuchte_werbung AS t1 LEFT JOIN '.$db_prefix.'_reloads AS t2 ON (t1.tan = t2.tan AND (t2.uid = '.$_SESSION['uid'].' OR t2.ip = "'.$ip.'") AND t2.bis >= '.time().') WHERE t2.tan IS NULL AND t1.werbeart = "paidmail" AND t1.menge > 0 AND t1.status = 1 AND t1.verdienst > 0 AND (sponsor != '.$_SESSION['uid'].' AND sponsor '.$choice.'IN ('.$list.')) ORDER BY t1.'.$maxshow['art'].' '.$maxshow['sort'].'.$max[$db_feld];
erhalte ich folgende fehlermeldung:
Parse error: syntax error, unexpected T_STRING in /www/htdocs/w00cfcd0/meinedomain.de/content/verdienen/mailbox.php on line 90

hankfromhelvete
27.10.2010, 01:44
LIMIT fehlt:



$q3 = 'SELECT t1.* FROM '.$db_prefix.'_gebuchte_werbung AS t1 LEFT JOIN '.$db_prefix.'_reloads AS t2 ON (t1.tan = t2.tan AND (t2.uid = '.$_SESSION['uid'].' OR t2.ip = "'.$ip.'") AND t2.bis >= '.time().') WHERE t2.tan IS NULL AND t1.werbeart = "paidmail" AND t1.menge > 0 AND t1.status = 1 AND t1.verdienst > 0 AND (sponsor != '.$_SESSION['uid'].' AND sponsor '.$choice.'IN ('.$list.')) ORDER BY t1.'.$maxshow['art'].' '.$maxshow['sort'].' LIMIT '.$max[$db_feld];

cece75
27.10.2010, 02:07
dann bekomme i9ch folgende fehlermeldung

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 20' at line 1

Jenny
27.10.2010, 12:52
Das kann so nicht funktionieren denke ich mal denn _gebuchte_werbung, da werden die mails zwar eingeladen, aber da sind die ja auf die User noch nicht verteilt, das erfolgt ja erst bei paidmails_versendet und paidmails_empfaenger oder arbeitest Du mit der easy_inbox?

cece75
27.10.2010, 13:04
ja hab easy inbox