Försök till funktion

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Corp



Medlem i: 6443 dagar
Från: Norrköping
Status: Offline



#742696
Inlägg Skrivet: 2020-01-07 12:16      Ämne: Försök till funktion Citera

Hej,
försöker göra en funktion där jag anropar en databas och frågar efter ett innehav och ska då få tillbaka resultatet i ett json format som jag sedan kan presentera i chartjs.

Kör jag utan funktion och bara skriver ut echo json_encode($outGains); så fungerar det...

anrop av funktion:
PHP:
1:
<?php getGains('MSFT'); ?>


funktion:
PHP:
1:
 function getGains($stock) {
2:
  $stmt $db->query("SELECT * FROM stocks WHERE name = $stock");
3:
  $result $stmt->fetchAll();
4:
  $outGains = [];
5:
 
6:
  foreach($result as $row) {
7:
    $outGains[] = $row['gains'];
8:
  }
9:
 
10:
    echo json_encode($outGains);
11:
 
12:
 

_________________
Det ska gå...
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida ICQ-nummer
webbhelp



Medlem i: 5031 dagar
Från: Sverige
Status: Offline



#742697
Inlägget är accepterad som det rätta svaret Skrivet: 2020-01-07 15:38      Ämne: Citera

- En funktion bör aldrig köra echo. Den bör aldrig skriva ut data.
- Funktionen bör returnera värdet istället.
- Json encode borde inte köras i funktionen. Nästa gång vill du kanske inte ha det i JSON.

Så i funktionen ska du köra:

return $outGains;

Och där du använder funktionen kan du köra:
<?php echo json_encode(getGains('MSTF')); ?>


Andra förbättringar vore:
- göra koden säker genom att binda parametrar till sql-frågan.
- Använda array_map istället för foreach loopen.
- Använda OOP, classer & objects istället för funktioner.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Skicka e-post Besök användarens hemsida MSN Messenger
Corp



Medlem i: 6443 dagar
Från: Norrköping
Status: Offline



#742698
Inlägg Skrivet: 2020-01-08 00:07      Ämne: Citera

Stort tack!
 

_________________
Det ska gå...
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida ICQ-nummer
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic