Meddelande

Minska
No announcement yet.

Funktion som skall hämta ut värden till en array... eller nåt?

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Funktion som skall hämta ut värden till en array... eller nåt?

    Håller på lite med klarna och vill ha en funktion där jag hämtar ut lite data från min databas: antal, artikelnr, produktnamn, pris och detta skall jag sedan lägga in i denna:

    Kod:
    $k->addArticle(4, "MG200MMS", "Matrox G200 MMS", 299.50, 25, 0, KlarnaFlags::INC_VAT);
    $k->addArticle(2, "abc123", "Bil", 149000, 25, 0, KlarnaFlags::INC_VAT);
    Här är beskrivet vad som är vad:
    Kod:
    4,                               // Quantity
    "MG200MMS",               // Article number
    "Matrox G200 MMS",      // Article name/title
    299.50,                       // Price
    25,                            // 25% VAT
    0,                             // Discount
    KlarnaFlags::INC_VAT  // Price is including VAT.
    Hur skriver jag i min funktion och hur hämtar jag ut allt sedan. Är inge bra alls på funktioner och arrayer. Hoppas någon vill och kan hjälpa mig

    Kod:
    function getInfo(){   	
    	$info = "";	
    	$sql = mysql_query("SELECT * From produkt_in_cart Where sID=12345", $conn);
    	while ($RS_cart=mysql_fetch_assoc($sql)){
    	    $info = "HÄR SKA DÅ DET IN I NÅN ARRAY SOM SEN SKALL KUNNA HÄMTAS FRÅN EN ANNAN SIDA";
    	}
      
        return $info;
    }
    Jag vill alltså på min sida där jag skall göra mitt anrop till klarna bara anropa min funktion och lägger loopar runt och lägger till de i det jag skrev i övre koden.
    Kod:
    $k->addArticle($vardeFranFunktion[0], "$vardeFranFunktion[1]", "$vardeFranFunktion[2]", $vardeFranFunktion[3], 25, 0, KlarnaFlags::INC_VAT);
    Last edited by Asa; 2014-05-19, 21:34.
    Jag bara ÄR ...... hur ska man annars vara?!?

  • #2
    Är det ingen som kan eller är det ingen som förstår?
    Jag bara ÄR ...... hur ska man annars vara?!?

    Kommentera


    • #3
      Jag vet inte riktigt om jag förstår, men jag gör ett försök i alla fall

      Först tycker jag att du ska skicka med ID-numret som en parameter till funktionen. På så sätt blir funktionen mer dynamisk. Dessutom kommer din funktion inte att känna till någon variabel $conn, så antingen kan du säga åt PHP att använda den som en global variabel (inte rekommenderat då det anses "fult" att koda på det sättet) eller så skickar du med även $conn som en parameter till funktionen.

      Jag gissar att det bara finns en post med sID=12345, alltså behöver du ingen loop för att hämta värdet. Så prova följande:

      PHP-kod:
      function getInfo($id$conn) {
          
      $sql mysql_query('SELECT * FROM produkt_in_cart WHERE sID=' . (int)$id$conn);
          
      $info false;
          if (
      $RS_cart mysql_fetch_assoc($sql)) {
              
      $info = array($RS_cart['quantity'], $RS_cart['article_number'], $RS_cart['article_name'], $RS_cart['price']);
          }
          return 
      $info;
      }

      $vardeFranFunktion getInfo(12345$conn);
      if (
      $vardeFranFunktion) {
          
      $k->addArticle($vardeFranFunktion[0], $vardeFranFunktion[1], $vardeFranFunktion[2], $vardeFranFunktion[3], 250KlarnaFlags::INC_VAT);

      Du skulle kunna korta ner funktionen ytterligare genom att ange precis vilka fält det är du är intresserad av i din SQL-fråga.
      PHP-kod:
      function getInfo($id$conn) {
          
      $sql mysql_query('SELECT quantity, article_number, article_name, price FROM produkt_in_cart WHERE sID=' . (int)$id$conn);
          return 
      mysql_fetch_array($sqlMYSQL_NUM);

      Observera att jag inte har en aning om vad kolumnerna i databasen heter, jag har bara gissat

      Jag vill också passa på att påpeka att PHP:s mysql-funktioner är deprecated. Det betyder att de kommer att försvinna i någon av de kommande versionerna. Titta gärna på PDO eller Mysqli istället.
      "Det finns tre sorters lögn; vanlig lögn, förbannand lögn och statistik" - Mark Twain

      Kommentera


      • #4
        Tackar så mycket men det finns flera poster i kundvagnen som skall loopas in i denna arrayen. Hur skriver jag då för att få det rätt?

        Om arrayen jag får ut ser ut så här vid var_dump:
        Kod:
        array(3) {
          [0]=>
          array(7) {
            ["artnr"]=>
            string(6) "FL B44"
            ["namn"]=>
            string(37) "Beanie Knitted Hat  - 38/Bottle Green"
            ["antal"]=>
            int(1)
            ["pris"]=>
            float(49)
            ["moms"]=>
            int(25)
            ["rabatt"]=>
            int(0)
            ["flagga"]=>
            string(20) "KlarnaFlags::INC_VAT"
          }
          [1]=>
          array(7) {
            ["artnr"]=>
            string(9) "FL 63214 "
            ["namn"]=>
            string(43) "PIQUE SCREEN STAR ORIGINAL POLO  - 36/Black"
            ["antal"]=>
            int(1)
            ["pris"]=>
            float(111)
            ["moms"]=>
            int(25)
            ["rabatt"]=>
            int(0)
            ["flagga"]=>
            string(20) "KlarnaFlags::INC_VAT"
          }
          [2]=>
          array(7) {
            ["artnr"]=>
            string(5) "Frakt"
            ["namn"]=>
            string(5) "Frakt"
            ["antal"]=>
            int(1)
            ["pris"]=>
            float(124)
            ["moms"]=>
            int(25)
            ["rabatt"]=>
            int(0)
            ["flagga"]=>
            string(47) "KlarnaFlags::INC_VAT | KlarnaFlags::IS_SHIPMENT"
          }
        }
        Hur skriver jag då ut så värderna hamnar i varsin sådan rad:
        Kod:
        $k->addArticle(4,"MG200MMS","Matrox G200 MMS",299.99,25,0,KlarnaFlags::INC_VAT);
        Last edited by Asa; 2014-05-20, 21:39.
        Jag bara ÄR ...... hur ska man annars vara?!?

        Kommentera


        • #5
          Du kan använda t.ex. en foreach-loop för att loopa igenom arrayen. Jag är lite osäker dock på hur man ska använda "flagga" på bästa sätt. Det överlåter jag åt någon annan att hitta en snygg lösning på.

          PHP-kod:
          foreach ($din_array as $vara) {
             
          /* Här kan du sedan använda $vara för att få fram dina värden... $vara['flagga'] vet jag som sagt inte riktigt hur du ska använda
           $k->addArticle($vara['antal'], $vara['artnr'] ...osv
             */ 

          "Det finns tre sorters lögn; vanlig lögn, förbannand lögn och statistik" - Mark Twain

          Kommentera


          • #6
            Tackar! Var tvungen å göra så här:

            Kod:
            foreach ($getCartRows as $key => $value ) {
            	$antal  = $value['antal'];
            	$artnr  = $value['artnr'];
            	$namn   = $value['namn'];
            	$pris   = $value['pris'];
            	$moms   = $value['moms'];
            	$rabatt = $value['rabatt'];
            
            	$k->addArticle($antal, utf8_decode($artnr), utf8_decode($namn), $pris, $moms, $rabatt, KlarnaFlags::INC_VAT);
            }
            Last edited by Asa; 2014-05-21, 12:38.
            Jag bara ÄR ...... hur ska man annars vara?!?

            Kommentera

            Working...
            X