mail(); får en fejl når jeg prøver at lave en query inde i $message

Tags:    php mail

<< < 12 > >>
Jeg får en fejl når jeg forsøger at lave en query inde i den variabel der indeholder selve beskeden som sendes via mail() funktionen.

Jeg stopper nærmest scriptet, og vil jo gerne have mulighed for at emaile kunden vare oplysningerne, og ikke kun hvilket beløb der er betalt samt leverings adresse.

Der går galt her:

$get_cart_info...

Den query giver mig følgende fejl i browseren og mailen sendes ikke:

Catchable fatal error: Object of class mysqli_result could not be converted to string in /home/www/xxx.dk/views/betaling_accepteret.php on line 129 (som er ved $get_cart_info)

Jeg går ud fra det er en syntax fejl i sql der stopper scriptet? Det ser nu bare rigtigt ud i mine øjne, men jeg tror der skal et par nye til at se på det, da jeg vist har stirret mig blind på det..

Så hvordan kan jeg lave denne mail, uden at knække den og ødelægge den ved at "stoppe" den ved $get_cart_info??

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 22.03.2012 17:47 af Bruger #16555
16 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Kender ikke php så godt.

Skal der ikke være PHP tags rundt om PHP kode?

Det gør det nok koden mere overskuelig, synes din kode er noget rod :/



Indlæg senest redigeret d. 22.03.2012 17:50 af Bruger #16502
Prøv at tildele en ny variabel resultatet af din query, for derefter at bruge variablen i din $order_mail_comfirmation.



Som @Asker skriver, så ser din kode lidt rodet ud.
Jeg mener ikke at du bare må smide en sql statement ind i en variabel - det ser ihvertfald sådan ud.

Prøv at skriv forfra, med noget ala. det her:
Fold kodeboks ind/udPHP kode 


Koden er hverken testet eller gennemtænkt. Det er blot et eksempel.



Tak for svarerne!

Der er skam php tags rundt om koden..det er et uddrag af en større blok.

Sorry for roden, men til mit forsvar så bliver det formatteret en del anderledes når man paster det ind i editoren på sitet her..

Anyways, Valdemar: Jeg tænkte jeg ville prøve det samme, men jeg får stadigvæk stoppet mailen.

Jeg tænker at det kan være fordi der i den variabel, eller hvis data hentes direkte inde fra mail, så benyttes der jo '; - hvilket mail() vel vil forstå som en afslutning på beskeden?

Danielle: Jeg vil gerne udskrive det inde fra mail, eller via en ekstern variabel, da der skal køres en while loop, der indeholder eventuelt flere varer for den aktuelle kunde.

Det er ikke et problem at hente variabler som skal bruges i beskeden, det er ikke det der kikser. Det er fordi jeg potentielt skal bruge mere end en row fra DB, og derfor skal jeg vel inkludere while loopen inde i mail beskeden?

Hvordan vil jeg eventuelt kunne udskrive resultaterne fra en array, hvis data fra cart gemmes der og så benyttes inde i mail beskeden?

Er ikke så skrap til arrays - Men vil det kunne lade sig gøre?

Denne query virker fint udenfor mail beskeden, men ikke når den integreres inde i beskeden som en variabel, så får jeg denne fejl:
Catchable fatal error: Object of class mysqli_result could not be converted to string in /home/www/xxx/views/betaling_accepteret.php on line 128

Variablen jeg har indsat indeholder flg. query:
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 22.03.2012 18:22 af Bruger #16555
Jeg vil tro at du skal ud i noget foreach - jeg er ikke helt sikker på hvordan du vil have det, men jeg formoder at du vil have flere forskellige data ind i mailen fra databasen. Men der behøver du ikke at bruge en while-løkke, jo mindre at du skal ud i at der er flere resultater i en række. Men det kan jeg ikke forestille mig at der skulle være.

Jeg må være ærlig at indrømme at jeg er helt blank for idéer i det eksempel, sorry.



Du skal også flytte dit while loop uden for variablen.

Desuden bør din query hedde: $connection, "SELECT `img`,`id` FROM produkter WHERE `id` = '".$cit['produkt_id']."'"

Prøv dette

Fold kodeboks ind/udPHP kode 




Det er pga. at i tabellen cart_indloest kan der potentielt være mere end en række der skal udskrives, så på ovenstående (valdemar, red.) måde, vil jeg kun kunne få en række ud. Hvilket ville passe hvis kunden køber en vare. Men i tilfælde af mere end en vare, skal jeg løbe igennem cart_indloest og udskrive alle rækker der er gældende for user_id = '".$user_id."' AND ordre_id = '".$_SESSION['order_id']."'.

Jeg må se om jeg kan lave en anden opbygning af gennemførte ordre, eller på en eller anden måde få gemt data i en array, der kan udskrives inde i mail beskeden..

Jeg er med på, at man kan skrive det udenfor, men som nævnt giver det mig kun en række at udskrive inde i selve beskeden :-/



Indlæg senest redigeret d. 22.03.2012 19:26 af Bruger #16555
Hej Jan.

Hvis jeg var dig ville jeg bryde det op i små bider.

Start med at lave bekfrætigelsen på en helt alm. side og udskriv den, for så kan du jo teste hvor fejlen ligger.



Hej Daniel og andre der kigger med..

Jeg har testet at denne query virker udenfor mail beskeden:
Fold kodeboks ind/udPHP kode 


Den løber fint igennem de rækker der nu måtte være for den aktuelle kundes ordre.

Men hvis jeg indsætter variablen '.$get_cart_info.' inde i beskeden der skal mailes, så får jeg denne fejl:
Catchable fatal error: Object of class mysqli_result could not be converted to string in /home/www/xxx/views/betaling_accepteret.php on line 128

Hvordan kan jeg gemme de informationer der løbes igennem inde i en associative array, og så udskrive dem inde i mailen som f.eks. '.$cart_info.' - Hvor alle rækker så ville blive udskrevet, sammen med det tilhørende billede til produktet?

$img[] = array('img' => $img_ext['img']);
og så når billederne skal udskrives såfremt der er flere: '.$img['img'].';

Men kan man også få tabel markup med ind i sådan en array for alle de informationer der skal med ud??

Anyone?

For så herefter at udskrive det inde i '.$order_mail_confirmation.' der vil se således ud, hvis det virkede:
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 23.03.2012 11:45 af Bruger #16555
Flere steder bruger du dit data resultat korrekt. Så hvorfor ændre din fremgangsmåde, når du skal hente et billede?

Nedestående kode er dit produktudtræk samlet til et mere fornuft resultatsæt:
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 23.03.2012 13:31 af Bruger #10216
<< < 12 > >>
t