[PHP/SQL] - Arraywerte sortieren und in eine Zeile schreiben?



  • Hallo,

    Ich lese nun zu einem Eintrag verschiedene Daten aus der SQL Datenbank. Diese werden dementsprechend folgendermassen angezeigt:

    0028282, 222222, 21818181
    05.12.2006, 07.12.2006, 08.12.2006
    Stelle 1, Stelle 2, Stelle 3
    Email1, Email2, Email 3

    Es ist nun so, dass die Array aber so sind, dass die erste Spalte zu einander gehört. Also die Nummer 0028282, 05.12.06, Stelle1 und Email1 gehören zusammen. Wie stelle ich dies nun in einer Zeile dar? So dass es mir anschliessend möglich ist, dies in Art einer TAbelle in der Email darzustellen?? Hat jemand eine IDee? ODer welche möglichkeiten gibt es ?

    Abfrage

    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."'");
    
    		while($row = mysql_fetch_array($result)) {
    
    		$getifmail = $row['email'];
    		$getmail[] = $row['email'];
    		$getsettingnr[] = $row['settingnr'];
    		$getdatum[] = $row['datum'];
    		$getstelle[] = $row['stelle'];
    
    	}
    

    Darstellung (momentan) in der E-Mail

    $getsettingnr_str = implode(',', $getsettingnr);
    		$getdate_str = implode(',', $getdatum);
    		$getstelle_str = implode(',', $getstelle);
    		$getmail_str = implode(',', $getmail);
    		$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:
    
    Nummern: $getsettingnr_str
    Datum  : $getdate_str
    Stelle : $getstelle_str
    Email  : $getmail_str
    
    Freundliche Grüsse
    JobScout
    
    Bitte nicht auf diese E-Mail antworten!";
    

    Also jeweils der erste Wert einer Zeile gehört zum ersten Wert der nächsten Zeilen. Da durch ein "," getrennt ist, sind das wie drei Splaten. Doch wie in Zeilen darstellen, keinen Schimmer! Es sollte in etwa so aussehen können (die Richtigen Einträge aber zur richtigen Nummer zugeordnert):

    NUMMER ************** DATUM ************** STELLE ************** EMAIL
    00828282 ************** 05.12.06 ************** Stelle 1 ************** Email1
    22222222 ************** 06.12.06 ************** Stelle 2 ************** EMail2

    ************** = Leerzeichen. Anders hier nich möglich gewesen. 🙂

    und so weiter.. Weis hier jemand rat? 😕

    Vielen Dank zum vorraus. KOmme nich weiter,, ⚠ :xmas1:



  • Warum speicherst du denn die Einträge aus $row nicht in in einem Array: $data[] = $row; Dann hast du nämlich noch alle Daten zusammen und gehst einfach $data durch bzw. wozu überhaupt zwischenspeichern? Du kannst doch auch direkt in der while-Schleife immer einen $row-Eintrag ausgeben. Falls es um die Anordnung geht, so ist evtl. strpad für dich interessant...



  • Ich hab manchmal wirklich nen Blackout! Habe mir darüber den Kopf zerbrochen. Am Samstag setze ich mich hin und fing einfach an zu schreiben. Und siehe da es funktioniert! 🙂

    Habe es mit folgender Zeile, welche ich in der While-Schleife eingesetzt hab, gelöst. Die Sortierung erfolgt automatisch durch SORT und Order by DESC in der SQL 🙂

    Jetzt nur noch MIME-CLASS installieren damit auch die Tabellendarstellung in der Mail angezeigt wird.

    $content .= '<tr><td>'.$row['datum'].'</td><td>'.$row['stelle'].'</td><td>'.$row['settingnr'].'</td><td>'.$row['email'].'</td></tr>';
    

    @Flenders: Die funktion strpad klingt Interessant.. schaue dies mir mal näher an. 🙂

    Freundliche Grüsse

    Wolf (Kann den Nick eben nich meher ändern *g*)


Log in to reply