PHP Send besked til flere brugere

Tags:    php

<< < 12 > >>
Hej allesammen.

Jeg er igang med at lave et besked system men vil gerne have at brugerne kan sende beskeden til mere end en af gangen så jeg tænkte at jeg kunne gøre det her men det virker ikke rigtigt:

Fold kodeboks ind/udPHP kode 


Men af en eller anden grund så smider den kun noget i pm__conversations og pm__messages og så ville jeg jo gerne have at den skulle smide en row i for hver eneste id som indtastet i $_POST['users'] men det gør den af en eller anden grund ikke håbede i måske kan hjælpe mig lidt :)




Indlæg senest redigeret d. 18.05.2016 11:38 af Bruger #21392
16 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Jeg går ud fra at $_POST['users'] er en streng med bruger id'er som f.eks. "1,3,2,5,4"

I stedet for $recepients=array($recepient_list); så prøv med $recepients=implode(',',$recepient_list);

Lidt forklaring

Det du gør nu er at fortælle recepients at den er et array med én værdi, nemlig "1,3,2,5,4". Det du vil er at fortælle recepients at den er et array med mange værdier 1 og 3 og 2 og 5 og 4.
Det gøres med implode, som klipper strengen "1,3,2,5,4" i stykker og opdeler den på de kommaer der er i strengen.



Indlæg senest redigeret d. 18.05.2016 13:16 af Bruger #13363
Hej Tommy,

Mange tak for dit svar men det løste heller ikke mit problem er virkelig på bar bund den tilføjer rows til de andre 2 tables men ikke til den sidste af dem altså min "pm__conversation_users"

Hilsen Jonas



prøv at slå din error_reporting til !!

du bør få denne fejl:

Notice: Undefined variable: recipents i
Warning: Invalid argument supplied for foreach()

årsag:

$recepients=array($recepient_list);
foreach ($recipents as $recipient) {


stavefejl
$recepients != $recipents




Hej Ronny

Mange tak for dit svar men det virker desværre heller ikke :(




Mange tak for dit svar men det virker desværre heller ikke

vi er nød til at have nogle fejl meldinger, virker ikke kan vi ikke bruge til noget.
har du slået error_reporting og display_errors til ??
man bør ikke udvikle uden dette er slået til, hvis det ikke er slået til udvikler du i blinde.

hvad returnerer din $_POST['users'] ??
står der noget i de andre variabler du anvender ??



jeg har prøvet at teste dit program, rettet stave fejlen, gider ikke sætte databasen op.

test.php
Fold kodeboks ind/udKode 



// debugheader.php overruler php.ini og slår error_reporting og display_errors til
debugheader.php
Fold kodeboks ind/udKode 


output
Fold kodeboks ind/udKode 




du vil kunne optimerer ved at lave dit sql statement i din foreach om til denne form
Fold kodeboks ind/udKode 

så skal du kun lave en query()

en anden måde er ved at bruge Prepare Statement
http://www.eksperten.dk/guide/1480
http://www.w3schools.com/php/php_mysql_prepared_statements.asp




Jeg gør det som Tommy mistænker det men for denne fejl her:

Warning: implode(): Invalid arguments passed in /Volumes/Websites/m.com/savenet/forms/nmsg.php on line 10
INSERT INTO pm__conversations (name, owner_id, created_at) VALUES ('asdsdasd', '1', NOW())
INSERT INTO pm__messages (conversation_id, message, userid, created_at) VALUES ('0', 'asdasdasdasdasdasd', '1', NOW())
Warning: Invalid argument supplied for foreach() in /Volumes/Websites/m.com/savenet/forms/nmsg.php on line 28

når jeg bruger:

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 18.05.2016 22:14 af Bruger #21392

når jeg bruger:
Fold kodeboks ind/udKode 


du skal også have næste linje med i coden
(utested)
Fold kodeboks ind/udKode 





Hov det har jeg også ved ikke lige hvordan der er kommet 2 // der :D



prøv at lave dette
Fold kodeboks ind/udKode 



(utested)
om til
Fold kodeboks ind/udKode 




Nu har jeg ingen fejl men dette er mit output:

Array
(
[0] => 1,8
)



<< < 12 > >>
t