PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [SQL] wie mache ich das :-)



Zockervogel
11.11.2009, 21:20
Die Abfrage lautet bisher:


$kamp = db_query("SELECT t1.* FROM ".$db_prefix."_gebuchte_werbung AS t1 LEFT JOIN ".$db_prefix."_reloads_mail AS t2 ON (t1.tan = t2.tan AND (t2.uid = '".$_SESSION['uid']."' OR t2.ip = '".$ip."') AND t2.bis >= '".time()."') WHERE t1.tan = '".$_GET['tan']."' AND t2.tan IS NULL AND t1.werbeart = 'paidmail' AND t1.menge > 0 AND t1.status = 1 AND t1.verdienst > 0 LIMIT 1");


Und hier muss noch zusätzlich wenn in der Tabelle stg_interface der Wert Sonderregel keine 1 ist rein.

Wie mach ich denn das ?

Lokutos
11.11.2009, 21:28
$kamp = db_query("SELECT t1.* FROM vms_gebuchte_werbung AS t1
LEFT JOIN vms_reloads_mail AS t2 ON (t1.tan = t2.tan AND (t2.uid = '".$_SESSION['uid']."' OR t2.ip = '".$ip."') AND t2.bis >= '".time()."')
LEFT JOIN stg_interface AS t3 ON (t1.sponsor = t3.sponsor AND Sonderregel != 1)
WHERE t1.tan = '".$_GET['tan']."' AND t2.tan IS NULL AND t1.werbeart = 'paidmail' AND t1.menge > 0 AND t1.status = 1 AND t1.verdienst > 0 LIMIT 1");

Ich geh jetzt mal davon aus das Sonderregel auch in der db gross geschrieben ist ansonsten ändern.

dan gehe ich dacon aus das in der tabelle die IF liegen und es eine spalte sponsor gibt.

UNTESTING!!!

MFG Lokutos

Parl
11.11.2009, 21:31
Hab grad mal bei mir nachgeschaut, entweder sind meine Interfaces veraltet oder es gibt dort keine Spalte für "Sonderregel".

Meinst du diese Regel die festlegt ob reine Inboxbestätigung erlaubt ist oder nicht? Eventuell durch nen Addon hinzugefügt.

Oder was ganz anderes?

MFG

Zockervogel
11.11.2009, 21:48
ich habe ein Feld "sonderregel" erstellt.
Das Feld bekommt eine 1 für Sonderregel und behält die 0 wenn halt alles beim alten ist.

Jetzt versuche ich nur die Mails anzeigen zu lassen, die halt als sonderregel (klein geschrieben.. hehehe) eine "0" haben.

Aber mit dem Code funktioniert das leider noch nicht. (habe das klein geschieben) und auch mal "0" und "1" verändert :-)

Parl
11.11.2009, 21:52
Na dann vielleicht so:



$kamp = db_query("SELECT t1.* FROM vms_gebuchte_werbung AS t1
LEFT JOIN vms_reloads_mail AS t2 ON (t1.tan = t2.tan AND (t2.uid = '".$_SESSION['uid']."' OR t2.ip = '".$ip."') AND t2.bis >= '".time()."')
LEFT JOIN stg_interface AS t3 ON t1.sponsor = t3.sponsor
WHERE t3.sonderregel = 0 AND t1.tan = '".$_GET['tan']."' AND t2.tan IS NULL AND t1.werbeart = 'paidmail' AND t1.menge > 0 AND t1.status = 1 AND t1.verdienst > 0 LIMIT 1");


MFG

Zockervogel
11.11.2009, 22:05
geht leider auch nicht.

Leider übersteigt das alles zu verstehen meine PHP "Kenntnisse"

jpwfour
11.11.2009, 22:08
MySQL :thumb:

nach dem query mal


echo mysql_error();

einfügen, dann bekommst du ausführliche meldungen was fehlschlägt

Zockervogel
11.11.2009, 22:36
NEEEEIN,
ok, das Positive zuerst :-) Ich habe selbst gemerkt, dass ich in der falschen Datei am edtieren und versuchen bin. (Du ist der, der Dummes tut)

Ich habe ajax am laufen. Muss also in die mailhistory_load.php meinen Code reinmachen :-)
(oder sehe ich das jetzt falsch)

darf ich die Ajax-Abfragen um die es geht hier auch posten ?

Zockervogel
11.11.2009, 23:57
Zwischenstand :-)

es werden jetzt tatsächlich nur noch die Kampagnen angezeigt, die keine Sonderregel haben *freu*

Ich bekomme es aber nicht hin auch die Paidmails und die, die nicht im Reload sind richtig anzeigen zu lassen. Wäre toll da noch Hilfe zu bekommen.

Danke für eure Geduld :-)

breaker
12.11.2009, 01:12
Wenn ich die Tabellen der Datenbank kennen würde, hätte ich dir meine Query angepasst...aber vielleicht schaffst du das ja auch alleine ;)


$sql1 = sql_query("SELECT
p.*,
g.k_code AS mail_ist_gebucht,
b.k_code AS mail_in_blackliste,
r.k_code AS mail_in_reload
FROM " . $prefix . "_pwc_paidmails AS p
LEFT JOIN " . $prefix . "_pwc_paidmails_gebucht AS g
ON (p.k_code = g.k_code)
LEFT JOIN " . $prefix . "_pwc_paidmails_blackliste AS b
ON (p.k_code = b.k_code)
LEFT JOIN " . $prefix . "_pwc_paidmails_reload AS r
ON (p.k_code = r.k_code)
WHERE p.k_sponsor = '" . intval($n_id) . "'
AND p.k_art = '" . intval($k_art) . "'
GROUP BY p.k_code
ORDER BY p.k_ver DESC");

Zockervogel
12.11.2009, 12:02
Hier


$pstats_gesamt = mysql_fetch_array(db_query("SELECT COUNT(tan) AS ganzahl, SUM(verdienst) AS gverdienst, SUM(aufendhalt) AS gaufenthalt FROM ".$db_prefix."_gebuchte_werbung WHERE werbeart = 'paidmail' AND menge > 0 AND status = 1 AND verdienst > 0 AND sponsor != '".$_SESSION['uid']."'")) OR die(mysql_error());

und


$pstats_uebrig = mysql_fetch_array(db_query("SELECT COUNT(t1.tan) AS uanzahl, SUM(t1.verdienst) AS uverdienst FROM ".$db_prefix."_gebuchte_werbung AS t1 LEFT OUTER JOIN ".$db_prefix."_reloads_mail AS t2 ON (t2.tan = t1.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 t1.sponsor != '".$_SESSION['uid']."'")) OR die(mysql_error());

müsste sowas wie das hier :-)


LEFT JOIN stg_interface t3
ON (t1.sponsor = t3.sponsor AND t3.sonderregel = 0 AND t3.werbeart = "paidmail")
WHERE t3.sonderregel = 0


eingefügt werden... ich bekomme das nicht hin