Kom ihåg mig?
Home Menu

Menu


Hämta specifika värden från MySQL

Ämnesverktyg Visningsalternativ
Oläst 2018-10-06, 13:26 #1
niklas_SWEDs avatar
niklas_SWED niklas_SWED är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2011
Inlägg: 400
niklas_SWED niklas_SWED är inte uppkopplad
Flitig postare
niklas_SWEDs avatar
 
Reg.datum: Jan 2011
Inlägg: 400
Standard Hämta specifika värden från MySQL

Vet inte om jag är trött eller vad, men kommer inte på en lösning. Nån som kan hjälpa till?

Min fråga ser ut så här mot databasen:

SELECT name, value FROM settings WHERE section = 'company' AND id = $company_id

name innehåller exempelvis "phone" eller "address", och value innehåller resultat.

Hur kan jag sen få ut detta med php?

$company_phone = $phone
$company_address = $address

Anledning är att jag endast vill köra 1 fråga mot databasen istället för att köra flera stycken.
niklas_SWED är inte uppkopplad   Svara med citatSvara med citat
Oläst 2018-10-06, 18:04 #2
Kimppas avatar
Kimppa Kimppa är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2010
Inlägg: 793
Kimppa Kimppa är inte uppkopplad
Mycket flitig postare
Kimppas avatar
 
Reg.datum: Jul 2010
Inlägg: 793
Jag förstår inte varför "name" innehåller "phone", eller "address".

Hakade upp mig på det så fastnade en stund.

En "switch"-sats kanske och så samlar du all data i en array, där huvudnycklarna är företagets id.

$array[$company_id]['phone'] = $phone
$array[$company_id]['address'] = $address

Då kan du hämta alla samtidigt och bara sortera upp de i arrays.

Mvh,
Kim
Kimppa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2018-10-06, 21:13 #3
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 162
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 162
Citat:
Ursprungligen postat av Kimppa Visa inlägg
Jag förstår inte varför "name" innehåller "phone", eller "address".
För att han sparar ett okänt antal attribut till företagen i databasen.

Det han kallar "name" är ju en nyckel
Det han kallar "value" är värdet för respektive nyckel

Det är väl en helt okej lösning. Här är hur man skulle kunna lösa det i PHP för att uppnå det du vill:

PHP-kod:
<?php
//Simulerar ditt output från mysql
$output_from_mysql = [
    [
'name' => 'phone''value' => '031-123123'],
    [
'name' => 'city''value' => 'Göteborg']
];

//Skapar en array som heter $metadata
$metadata = array();

//Lägger alla raderna vi fick från mysql i $metadata;
foreach($output_from_mysql as $row){
    
//Nyckeln är ditt "name", värdet är ditt "value"
    
$metadata[$row['name']] = $row['value'];
}

/*
Extrahera från metadata med prefixet "company",
nu finns dina variabler tillgängliga som t.ex. $company_[name]
där [name] är vad dom heter i din databas
*/
extract($metadataEXTR_PREFIX_ALL"company");

// var_dumpa $company_phone så att du ser hur det funkar
var_dump($company_phone);

Senast redigerad av fabian den 2018-10-06 klockan 21:16
fabian är inte uppkopplad   Svara med citatSvara med citat
Oläst 2018-10-07, 11:01 #4
niklas_SWEDs avatar
niklas_SWED niklas_SWED är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2011
Inlägg: 400
niklas_SWED niklas_SWED är inte uppkopplad
Flitig postare
niklas_SWEDs avatar
 
Reg.datum: Jan 2011
Inlägg: 400
Tusen tack!

Fabians svar fungerade utmärkt för mig och koden blev:

PHP-kod:
$output_from_mysql mysqli_fetch_all ($resultMYSQLI_ASSOC);

$metadata = array();

foreach(
$output_from_mysql as $row){
    
$metadata[$row['name']] = $row['value'];
}

extract($metadataEXTR_PREFIX_ALL"company"); 
niklas_SWED är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:35.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017