Avatar billede Slettet bruger
03. februar 2009 - 20:39 Der er 13 kommentarer og
1 løsning

Trække data ud i et array

Hej, jeg har en række telefon numre som jeg gerne vil trække ud fra min MySql - og smide dem i et array. De skal efterfølgende bruges i ENDNU et array:

array('string' => "".$mobilnumre."")

Så jeg vil gerne ha' noget i stil med:
$mobilnumre = '20304050', '30405060', '40506070';

(eller hvordan det nu ser ud).

hvordan skal min query osv. se ud?
Avatar billede akadna Nybegynder
03. februar 2009 - 20:50 #1
noget ala ?

$mobilNumbers = array();
$query = mysql_query('SELECT mobilNr FROM tabel');
while( $row = mysql_fetch_assoc( $query ) ) {
mobilNumbers[] = $row['mobilNr'];
}
$final = array('mobilnumre' => $mobilNumbers );

var_dump( $final );
Avatar billede Slettet bruger
03. februar 2009 - 20:54 #2
hej - tak for hjælp. Skulle måske ha' nævnt at min kolonne hedder "mobilnummer"
Avatar billede akadna Nybegynder
03. februar 2009 - 20:55 #3
Jamen, så er det bare at rette det til :-)


$mobilNumbers = array();
$query = mysql_query('SELECT mobilnummer FROM tabel');
while( $row = mysql_fetch_assoc( $query ) ) {
mobilNumbers[] = $row['mobilnummer'];
}
$final = array('mobilnumre' => $mobilNumbers );

var_dump( $final );
Avatar billede Slettet bruger
03. februar 2009 - 20:59 #4
Ok, den skriver dog:

Parse error: syntax error, unexpected '[' in /var/www/...php on line 36

36: mobilNumbers[] = $row['mobilnummer'];

Er desuden uklar over hvordan jeg kommer videre med det? Er det bare "$final" som jeg kan genbruge i resten af koden, eller?
Avatar billede akadna Nybegynder
03. februar 2009 - 21:01 #5
doh, jeg havde glemt en $ foran mobilNumbers, sorry



$mobilNumbers = array();
$query = mysql_query('SELECT mobilnummer FROM tabel');
while( $row = mysql_fetch_assoc( $query ) ) {
    $mobilNumbers[] = $row['mobilnummer'];
}
$final = array('mobilnumre' => $mobilNumbers );

var_dump( $final );


Jep du kan bruge $final i resten af koden.
Avatar billede Slettet bruger
03. februar 2009 - 21:13 #6
Hmm ja, beklager - men det er nok mig den er gal med :-)

Hvis du ser hele koden, kan det være du bedre kan se, hvad jeg vil:

include('db_connect.php');
$mobilNumbers = array();
$query = mysql_query('SELECT mobilnummer FROM brugere WHERE sms_godkendt == "ja"');
while( $row = mysql_fetch_assoc( $query ) ) {
    $mobilNumbers[] = $row['mobilnummer'];
}
$final = array('mobilnumre' => $mobilNumbers );

var_dump( $final );

// HER INDSÆTTES SEND-MANØVRE!

$client = new SoapClient("https://www.bibob.dk/SmsSender.asmx?WSDL", array('location' => 'https://www.bibob.dk/SmsSender.asmx', "trace" => 1));

$params = array('cellphone' => "XXXXXXXX", //Skal angives i 8 cifre.
        'password' => "XXXXXXXX", //MD5-hash af din kode.
        'smsTo' => array('string' => "".$mobilNumbers.""), //Der kan tilføjes flere modtager ved at tilføje flere 'string'-keys i arrayet.
        'smscontents' => utf8_encode("Din kode er: ".$sms_kode.""), //Grunden til utf8_encode, er at webservicen ikke godtager æøå ellers. (noget med encoding)
        'deliveryReport' => true); //Skal der sendes en leveringsrapport?

//Kaldet til funktionen der sender sms'en
$client->__soapCall('SendMessage', array('parameters' => $params));
Avatar billede Slettet bruger
03. februar 2009 - 21:14 #7
Det er her

'smsTo' => array('string' => "".$mobilNumbers.""),

det skal sættes ind. Prøvede lige med mobilNumbers, men det virker ikke...
Avatar billede akadna Nybegynder
03. februar 2009 - 21:17 #8
Prøv nedstående, ellers må du selv prøve dig frem.... det får du også mest ud af. Spørg gerne hvis du sidder fast, og du _har_ gjort et forsøg :-)

Det er klart dit eks. ikke virker, da du indsætter et array. du kan læse om arrays på http://dk.php.net/array
---------------------------------------------------
include('db_connect.php');
$mobilNumbers = array();
$query = mysql_query('SELECT mobilnummer FROM brugere WHERE sms_godkendt == "ja"');
while( $row = mysql_fetch_assoc( $query ) ) {
    $mobilNumbers[] = $row['mobilnummer'];
}
$final = array('mobilnumre' => $mobilNumbers );


$client = new SoapClient("https://www.bibob.dk/SmsSender.asmx?WSDL", array('location' => 'https://www.bibob.dk/SmsSender.asmx', "trace" => 1));

// send besked til alle modtagere. $receiver = mobil nr fra databasen

foreach( $final as $receiver ) {

$params = array('cellphone' => "XXXXXXXX", //Skal angives i 8 cifre.
        'password' => "XXXXXXXX", //MD5-hash af din kode.
        'smsTo' => array('string' => "".$receiver .""), //Der kan tilføjes flere modtager ved at tilføje flere 'string'-keys i arrayet.
        'smscontents' => utf8_encode("Din kode er: ".$sms_kode.""), //Grunden til utf8_encode, er at webservicen ikke godtager æøå ellers. (noget med encoding)
        'deliveryReport' => true); //Skal der sendes en leveringsrapport?

//Kaldet til funktionen der sender sms'en
$client->__soapCall('SendMessage', array('parameters' => $params));
}
Avatar billede Slettet bruger
03. februar 2009 - 21:21 #9
Ok, jeg troede $final ville være i stil med:

$final = '20304050', '30405060', '40506070'

og derfor kunne sættes direkte ind?
Avatar billede akadna Nybegynder
03. februar 2009 - 21:23 #10
det er det også, men du kan ikke sende på den måde, da du skal lave et soapkald pr. modtager.

Rettelse til mit script:


$params = array('cellphone' => "XXXXXXXX", //Skal angives i 8 cifre.
        'password' => "XXXXXXXX", //MD5-hash af din kode.
        'smsTo' => $receiver, //Der kan tilføjes flere modtager ved at tilføje flere 'string'-keys i arrayet.
        'smscontents' => utf8_encode("Din kode er: ".$sms_kode.""), //Grunden til utf8_encode, er at webservicen ikke godtager æøå ellers. (noget med encoding)
        'deliveryReport' => true); //Skal der sendes en leveringsrapport?
Avatar billede Slettet bruger
03. februar 2009 - 21:33 #11
Nå, jamen så er det vel bare at smide hele soap-koden ind i while-loop'et - så burde det virke. Forstod det bare sådan at man kunne undgå det ud fra hjælpeteksten:

//Der kan tilføjes flere modtager ved at tilføje flere 'string'-keys i arrayet.

- ja, det virker fint, hvis jeg smider det ind i while-loop, men det er vist ikke helt meningen.

Tak for hjælp i øvrigt.
Avatar billede hmortensen Nybegynder
03. februar 2009 - 21:39 #12
Prøv sådan her:

include('db_connect.php');

$params = array();
$params['cellphone'] = "XXXXXXXX";
$params['password'] = "XXXXXXXX";
$params['smscontents'] = utf8_encode("Din kode er: ".$sms_kode);
$params['deliveryReport'] = true;

$query = mysql_query("SELECT mobilnummer FROM brugere WHERE sms_godkendt == 'ja'");
while ($row = mysql_fetch_assoc($query))
{
  $params['smsTo']['string'][] = $row['mobilnummer'];
}


$client = new SoapClient("https://www.bibob.dk/SmsSender.asmx?WSDL", array('location' => 'https://www.bibob.dk/SmsSender.asmx', "trace" => 1));

$client->__soapCall('SendMessage', array('parameters' => $params));
Avatar billede Slettet bruger
04. februar 2009 - 10:32 #13
hmortensen > det virker bare spot on! Super!

Tak til jer begge for hjælpen. Svar gerne begge, så skal jeg fordele pointene!
Avatar billede hmortensen Nybegynder
04. februar 2009 - 16:41 #14
Det var så lidt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester