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.
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 ;)
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>
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
Das wär ja dann genau das, was ich auch sagte...
@Xenalla
Stimmt, sorry, hab ich doch glatt übersehen! :rolleyes:
PS:
Aber nicht nur ich. ultrasonic anscheinend auch! :D
|
|