PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Doppler von Mac - Auszahlpositionen



Sledgedog
21.09.2009, 16:43
Hallo,
habe da ein kleines Anzeigenproblem beim Doppler.

Die erste Auszahlposition zeigt er jedem User richtig an:

z.B. Position 7, nun sollte aber dann Position 35 kommen
das System zeigt dem User aber
Position 7 und 8 an usw.

Es wird also immer nur die erste Position richtig angezeigt, wie kann ich das ändern?


$id_erst_offene_az = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_doppler_zahlungen where status='0' order by id asc "));
$id_erst_offene_user_az = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_doppler_zahlungen where status='0' and uid='".$_SESSION['uid']."'order by id asc "));
$position= $id_erst_offene_user_az['id']-$id_erst_offene_az['id']+1;

head("Deine Auszahlpositionen");
$einzahlungen = db_query("SELECT * FROM ".$db_prefix."_doppler_zahlungen where status='0' and uid='".$_SESSION['uid']."' order by id asc LIMIT ".$anzeige['max_doppler']."");


?>

<center>
<table border="0" width="80%" cellpadding="1" cellspacing="1" bgcolor="<? echo $headline; ?>">
<tr bgcolor="<? echo $tabelle; ?>">
<td><font color="<? echo $text;?>"><center>POS.</td>
<td><font color="<? echo $text;?>"><center>User</td>
<td><font color="<? echo $text;?>"><center>Eingezahlt</td>
<td width="200"><font color="<? echo $text;?>"><center>Datum</td>
</tr>

<?

while ($ez_liste = mysql_fetch_array($einzahlungen)) {
$nick= mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_userdaten where uid='".$ez_liste['uid']."'"));



?>

<tr bgcolor="<? echo $tabelle; ?>">
<td><font color="<? echo $text;?>"><center><? echo $position;?></td>
<td><font color="<? echo $text;?>"><center><? echo $nick['nickname'];?></td>
<td><font color="<? echo $text;?>"><center><? echo number_format($ez_liste['summe'],0,",","."); ?> Lose</td>
<td><font color="<? echo $text;?>"><center><? echo $ez_liste['einzahlungsdatum'];?></td>
</tr>

<?
$position++;
}
?></table>
<?

Ich denke mal das $position++; passt nicht, denn deswegen zählt er ja bei der position immer nur 1 hoch
Nur ist es mir bisher nicht gelungen, das der doppler in der DB nach der nächsten noch nicht ausgezahlten Position des Users sucht und diese anzeigt

Bin für jede Hilfe und jeden Tipp dankbar

Lokutos
21.09.2009, 17:07
hat die Tabelle
vms_doppler_zahlungen

eine spalte ID ???

wenn nicht dies ausführen:

ALTER TABLE `vms_doppler_zahlungen` ADD `id` int(11) NOT NULL auto_increment;dan änderst du


<td><font color="<? echo $text;?>"><center><? echo $position;?></td>

zu

<td><font color="<? echo $text;?>"><center><? echo $ez_liste['id'];?></td>

MFG Lokutos

* Ungetestet

Sledgedog
21.09.2009, 17:32
ja vms_doppler_zahlungen

hat eine Spalte id; uid; summe; summe_verdoppelt; einzahlungsdatum und status


(http://84.23.64.251/phpMyAdmin/sql.php?db=usr_web1_1&table=vms_doppler_zahlungen&sql_query=SELECT+%2A+FROM+%60vms_doppler_zahlungen %60+ORDER+BY+%60vms_doppler_zahlungen%60.%60status %60+ASC&token=509400ae9a85fda4d6b474aa21d4df8a)

Parl
21.09.2009, 18:04
Mir würden da nur eher serverlastige Lösungen einfallen...

Was geschieht denn mit den Dopplerauszahlungen? Werden die aus der vms_doppler_zahlungen gelöscht oder wird dort nur der Status geändert?

Wenn die gelöscht werden könntest du mal meine Funktion ausprobieren, hab nur mal die Tabellen und Spaltennamen angepasst, sollte aber vom System her ähnlich sein:

Direkt nach



while ($ez_liste = mysql_fetch_array($einzahlungen)) {
$nick= mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_userdaten where uid='".$ez_liste['uid']."'"));


Mal das einfügen:


$pos1 = mysql_fetch_array(db_query("SELECT COUNT(id) AS id FROM ".$db_prefix."_doppler_zahlungen WHERE einzahlungsdatum < ".$einzahlungen['einzahlungsdatum'].""));
$pos = $pos1['id'] + 1;

und ein Stück weiter


<td><font color="<? echo $text;?>"><center><? echo $position;?></td>

Das $position mal mit $pos ersetzen.

Bei meinem Popeldoppler mit knapp 300 Einzahlungen geht das, wie sich das auf grössere Doppler auswirkt kann ich leider nicht sagen.
MFG

Sledgedog
21.09.2009, 18:22
Der ändert nur den Status von 0 auf 1
und bei der doch sehr hohen Anzahl ein Aus- und Einzahlungen wäre das wohl dann eher schlecht

habe auch skandal schon kontaktiert, doch der ist derzeit beruflich sehr im Stress und somit zeitlich stark eingeschränkt

jpwfour
21.09.2009, 18:36
Wenn aber eine auto increment id dabei ist, braucht man ja nur (da ich mal advon ausgehe, dass die auftsiegend nach id ausgezahlt werden die einträge), die erst unausgezahlte id rausfinden (bspw. 254), und dann bei allen weiteren einträgen, die angezeigt werden, diesen wert von abziehen, also

eintrag mit #314

hat dann position:

314-254 = 60

usw.

musst mal in die tabellenstruktur (anleitung) schaun, was da so drinsteht

Sledgedog
21.09.2009, 19:04
das macht er ja in etwa auch

er sucht die erste position die auf "0" steht also noch nicht ausgezahlt ist
und dann die erste position vom user die auf "0" steht
dann zieht er das eine vom anderen ab
das klappt ja auch
nur die weiteren positionen nicht

ich bekomme es nur nicht hin, das er dann beim nächsten eben die position überspringt die er schon angezeigt hat

evtl. kann ich ja alle offenen auszahlungen meiner UID anzeigen lassen und von der jeweiligen ID die ID abziehen, die als nächstes mit Auszahlung dran ist

mal probieren