[PHP & MySQL] - Ein Array in mehrere Aufteilen?
-
Hallo Zusammen!
Ich schreibe in PHP und SQL gerade eine JobScout-Börse. Einsehbar unter www.wolfsoft.ch/modules.php?name=Projects (dort ist dann auch der Testlink angegeben).
Nun habe ich noch eingebaut, dass vergessene Eintragsnummern an die jeweilige E-Mail Adresse geschickt werden. Wenn es nur ein Eintrag ist, kein Problem. Doch was mache ich wenn es mehrere Einträge mit der gleichen E-mail sind, aber verschiedene Eintragungscodes?
Ich habe von mir "info@woldsoft.ch" zwei Einträge drin. Beim abruf wird mir jeweils nur der letzte Eintragungscode geschickt. Lasse ich diese durch eine while-Schlaufe gehen, dann werden mir alle Nummern zur jeweilgen E-Mail angezeigt, also alle beide.
Nur wie schicke ich die Nummern per E-mail untereinander? Folgendes Code-Beispiel ruft die Eintragungsnummer zur E-Mail Adresse ab:
mysql_connect($db_host, $db_uname, $db_pass); mysql_select_db($db_name); $result=mysql_query("SELECT datum, stelle, anstellung, arbeitgeber, zustaendig, adresse, plz, ort, tel, email, link, settingnr FROM free_jobs WHERE email='".$idemail."'"); $row = mysql_fetch_array($result); $getmail = $row['email']; //Problemzone $getsettingnr = $row['settingnr']; //Problemzone if((!$idemail == $getmail) || ($idemail == "")) { echo '<fieldset style="border : 2px solid black"><legend>Eintragungsnummer vergessen</legend><br>Die angegebene E-Mail ist nicht in unserer Datenbank registriert.<br><a href="modules.php?name=jobscout&file=set&update=forget_id&get=false"><u>Zurück / Nochmal versuchen</u></a></fieldset><br><bR><center>JobScout 1.0 ist ein Projekt von <a href="http://www.wolfsoft.ch" target="_new"><u>WolfSoft.ch</u></a><br>© Copyright by Kurz Dominic</center>'; } else { $header = "From:automail@jobscout.mail(JobScout - Reminder)"; $betreff = "Ihre Eintragungs-Nummer"; $nachricht = "Sehr geehrter JobScout-Nutzer, Sie haben ihre Eintragungsnummer um Ihre Einträge zu bearbeiten vergessen? Folgende Eintragungsnummern sind Ihnen zugeordnert: Ihre Nummer(n): $getsettingnr Freundliche Grüsse JobScout Bitte nicht auf diese E-Mail antworten!"; mail($getmail,$betreff,$nachricht,$header);
Setze ich die Zeilen mit //Problemzone kommentiert in eine While-Schleife, erhalte ich eben beide Eintragsnummern welche zur jeweilgen E.Mail gehört.
Ich weiss nun nicht, wie ich es anstellen soll, dass alle Nummern untereinander in der E-Mail dargestellt werden, wenn sich diese in der While befinden?
$row['settingnr'] ist ja EIN Array, dann wird mir ja bei der E-Mail trotzdem nur eine Nummer angezeigt statt alle? Wie geht das?
Sorry wegen dem langen Beitrag, ich wusste nicht wie ich das sonst erklären sollte...
Freundliche Grüsse
Wolf / Programmer
-
Du kannst z.B. entweder vorher die ganzen Eintragsnummern in ein weiteres Array schreiben und dieses dann über implode in eine z.B. komma-separierte Liste umwandeln. Oder du packst das ganze über eine do-while-Schleife in deinen else-Block wo du die Nachricht zusammensetzt und hängst dann die Eintragsnummern über .= an deinen String an.
-
Danke!
Hm... nun welchen Operator muss ich in der While-Schleife nehmen?
Derzeit bekomme ich folgendes Ergebnis:30267601, Array, Array,
Obwohl Aarray und Aaray ebenfalls Nummern sein müssten. In der E-Mail wird nur die erste Nummer (siehe oben) angezeigt.
Problemzone:
$fid = $row['settingnr']; do {echo $fid++, ", "; } while($fid=mysql_fetch_array($result)); $header = "From:automail@jobscout.mail(JobScout - Reminder)"; $betreff = "Ihre Eintragungs-Nummer"; $nachricht = "Sehr geehrter JobScout-Nutzer, Sie haben ihre Eintragungsnummer um Ihre Einträge zu bearbeiten vergessen? Folgende Eintragungsnummern sind Ihnen zugeordnert: Ihre Nummer(n): ".$row['settingnr']."
Weiss nich was mit mir los ist, komme nicht dahinter
mfg
Pro / Wolf
-
oben folgendes:
while($row = mysql_fetch_array($result)) { $getmail = $row['email']; $getsettingnr[] = $row['settingnr']; } $getsettingnr_str = implode(', ', $getsettingnr);
und unten bei der Ausgabe dann einfach $getsettingnr_str einsetzen...
-
Danke, das klappt wunderbar!
Jetzt kann ich das ganze noch erweitern.. mal schaun obs jetzt auch ohne grösseren Zwischenfälle klappt.
mfg
Wolf / Pro