php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.08.2010, 23:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Genau. Und wenn Du dagegen die Reihenfolge
Code:
Schulze | schuschu@emaxple.com | Tonmeister  | Tonmeister
Müller  | mueller@emaxple.com  | Bäcker      | Bäckermeister
Schulze | schuschu@emaxple.com | Tonmeister  | Toningenieur
hast, verschickst Du eben 4 E-Mails, weil die Adresse stets wechselt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.08.2010, 15:32  
Erfahrener Benutzer
 
Registriert seit: 28.10.2008
Beiträge: 181
Rilana ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für alle eure Unterstützung! Ich habe nun folgendes herausgefunden:

Ich habe die query etwas verfeinert und habe herausgefunden dass wenn ich die $html var vor der Schlaufe definiere, diese einen Haufen Einträge generiert.

Mir ist aber zum jetzigen Zeitpunkt noch immer nicht klar wie ich die E-Mail vor dem Gruppenbruch senden soll? Denn mach ich das, versende ich pro jobID einen Newsletter obwohl ich es ja richtig Sortiert habe zuerst nach E-mail...

PHP-Code:
    WHERE newsletter_beruf.userID=newsletter.userID GROUP BY stelle.stelleID order by newsletter.userID DESCstelle.stelleID DESCstelle_beruf.berufID DESC";
     
$result = mysql_query($query,$con); 
while ($myrow = mysql_fetch_array($result)){ 
            $html = ""; 
Nur so erhalte ich keine Duplikate...
Rilana ist offline  
Alt 26.08.2010, 15:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Es heißt Schleife!

Zitat:
Mir ist aber zum jetzigen Zeitpunkt noch immer nicht klar wie ich die E-Mail vor dem Gruppenbruch senden soll? Denn mach ich das, versende ich pro jobID einen Newsletter obwohl ich es ja richtig Sortiert habe zuerst nach E-mail...
Ich schlage vor, DU machst das mal auf einem Zettel.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 26.08.2010, 16:46  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

PHP-Code:
$email ='';
$emailtext '';
// Schleife durch die Selektion
while ( $row mysql_fetch_assoc($erg) ) {
  
$email_jetzt $row['email'];
  if ( 
$email_jetzt != $email and $email !='' ) {
    
// $emailtext an $email senden
    
$emailtext '';
    
$email $email_jetzt;
  }
  
// Email bauen
  
$emailtext $emailtext $row[.. ];

Das sind aber irgendwie Fingerübungen / Grundlagen.

$email_jetzt ist eher überflüssig - man kan da auch direkt $row['email'] abfragen. Ich habs hier nur der Deutlichkeit halber so benannt.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 28.08.2010, 18:23  
Erfahrener Benutzer
 
Registriert seit: 28.10.2008
Beiträge: 181
Rilana ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke, Wolla für das Bsp. aber irgendwie versteh ich es nicht ganz, habe was über fecht_assoc gelesen und das braucht man um schon geöffnete abfragen weiter abzufragen, stimmt oder? Jedenfalls nehm ich an dass ich deinen Code in meine schon geöffnte while ($myrow = mysql_fetch_array($result)){ Schleife einbaue. Oder ist das falsch?

Sorry, ich wills ja verstehen und versuch's ja mit lesen und so aber irgendwo hab ich da nen riesen Knoten!

Denn ich starte ja schon ne Schleife mit der mysql abfrage und wenn ich dann weiter Schleifen einbaue, dann multipliziert sich meine Ausgabe damit!

Danke
Rilana ist offline  
Alt 28.08.2010, 18:35  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Warum engagiert ihr keinen Profi für so etwas?

Steht doch ne Firma dahinter die ja auch was gescheites haben will nehme ich mal an
__________________
"Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]
Destruction ist offline  
Alt 28.08.2010, 18:52  
Erfahrener Benutzer
 
Registriert seit: 28.10.2008
Beiträge: 181
Rilana ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Weil ich es machen will und es lernen will!
Rilana ist offline  
Alt 29.08.2010, 12:24  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Schau dir mal den Unterschied bzw. die Gemeinsamkeiten von mysql_fetch_array() und mysql_fetch_assoc an.
PHP: mysql_fetch_array - Manual
PHP: mysql_fetch_assoc - Manual

In meinem code habe ich SELECT FROM ... und mysql_query() weggelassen, weil es ja nur um die Verdeutlichung des Gruppenwechsels ging. Wenn du ein derart sensibles System bauen willst ohne solche Basics zu beherrschen, dann lass da später lieber noch mal ein paar Kollegen drüberschauen. Das kann sonst teuer werden.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 29.08.2010, 23:31  
Erfahrener Benutzer
 
Registriert seit: 28.10.2008
Beiträge: 181
Rilana ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Upps ich glaub ich habs geschafft! Ich weis nicht wie orthodox das ganze ist, aber es funktioniert! Was meint Ihr? Vielen vielen vielen Dank an euch alle!

PHP-Code:
//letzte registrierte E-Mail Adresse herausfinden
$queryL "SELECT * FROM newsletter order by userID DESC";
$resultL mysql_query($queryL,$con);
$last = (mysql_fetch_array($resultL));
$emailL = ($last["email"]);

// nach join
$result mysql_query($query,$con);

// erste E-Mail rausfinden
$first = (mysql_fetch_array($result));
$emailS = ($first["email"]);

$plain "hallo newsletter";

while (
$myrow mysql_fetch_array($result)){

    
$email = ($myrow["email"]);

// html pro E-Mail bauen
    
if ($emailS == $email) {
          
$html .= '<p>' $myrow["stelleID"] . '</p>';
          
$html .= '<p>' $myrow["stellePosition"] . '</p>';
          
$html .= '<p>' $myrow["stelleAngebot"] . '</p>';
          
$html .= '<p>' $myrow["email"] . '</p>';
         }

// Bei E-Mail wechsel Newsletter an gespeicherte E-Mail senden
if ($emailS != $email) {
            
$mail->AddAddress("$emailS");
              
$mail->Subject "Our Newsletter";
              
$mail->Body $html;
              
$mail->AltBody $plain;
              
$mail->Send();
              
$mail->ClearAddresses();

// HTML und gespeicherte E-Mail neu setzen             
                
$html='';
                
$emailS $email;
               }
}

// Newsletter an letzten registrierten User versenden.
if ($emailS == $emailL) {
               
$mail->AddAddress("$emailS");
              
$mail->Subject "Our Newsletter";
              
$mail->Body $html;
              
$mail->AltBody $plain;
              
$mail->Send();
              
$mail->ClearAddresses();
               } 
Rilana ist offline  
Alt 20.12.2010, 15:46  
Erfahrener Benutzer
 
Registriert seit: 28.10.2008
Beiträge: 181
Rilana ist zur Zeit noch ein unbeschriebenes Blatt
Standard GROUP BY Fehler

Hallo liebe Leute

Habe mich wieder mal an das Entwickeln des automatisch generierten newsletter gemacht. Habe folgenden Fehler gefunde:

Ich habe eine MsSQL Abfrage die so aussieht:
PHP-Code:
$query "SELECT
            *
        FROM 
            stelle 
        JOIN 
            stelle_region
        ON
            stelle_region.stelleID=stelle.stelleID
        JOIN
            region
        ON
            region.regionID=stelle_region.regionID
        JOIN 
            stelle_beruf
        ON
            stelle_beruf.stelleID=stelle.stelleID
        JOIN
            beruf
        ON
            beruf.berufID=stelle_beruf.berufID
        JOIN
            newsletter_beruf
        ON
            newsletter_beruf.berufID=stelle_beruf.berufID    
        JOIN
            newsletter
        ON
            newsletter.userID=newsletter_beruf.userID
            
        WHERE newsletter_beruf.userID=newsletter.userID AND stelle.stelleDatum > '$dueDate' GROUP BY stelle.stelleID order by newsletter.userID ASC, stelle.stelleID DESC, stelle_beruf.berufID DESC"

dies schien auf den Esten Blick zu funktionieren, mit GROUPE BY konnte ich das Problem des mehrfache auflisten von stellen unterbinden, doch zugleich habe ich mir somit ein neues Problem geschaffen, denn wenn ich nun zBsp. die Stelle 1 für die ersten User abfrage, dann wird diese für den zweiten User nicht mehr aufgelistet.

PHP-Code:
while ($myrow mysql_fetch_array($result)){
 
$beschrieb substr($text,0,350);
    
$email = ($myrow["email"]);


    
//e-mail bauen 
    
if ($emailS == $email) {
          
$html .= '<td colspan="2" style="font-size: 14px;
                   font-family: Arial, Helvetica, sans-serif;
                    color: #666666;
                    font-weight: bold;
                    line-height: 25px;
                    font-size:14px;">' 
$myrow["stellePosition"] . '
                    <font style="font-size:10px;"> (jobNr. ' 
$stelleID ') </font></td></tr>';

          
$html .= '<tr><td style="font-size: 12px;
                    font-family: Arial, Helvetica, sans-serif;
                    color:#000000; line-height:16px;"> Arbeitsort:' 
$region '</td></tr>';

          
$html .= '<tr>
                    <td colspan="2" style="font-size: 12px;
                    font-family: Arial, Helvetica, sans-serif;
                    color:#000000; line-height:16px;">' 
$beschrieb;
          
$html .= '... <a style="text-decoration: none;" href="http://www.smartpersonal.ch/stellen.php?stelleID=' .$stelleID;
          
$html .= '"> |weiter ></a></td>
                    </tr>'
;
          
$html .= '<tr><td colspan="2" style="border-bottom-width: 1px;
                    border-bottom-style: solid;
                    border-bottom-color: #FFFFFF;"><hr /></td>
                    </tr>'
;
         }

     
// e-mail wechselt, senden!
      
if ($emailS != $email) {

                 
$html .= '<tr><td colspan="2">&nbsp;</td></tr>
                        <tr><td>&nbsp;</td></tr>
                        <tr>
                        <tr>
                          <td colspan="2" style="background-color:
                         #3972B3; color:#FFF; font-family:Arial, Helvetica, sans-serif; font-size:12px; padding:10px;">Sie k&ouml;nnen den smartLetter jederzeit <a style="color:#FFF; font-style:italic; font-weight:bold; text-decoration:none;" href="d">hier</a> abmelden.</td>
                         </tr>
                        </table>'
;
                    
            
$mail->AddAddress("$emailS");
              
$mail->Subject "smartLetter";
              
$mail->Body $html;
              
$mail->AltBody $plain;
              
//$mail->Send();
            
echo "<p class='mails'>$emailS</p>";
              
$mail->ClearAddresses();
            
            echo 
"$emailS";
            echo 
"$html";

            
$html=''
hat mir jemand einen Tipp wie ich aus diesem Dilemma finde?
Wäre euch sehr dankbar!!!!

Danke, Rilana
Rilana ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
newsletter anmeldung gerhard PHP Tipps 2010 3 08.05.2010 19:55
Scriptsuche Emailadressen-Eintrag für Newsletter - Script aj2210 Scriptbörse 10 16.10.2009 20:18
Foxmail + HTML Newsletter beist HTML, Usability und Barrierefreiheit 4 18.09.2009 15:53
Scriptsuche Newsletter Rezeptfrei Scriptbörse 2 19.01.2009 08:56
Frage wegen newsletter (variable) robydog PHP Tipps 2008 15 03.05.2008 19:22
argh.... newsletter... ähh...?! haubna PHP Tipps 2008 1 14.02.2008 18:44
Newsletter versenden, wie und was beachten? PsychoEagle Off-Topic Diskussionen 7 12.10.2007 12:37
newsletter funktioniert nicht! $$$ ThiKool $$$ PHP Tipps 2006 18 13.10.2006 18:59
Newsletter Prob mit IF mokus PHP Tipps 2006 2 18.04.2006 00:52
Newsletter an VIELE User schicken Lia PHP Tipps 2005 13 27.05.2005 15:43
html newsletter bild mitschicken PHP Tipps 2005 1 17.01.2005 09:42
nur noch aktive newsletter emails / ohne bestätigung PHP Tipps 2004-2 11 25.12.2004 14:34
Variablenname dynamisch zusammensetzen RoDa PHP Tipps 2004 3 19.09.2004 14:13
Dynamisch erstellte Variablen ansprechen PHP Tipps 2004 2 08.08.2004 20:15
newsletter problem wizzardxx PHP Tipps 2004 0 17.07.2004 13:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
massenemail dynamisch zusammensetzen, user id newsletter, newsletter dynamisch, php mysql_fetch_array dynamisch

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum