[PHP / MySQL] resultset in array stoppen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
De bedoeling is als volgt:
PHP:
1
2
3
4
5
6
7
8
9
function settings_init($conf = array()) {

  $result = db_query('SELECT * FROM settings', 0, 0);
  while ($setting = db_fetch_object($result)) {
      $conf[$setting->name] = $setting->value;
  }

  return $conf;
}

Bovenstaande functie haalt de settings tabel leeg, en maakt hiervan een array. Of althans - dat is de bedoeling. Bijvoorbeeld:
code:
1
2
3
4
5
Array (
  [name] => Mijn website
  [bgcolor] => Red
  [font] => Arial
)

De settings tabel kent slechts 2 kolommen: 'name' en 'value':
code:
1
2
3
4
5
6
7
+---------+--------------+
| name    | value        |
+---------+--------------+
| name    | Mijn website |
| bgcolor | Red          |
| font    | Arial        |
+---------+--------------+

Mijn vraag is: waarom blijft de $conf array leeg? Ik heb op verschillende sites gevonden dat dit een goede manier is om de array te vullen?

P.S. Voor de duidelijkheid. Uiteindelijk is het de bedoeling om met een andere functie, een variabele uit de array te kunnen halen:
PHP:
1
2
3
4
function variable_get($name) {
  global $conf;

  return $conf[$name];

Op die manier zou variable_get('name'), 'Mijn website' als resultaat geven...

[ Voor 25% gewijzigd door Reveller op 14-07-2004 15:45 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Acties:
  • 0 Henk 'm!

  • Phobos
  • Registratie: Augustus 2001
  • Laatst online: 18-09 20:57

Phobos

je bent een soepkip

al gekeken naar de MySQL functies van php?

(http://www.php.net/manual/nl/ref.mysql.php)

PHP heeft daar mysql_fetch_array enzo voor :P

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

db_fetch_object ?

Je gebruikt blijkbaar een script dat rijen ophaalt.. als je die niet post wordt het lastig debuggen ;)

Acties:
  • 0 Henk 'm!

  • daaan
  • Registratie: Maart 2000
  • Laatst online: 04-09 13:13

daaan

Brandweer Zoutkamp

Ik doe het altijd zo:

$sql="SELECT * FROM tabel";
$sql_result = mysql_query($sql, $connection);
$array = mysql_fetch_array($sql_result);

One's never alone with a rubber duck.


Acties:
  • 0 Henk 'm!

  • G F0rce 1
  • Registratie: Juli 2003
  • Laatst online: 04-03-2015
Ja dat is ook logisch, immers dat zijn de standaard functies :/ .

I feel absolutely clean inside, and there is nothing but pure euphoria. - Alexander Shulgin


Acties:
  • 0 Henk 'm!

  • robertpNL
  • Registratie: Augustus 2003
  • Niet online
Krijg je daadwerkelijk wel rijen terug?

code:
1
2
3
4
5
6
7
8
9
10
11
12
<?
function settings_init($conf = array()) { 

  $result = db_query('SELECT naam,value FROM settings', 0, 0); 
  print db_num_rows($result);     // krijg je hier wel 3 te zien?
  while ($setting = db_fetch_object($result)) { 
      $conf[$setting->name] = $setting->value; 
  } 

  return $conf; 
}
?>

Acties:
  • 0 Henk 'm!

  • Brons
  • Registratie: April 2002
  • Laatst online: 20-09 11:57

Brons

Fail!

db_fetch_object is iig geen standaard PHP functie, dus ik neem aan dat je nog wat script hebt dat je ons niet laat zien? Zoals Bosmonster zegt is dat niet echt makkelijk debuggen voor ons.

Maar als ik jou was zou ik gewoon mysql_fetch_array gebruiken?
Pagina: 1