php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.01.2011, 23:09  
Neuer Benutzer
 
Registriert seit: 29.01.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Dennis Z befindet sich auf einem aufstrebenden Ast
Standard 1 PHP Script - Seite nicht erreichbar

Hallo,
ich hätte einmal eine Frage. Ich habe ein PHP-Script geschrieben, welches mit einer MySQL-DB zusammenläuft (MyISAM) und Newsletter verschickt.

Die Daten werden via mysql_fetch_assoc aus der DB gelesen und in der Schleife via PHPmail Klasse versendet, d.h. in der Schleife wird jeweils das neue Objekt gebildet und die Mail verschickt - dies dauert natürlich.

Nun passiert folgendes - während er die Daten liest und Mails verschickt, sind sämtliche anderen Unterseiten nicht mehr erreichbar, d.h. der Browser lädt und lädt aber die Hauptseite wird nicht angezeigt, bis das Script mit dem Versenden der Mails fertig ist.

Bei einem anderen Projekt klappt derselbe Aufbau ohne Probleme, dort ist die Seite noch erreichbar.

Nun wollte ich fragen, an welcher Einstellung das liegen könnte? Es handelt sich bei beiden Seiten um MyISAM-Datenbanken.
Dennis Z ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.01.2011, 00:09  
Erfahrener Benutzer
 
Benutzerbild von bitsnack
 
Registriert seit: 01.08.2010
Beiträge: 352
PHP-Kenntnisse:
Fortgeschritten
bitsnack befindet sich auf einem aufstrebenden Ast
bitsnack eine Nachricht über ICQ schicken bitsnack eine Nachricht über MSN schicken bitsnack eine Nachricht über Skype™ schicken
Standard

Könnte es sein dass die Datenbank in der Schleife immerwieder ansprichst? Zeig mal deinen Code.
__________________
Programming today is a race between developers striving to build better idiot-proof programs, and the universe trying to produce better idiots. So far, the universe is winning.
bitsnack ist offline   Mit Zitat antworten
Alt 30.01.2011, 00:14  
Neuer Benutzer
 
Registriert seit: 29.01.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Dennis Z befindet sich auf einem aufstrebenden Ast
Standard

Hi,
PHP-Code:
sql "SELECT name, vorname, email, gesperrt, kundennummer FROM kunden WHERE gesperrt != '1' AND newsletter = '1';";
$dosql mysql_query($sql) OR die(mysql_error());


while(
$row mysql_fetch_assoc($dosql))
{
$name $row['name'];
$vorname $row[vorname

[...]

$mail->Send();


Der Code zw. [...] ist nur Auruf der PHPMailer-Klasse, welche nicht auf die DB zurückgreift. Bei den anderen Dateien meines Scripts, die so ähnlich arbeiten also z.B. Kundendaten übertragen, gibts das Problem auch. Bei einem ganz anderen Projekt welches auf einem anderen Server liegt und auch solch eine Schleife hat bzw. genau das gleiche Newsletterscript nutzt, gibt es das Problem nicht.

Geändert von Dennis Z (30.01.2011 um 00:18 Uhr).
Dennis Z ist offline   Mit Zitat antworten
Alt 30.01.2011, 00:30  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Um wie viele Mails per Charge geht es ?
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 30.01.2011, 01:04  
Neuer Benutzer
 
Registriert seit: 29.01.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Dennis Z befindet sich auf einem aufstrebenden Ast
Standard

Bei dem Problemscript sind es ca. 3000, beim Script wo alles geht ca. 300, das ganze dauert ein paar Minuten bei beiben bis alle versendet worden sind.

Ich habe mit dem Gedanken gespielt, ob MySQL die Tabellen während des Abarbeitens sperrt, bin mir aber nicht sicher.
Dennis Z ist offline   Mit Zitat antworten
Alt 30.01.2011, 01:06  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Instanzier die $mail außerhalb der Schleife und benutz in der Schleife clear*() falls es sich um den PHPMailer handelt. Das erspart dir zumindest mal die 3000fache Objekterzeugung.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 30.01.2011, 01:07  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

nuja generell würd ich mal drauf tippen das der inet-dienst oder der network spooler absäuft wenn 3000 Nachrichten vom SMTP ins netz gedrückt werden. Das der dann bei eingehenden Anfragen keinen mucks mehr macht wundert mich nicht.

Wie wärs wenn du die mails in packs versendest, sagen wir 20 per charge oder 50 per charge und das ganze per cronjob abwickelst. Temporäre tabelle mit allen "Jobs" erzeugen, und nach jedem abgearbeiteten Job die jeweiligen 50 einträge aus der db löschen, 2-5 sekunden pause bis zum nächsten pack. Sollte dann etwas entspannter ablaufen.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 30.01.2011, 01:14  
Neuer Benutzer
 
Registriert seit: 29.01.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Dennis Z befindet sich auf einem aufstrebenden Ast
Standard

Hi troy bzw. Chris,
die Objekterzeugung wurde bereits vor die Schleife gelegt. Am Ende jedes Durchlaufs wird dann ein AddressesClear() durchgeführt.

Das Problem besteht nicht nur beim Versenden von Mails, sondern z.B. auch beim Übertragen von Kundendaten von Tabelle A nach Tabelle B. Solange diese Übertragung in solch einer Schleife stattfindet, geht nirgends mehr was, bis das Script bzw. die Schleife erfolgreich beendet wurde.

Sprich:

PHP-Code:
sql "SELECT name, vorname, email, gesperrt, kundennummer FROM kunden WHERE gesperrt != '1' AND newsletter = '1';";
$dosql mysql_query($sql) OR die(mysql_error());


while(
$row mysql_fetch_assoc($dosql))
{
$insert "INSERT INTO..";
$doinsert mysql_query($insert);


Dabei handelt es sich auch durchaus auch um hunderte Datensätze / Kunde.
Dennis Z ist offline   Mit Zitat antworten
Antwort


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
Premature end of script headers: index.php im Zusammenhang mit Performanceverlust Asipak Server, Hosting und Workstations 10 29.10.2010 14:13
neuen Datensatz in der gleichen Seite laden saki81 PHP Tipps 2010 5 17.04.2010 17:53
script ausbauen? poldy4124 JavaScript, Ajax und mehr 7 05.04.2010 14:21
[Erledigt] Script um zu gucken ob Seite online ist funktioniert nicht tolja PHP Tipps 2010 9 01.03.2010 21:01
Seite für mobile Handy-Browser anpassen gruber99 PHP-Fortgeschrittene 14 25.01.2010 16:08
Suche Script zum Wegklicken von Webseiten bierregal Scriptbörse 3 08.01.2010 02:07
Php einsteiger bekommt die Seite einfach nicht online... Ludvigo PHP Tipps 2009 3 26.09.2009 15:12
Java Script öffnet nicht die gewünschte Seite RebellionFFM JavaScript, Ajax und mehr 0 08.11.2007 14:31
Suche Script zum Abfragen von Inhalten einer anderen Seite Beitragsarchiv 7 26.09.2005 19:21
Kontaktformular, welches auf neue html Seite führt PHP Tipps 2005-2 4 20.07.2005 11:21
Seite aus script aufrufen nixdorf PHP Tipps 2005 2 15.02.2005 21:18
Script welches eine Seite aufrufen soll.. PHP Tipps 2005 10 02.02.2005 12:48
Script zur erkennung der letzten Seite. PHP-Fortgeschrittene 3 19.01.2005 13:57
Script gesucht: Seite "XYZ" wird aller "(Zeit Pain-maker PHP Tipps 2004 6 20.06.2004 19:15
[Erledigt] PHP Eine neue PHP seite automatisch öffnen PHP Tipps 2004 1 19.06.2004 12:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
script webseite nicht erreichbar, php wenn seite \nicht erreichbar\, script webseite verfügbar in, javascript ajax seite nicht erreichbar, datensätze senden dann 5sek pause php, php scriptseite, php wenn seite erreichbar -fsockopen, php wenn webseite nicht erreichbar ist, dann, php seiten nicht erreichbar, php script newsletter pause, php seite in unterseite nicht aufrufbar, website wird mit php script nicht mehr angezeigt, php skripte nicht erreichen., e mail senden wenn seite nicht erreichbar php script, php seite nicht erreichbar, seite nicht erreichbar machen php, kann die php skripte nicht erreichen., script url erreichbar, php skript seite nicht erreichbar andere seite anzeigen, php seite nicht erreichbar andere seite anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:59 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