Suche nach String im Array

Anubia

Mitglied
Hallo :),

ich bekomme das folgende Problem einfach nicht gelöst. Wahrscheinlich stelle ich mich gerade etwas eingeschränkt an.

Problembeschreibung:
Ich versuche derzeit einen kleinen Newsverteiler zu schreiben. Der Versand etc. funktioniert alles soweit. Ich möchte jedoch eine Empfänger history einbauen, sodass ich weis welcher Empfänger welchen Newsletter erhalten hat bzw. nicht. Die History wird beim Versand automatisch erstellt (funktioniert auch).

Nun soll aber verglichen werden, welcher Empfänger bereits welchen Newsletter erhalten hat, wenn der zusendende Newsletter bereits bei einem Empfänger in der History vorhanden ist, dann soll dieser nicht nocheinmal an diesen verschickt werden. Das versuche ich durch die !in_array methode zu Lösen klappt leider aber nicht.

Kann mir da einer vll weiterhelfen?

------------------------------------------------------------------------------------------------------------
Variablen beschreibung:
Datenbank-Newsletter Clients
$db_client_id= Empfänger ID

Datenbank-Newsletter Inhalte
$newsletter = Die ID des zu sendenden Newsletters

Datenbank-Newsletter History
$db_newsletter_history_id = Die ID des bereits gesendeten Newsletters
$db_client_history = Die Empfänger ID in der History
------------------------------------------------------------------------------------------------------------


PHP:
for($i=0; $i<=count($db_client_count)-1; $i++){
if( !in_array($newsletter,$db_newsletter_history_id) AND !in_array($db_client_id[$i],$db_client_history)){

echo "hier stehen die offenen eMail-adressen"[$i]


}
 
Zuletzt bearbeitet:
Hi,

das kannst du ja gleich mit Sql klären:
PHP:
$sql = sprintf('SELECT `client_id`,`newsletter_id` FROM `newsletter_history` WHERE `newsletter_id` = %d AND `client_id` = %d',
				$newsletter_id,$db_client_id);

if (!$result = mysql_query($sql)) {
	// Newsletter verschicken
}

(Feldnamen und Variablen noch anpassen)
 
Danke Loomes, ja dieser Weg funktioniert :)

Aber es muss doch auch durch eine Schleife möglich sein oder ?

Greez
 
Tja,

da können wir jetzt eigentlich nur raten was an dem Code falsch sein könnte!

$db_newsletter_history_id = Die ID des bereits gesendeten Newsletters
$db_client_history = Die Empfänger ID in der History
Hört sich danach an als seien beide Variablen keine Arrays.

Oder der Inhalt der Arrays ist falsch/unvollständig!!

EDIT:

kleiner Schönheitsfehler wie ich finde:

Code:
$i<=count($db_client_count)-1;
=>
Code:
$i < count($db_client_count);

;)
 
Zuletzt bearbeitet:
Zurück