oskarsMedlem sedan nov. 20051 317 inlägg Hej på er :)
Blir inte klok på detta. Hur skapar jag en sån här array från data som loopas ut från MySQL?
$cart = array(
array(
'reference' => '123456789',
'name' => 'T-shirt',
'quantity' => 2,
'unit_price' => 12300,
'discount_rate' => 1000,
'tax_rate' => 2500
),
array(
'reference' => '987654321',
'name' => 'Byxor',
'quantity' => 2,
'unit_price' => 22300,
'discount_rate' => 1000,
'tax_rate' => 2500
),
array(
'type' => 'shipping_fee',
'reference' => 'SHIPPING',
'name' => 'Shipping Fee',
'quantity' => 1,
'unit_price' => 4900,
'tax_rate' => 2500
)
);
Tacksam för hjälp!
EDIT: Det är en kundvagn som ska loopas ut för integration till Klarna.
metalboyMedlem sedan jan. 2005953 inlägg Hur ser din kod ut för att hämta ut datat från MySQL? Använder du PDO eller mysqli? Eller använder du de gamla mysql-funktionerna? Om du använder PDO eller mysqli så finns det inbyggda metoder för att hämta alla rader ur ett resultat (PDOStatement::fetchAll respektive mysqli_result::fetch_all). Använder du de gamla mysql-funktionerna loopar du igenom resultaten och lägger till varje rad i arrayen.
Exempel PDO
// Här behövs kod för att definiera $pdo...
$stmt = $pdo->prepare('SELECT * FROM table WHERE column=?');
if ($rows = $stmt->execute(array('some value')) {
$array = $rows->fetchAll();
}
print_r($array);
Exempel mysqli
// Här behövs kod för att definiera $mysql...
if ($result = mysqli->query('SELECT * FROM table')) {
$array = $result->fetch_all();
}
print_r($array);
Exempel med de gamla mysql-funktionerna
// Här behövs kod för att ansluta till databasen...
$result = mysql_query('SELECT * FROM table');
$array = array();
while ($row = mysql_fetch_assoc($result)) {
$array[] = $row;
}
print_r($array);
oskarsMedlem sedan nov. 20051 317 inlägg Tack!!
Denna koden:
$sql = "SELECT * FROM minKundvagn WHERE customer_id = '".$_COOKIE['customer_id']."'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$kundvagn[] = array(
'reference' => $row['ID'],
'name' => $row['Product'],
'quantity' => $row["Antal"],
'unit_price' => $row['Price']*100,
'discount_rate' => 0,
'tax_rate' => 2500
);
}
}
header('Content-type: text/plain');
echo '<pre>'; print_r($kundvagn); echo '</pre>';
Ger mig detta resultatet:
Array (
[0] => Array
(
[reference] => 98320
[name] => 496
[quantity] => 1
[unit_price] => 16900
[discount_rate] => 10000
[tax_rate] => 2500
)
[1] => Array
(
[reference] => 98308
[name] => 373
[quantity] => 1
[unit_price] => 27900
[discount_rate] => 10000
[tax_rate] => 2500
)
);
Arrayen ser ju inte ut att vara i det formatet jag visade i första inlägget. Men det kanske inte ska spela någon roll i detta fallet?
metalboyMedlem sedan jan. 2005953 inlägg Jag tycker att den ser ut att vara i exakt samma format som du skrev i första inlägget förutom att du inte har tagit med alla nycklar i dimension 2 i arrayen. Du har också valt att lägga in heltal istället för strängar som värden i index 'name'.
oskarsMedlem sedan nov. 20051 317 inlägg Jo det är heltal där nu ja... Behöver jag använda '$text' för att det ska bli korrekt med textsträng?
Har textat med '".$text."' men får det inte att fungera.
metalboyMedlem sedan jan. 2005953 inlägg Du behöver inte göra någonting, om $text innehåller en sträng så kommer det att bli en sträng i arrayen. Om $text innehåller ett heltal så blir det ett heltal i arrayen.
prplxrMedlem sedan juni 2012582 inlägg
oskars skrev:
Jo det är heltal där nu ja... Behöver jag använda '$text' för att det ska bli korrekt med textsträng?
Har textat med '".$text."' men får det inte att fungera.
Det där lyckades jag inte riktigt klura ut vad du menade med. Var är $text? Är jag blind?
metalboy skrev:
Du behöver inte göra någonting, om $text innehåller en sträng så kommer det att bli en sträng i arrayen. Om $text innehåller ett heltal så blir det ett heltal i arrayen.
Jag brukar inte våga lite på att den automagiska typecastingen fungerar som jag tänkt. Om man är osäker kan man alltid se ifall det är ett numeriskt värde i en textsträng med is_numeric() och om det visar sig vara det kan man casta om den manuellt med (int) $text.
oskarsMedlem sedan nov. 20051 317 inlägg Äh glöm :D Förvirrade mig lite!
Det fungerar jättebra. Tack för hjälpen!