PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abfrage Problem



Holstenjungs
04.06.2007, 19:34
Hi,
ich möchte aus 2 Tabellen gleichzeitig Daten abfragen. Wie ich das mache ist mir schon klar nur brauche ich mal eure Hilfe ob ich den Code so benutzen kann:



$test = $db->query("SELECT equinox_".$pageconfig['install_nr']."_kampagnen.kampagnen_id,
equinox_".$pageconfig['install_nr']."_kampagnen.in_clicks,
equinox_".$pageconfig['install_nr']."_kampagnen.do_clicks,
equinox_".$pageconfig['install_nr']."_kampagnen.name,
equinox_".$pageconfig['install_nr']."_kampagnen.text_mail
FROM equinox_".$pageconfig['install_nr']."_kampagnen,equinox_".$pageconfig['install_nr']."_crons
WHERE equinox_".$pageconfig['install_nr']."_kampagnen.format = 'paidmails'
AND equinox_".$pageconfig['install_nr']."_kampagnen.status = '1'
AND equinox_".$pageconfig['install_nr']."_crons.cronname LIKE '%".$wasauchimmer."%'
ORDER BY equinox_".$pageconfig['install_nr']."_kampagnen.payout DESC");

hpshstein
08.06.2007, 23:25
am besten ersetzt du die variablen durch dei vermutlichen werte und probierst es in phpmyadmin oder so mal aus - siehst dann eh ob was rauskommt und ob es das ist was es sein soll ;)

so und nun klärt mich auf: bild ich mir ein, zu der gleichen frage schonmal meinen senf dazugegeben zu haben oder isses doch ein dejavu? :D

Holstenjungs
26.06.2007, 17:52
Muss ein dejavu gewesen sein.

habe nun aber noch eine Frage, besonders an die richtigen Programmierer hier im Forum.

Beim VMS2 werden bei einer Refrally ja alle User angezeigt die einen Ref geworben haben. Egal wieviele Aktivpunkte der Ref hat. Das möchte ich nun ändern. Wie kann ich das am besten machen?
Natürlich soll das Ganze dann auch sortiert sein, nach dem Werber der die meisten Refs hat die die Mindestanforderung erfüllen.
Ich möchte das Ganze in einer SQL Abrage lösen und nicht dafür eine Extratabelle anlegen.

Hat da jemand eine Idee?
Die Standardabfrage sieht im Moment so aus:


$rallyuser = $db->query("SELECT nickname,".$_GET['r_art']." FROM
equinox_".$pageconfig['install_nr']."_user WHERE
admin != 1 AND ".$_GET['r_art']." > 0
ORDER BY ".$_GET['r_art']." DESC LIMIT ".$zaehler."");

Holstenjungs
26.06.2007, 21:33
So,
ich habe nun folgende SQL Abfrage entwickelt. Es wird auch fast alles richtig ausgegeben, nur "rsumme" ist immer wieder = 1.
Obwohl, wenn ich diese innere Abfrage eingebe und "a.nickname" mit einem Namen versehe alles richtig ausgegen wird.
Hier der Code:


SELECT a.nickname, a.srr, COUNT( (
" SELECT SUM(b.status) FROM equinox_1_user b WHERE b.aktivpunkte >'100000' AND b.werber_nick = 'a.nickname ' "
) ) AS rsumme
FROM equinox_1_user AS a
WHERE a.srr >0
GROUP BY a.nickname
ORDER BY rsumme DESC


*EDIT*
Sorry für den Doppelpost

djws
28.06.2007, 01:46
so nun hier mein Vorschlag:


SELECT nickname, srr
FROM equinox_1_user
WHERE srr > 0 AND aktivpunkte > 100000
GROUP BY werber_nick
ORDER BY srr DESC

ist allerdings ungetestet, da ich grad keine page hab wo eine statische refrally läuft mit dem vms2.

Ich habs aber in etwas abgewandelter Form mit meiner statischen AP-Rally getestet und es funktionierte auch !

Holstenjungs
28.06.2007, 01:52
Sorry, das jetzt erst antworte. Ich habs geschafft. Nach langem probieren hat es endlich geklappt. Da es in einem käuflich zu erwerbenden Addon eingesetzt wird, werde ich hier nicht die Lösung bekanntgeben.
Aber es muß, wie du schon sagst, mit LEFT JOIN gearbeitet werden. Dann klappt es auch.

djws
28.06.2007, 01:58
wie du an meinem oben editierten Lösungsansatz erkennen kannst müsste es auch mit einer einfachen Abfrage ohne JOIN gehen ;)

kannst ja mal testen obs denn fuktioniert ober obs für mich schon Zeit ist ins Bett zu gehen ;)

Holstenjungs
28.06.2007, 02:04
Also funktionieren tut es, nur die Bedingung mit den Aktivpunkten soll für die Refs gelten und nicht für die Werber.
Also muß man schon mit LEFT JOIN arbeiten und einer COUNT() Abfrage. So hab ich es zumindest gemacht.

Gute Nacht. ;)