[PHP/MYSQL] Array verschil

Pagina: 1
Acties:

  • drikus
  • Registratie: Juni 2000
  • Laatst online: 25-03 07:18
Is iets vreemds aan de hand. Ben een beetje aan het stoeien met een smtp class omdat php mail () niet wordt ondersteund.

Hardcoded in het script de meel adressen geplaatst voor $list

Situatie 1
PHP:
1
2
3
4
5
6
7
8
<?
$list = array('email1@com.nl', 'email2@com.nl');

  for($a=0; $a<count($list); $a++) {
    $to=$list[$a];
        $smtp->SendMessage( $from, array( $to ), array( "To: $to", "Subject: $subject", "Content-Type: $ContentType" ), $message );
    }
?>

Bovenstaande gaat goed

Situatie 2
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
$lijst = mysql_query("select email from $prefix"._users." where (approved='1')");
        $aant  = mysql_num_rows($lijst);
        $sendto = "";
    for($i=1;$i<=$aant;$i++):
    $rij = mysql_fetch_array($lijst);
    $sendto .= $rij["email"];
    $sendto .= ($i!=$aant)?"', '":"";
    endfor;  
    $message = "Heel veel";
        $list = array ("'".$sendto."'"); 
        for($a=0; $a<count($list); $a++) {
    $to=$list[$a];
        $smtp->SendMessage( $from, array( $to ), array( "To: $to", "Subject: $subject", "Content-Type: $ContentType" ), $message );
    }
?>

En dit gaat niet goed.

De waarden in array $list zijn hetzelfde 'meel1@com.nl', 'meel2@com.nl' maar als ik $to echo na de for loop krijg ik voor situatie 1 het laatste emeel adres terug en voor situatie 2 de hele string ??

Ik ben verbaasd mis ik hier iets fundamenteels. ??

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$lijst = mysql_query("select email from $prefix"._users." where (approved='1')") or die("query mislukt");
//mooier is:
    $list=array();
    while ( $rij = mysql_fetch_array($lijst) ) {
       $list[] = $rij["email"];
    }
    $message = "Heel veel";
    for($a=0; $a<count($list); $a++) {
        $to=$list[$a];
        $smtp->SendMessage( $from, array( $to ), array( "To: $to", "Subject: $subject", "Content-Type: $ContentType" ), $message );
    }
?>

Dit zou goed moeten gaan.
Je probeert met $list = array ("'".$sendto."'");
een array te creeeren, maar volgens mij kan dat niet zo.

[edit]
De waarden in array $list zijn hetzelfde 'meel1@com.nl', 'meel2@com.nl' maar als ik $to echo na de for loop krijg ik voor situatie 1 het laatste emeel adres terug en voor situatie 2 de hele string ??
wat is de waarde van count($list) ?
als ik dit zo zie lijkt het alsof het $list array maar 1 waarde bevat, namelijk de concatenatie van alle e-mail adressen ( $sendto .= $rij["email"] plakt ze aan elkaar)

  • drikus
  • Registratie: Juni 2000
  • Laatst online: 25-03 07:18
Ja maar of ik nou zo doe

$list = array('email1@com.nl', 'email2@com.nl');

ofzo

$list = array ("'".$sendto."'");

$sendto is al 'gestript' uit de select array en bevat email1@com.nl', 'email2@com.nl als string. De quotes toevoegen aan het begin en einde zal toch goed moeten gaan.

Of zal ik het eens met een tussenstapje proberen en niet gelijk in een array plempen

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op woensdag 20 februari 2002 18:36 schreef drikus het volgende:
$list = array ("'".$sendto."'");
Ik heb ernstig het gevoel dat dat niet gaat werken, heb je de code die ik gepost heb nog bekeken ?

Waarom trouwens zo omslachtig .... is er een reden dat je $rij["email"] niet meteen in $list zet ?

  • drikus
  • Registratie: Juni 2000
  • Laatst online: 25-03 07:18
Je hebt gelijk had de code niet van jouw niet zo goed bekeken en heb het even aangepast. En jawel het werkt Fantastisch
Waanzinnig bedankt *D *D *D Was er al wat avondjes mee bezig |:(

  • drikus
  • Registratie: Juni 2000
  • Laatst online: 25-03 07:18
Omdat ik die for loop deed zijn die scheidingstekens weer niet nodig .... |:( . Ga alles even lekker aanpassen. *D

Was allemaal een beetje omslachtig omdat dit stukje eerst voor php mail() gebruikt werd, vandaar .
Pagina: 1