Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
brauche hilfe beim filtern [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
brauche hilfe beim filtern


 
ultrasonic
26-09-2003, 11:10 
 
Hallo zusammen !!

also habe eine mysql db für eine gewinnspiel

die leute spielen mit und werden auch brav in die db übernommen.

wenn sie schon bei dem aktuellen mitgespielt haben werden sie auch ausgefiltert.
so weit so gut
nun mein problem....

wenn ein user bei zwei oder mehr gewinnsielen mitspielt habe ich ihn dann zwei oder mehr mals drin.

das ist ja soweit auch ok aber für eine adress auswertung brauche ich jedeemal wenn ich die liste auslese nur die leute die das erstemal mit spielen.
(ich hoffe das versteht jemand : ) ).

also immen nur die neuen adressen!

hier ansaätze meinen scriptes und die nötigen felder:


Felder: Anrede,Name,Vorname,Strasse,Plz,Ort

so gibt er mir ja alle aus :

$ergebnis_output = mysql_query("SELECT* FROM Adressen_gewinnspiel Order by Name ASC",$db_output);


wie muss ich das ganze anlegen damit ich vergleichen kann wer neu ist ???

Bitte helft mir mal einer

mfg

ultrasonic

 
mrhappiness
26-09-2003, 11:16 
 
ich versteh's nicht :)

 
MoRtAlAn
26-09-2003, 11:17 
 
woran erkennt man den, ob leute "neu" sind ??

steht das in ner anderen tabelle oder in einem feld, das du nicht genannt hast ??

gruss

 
ultrasonic
26-09-2003, 11:19 
 
also nochmal



user geben ihre adresse gür das gewinns iel ein

ok
nur kann ja auch ein user bei mehreren gewinnspielen mitmachen

also redundanz
der datensätze


wie bekomme ich aber raus wer das erstemal mitspielt

mfg ultrasonic

 
ultrasonic
26-09-2003, 11:21 
 
das ist es ja ich denke ich brauche eine zweite tabelle wo die leute die ich schon ausgelesen habe drin stehen oder????

aber wie?

 
MoRtAlAn
26-09-2003, 11:24 
 
indem du irgendwo vermerkst, welcher user wo mitspielt und alle user raussuchst, die nirgendwo mitspielen!

gruss

 
ultrasonic
26-09-2003, 11:27 
 
ich habe ein feld drin wo der gewinnspiel zeitraum beim anmelden mit übergeben wird so das ich ja auch ermitteln kann welche user beim aktuellen gewinnspiel dabei sind

ich brauche halt ne liste von dennen die das erstemal dabei sind

und ich komme nicht daruf wie?

 
mrhappiness
26-09-2003, 11:40 
 
warum brauchst du die user,die das erstemal dabei sind?

wenn du bei gewinnspiel 37 schon zweimal teilgenommen hast und ich das erste mal dran teilnehme,was unterscheidet mich dann von dir?

 
ultrasonic
26-09-2003, 11:44 
 
weil mein auftragsgeber die adressen haben will gegen cash

und er will keine doppelten denn er zahlt nur einmal pro adresse und nicht zweimal für ein und die selbe klar

das ganze ist zwar nen bissle fies adressen zu verkaufen aber wenn die leute die teilnahme bedingungen nicht richtig lesen ist das nicht meinen sache.

 
Adler
26-09-2003, 11:44 
 
Wenn du ein Feld hast in dem du den Zeitraum ermittelst dann versuch doch mit $ergebnis_output = mysql_query("SELECT* FROM Adressen_gewinnspiel WHERE FELDZeitraum=ZeitraumdenDubrauchst Order by Name ASC",$db_output);

Wobei ich nicht verstanden habe wie du den Zeitraum festlegst aber das weißt du ja ;)

 
Xenalla
27-09-2003, 04:52 
 
Wie jetzt... Du musst nur wissen, ob Teilnehmer A bereits irgendwo
mitgespíelt hat oder nicht? Warum erweiterst Du die Tab nicht einfach um
ein Feld? Default 0, sobald er wo mitspielt -> 1. Dann sind alle nullen die
neuen...
:confused:

Edit: Zeilenumbrüche

 
ultrasonic
27-09-2003, 10:10 
 
moin
ich habe die sache folgender maasen gelöst

ich habe eine zweite tabelle angelegt

jedesmal wenn ich die teilnahmer aufrufe wird mit der zweiten verglichen

alle die noch nicht drin stehen werden mir angezeigt und danach in die zweite eingetragen
somit habe ich immer die neuen
klar


das ganze hat den zweck das mein auftragsgeber die adressen verkaufen will.

allerding zahlen seine kunden ja nur einmal für eine addresse und nicht zweimal

iich hoffe einer von euch konnt mir folgen

hier nochmal der code

$ergebnis_output = mysql_query("SELECT * FROM Adressen_gewinnspiel Order by Name ASC",$db_output);
include('tabellenkopf');
while ($daten = @mysql_fetch_array($ergebnis_output)){

$Anrede= $daten[Anrede];
$Name = $daten[Name];
$Vorname = $daten[Vorname];
$Strasse= $daten[Strasse];
$Plz= $daten[Plz];
$Ort= $daten[Ort];
$Land= $daten[Land];

$db_check = mysql_connect ($dbserver, $dbuser, $dbpass);
echo mysql_error($db_check );
$sqlbefehl_check = "SELECT * FROM Adressen_gewinnspiel_speicher WHERE Anrede='$Anrede' AND Name='$Name' AND Vorname='$Vorname' and Strasse='$Strasse' and Plz='$Plz' and Ort='$Ort' and Land='$Land'";

$ergebnis_check = mysql_query($sqlbefehl_check,$db_check);
$data_check = mysql_fetch_array($ergebnis_check);
if (isset($data_check[id])) { }
else {
<td ><? echo
$daten[Anrede]; ?><td>
.
.
.
.
.
.
$sqlbefehl_insert = "INSERT INTO Adressen_gewinnspiel_speicher (Anrede,Name,Vorname,Strasse,Plz,Ort,Land,geb_jahr,Tel,E_Mail) VALUES ('$Anrede','$Name','$Vorname','$Strasse','$Plz','$Ort','$Land','$geb_jahr','$Tel','$E_Mail')";
$ergebnis = mysql_query($sqlbefehl_insert,$db_check);}


}?> </table>
</center>
</div>

 
mrwhorf
27-09-2003, 10:22 
 
Wenn ich das Ganze jetzt richtig verstanden habe, will Dein Auftraggeber jede Adresse nur ein einziges Mal. (Logisch, für eine Adresse zweimal zahlen ist Blödsinn)

Hätte da nicht in Deiner Tabelle ein einziges zusätzliches Feld gereicht?
Z.B. in der Art
verkauft ENUM 'Ja','Nein' default 'Nein'

Damit kannst Du dann mit einem einzigen SELECT alle Adressen auslesen, die bisher noch nicht verkauft wurden und wenn eine Adresse mehrmals vorhanden ist, kann man das im SELECT gleich rausfiltern.
Bei jedem Auslesen oder Exportieren der Daten, wird dann das ENUM mit 'Ja' gefüllt.

 
ultrasonic
27-09-2003, 10:52 
 
hast ja eigentlich recht
werde mir das script nochmal vornehmen

 
Xenalla
27-09-2003, 17:14 
 
Das wär ja dann genau das, was ich auch sagte...

 
mrwhorf
27-09-2003, 17:26 
 
@Xenalla
Stimmt, sorry, hab ich doch glatt übersehen! :rolleyes:

PS:
Aber nicht nur ich. ultrasonic anscheinend auch! :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:40 Uhr.