Auslesen von MySQL-Tabellen-Werten

Chili-Joe

Mitglied
Ich habe eine MySQl-Tabelle mit den Spalten "config_name" und "config_value".

Diese sind ungefähr, wie folgt augebaut:

config_name | config value
-------------------------------------
bla1 | 12345
alb | 674
... | ...

Wenn ich jetzt nun eine einzelne Zeile auslesen wollte, müsste ich mit select * from config where config_name= 'bla1' arbeiten. Mein Probelm ist aber, dass ich dies nicht bei jeder Zeile wiederholen möchte. Gibt es nicht eine Möglichkeit mit der ich alle auslesen kann, jedoch mit sowas in der Art wie "config->bla1" arbeiten kann?

Hoffe, ihr habt mein Problem verstanden... Danke im voraus.
 
Erstmal nimm nich unbedingt * in deinem Query.

Und mach doch eine Funktion in der du als Attribut die Confi-ID übergibst und der Rest die Funktion macht.
Das könnte dann so aussehen:
Code:
<?php

# Funktion
function get_cfg($column) {
  $qry = mysql_fetch_assoc(mysql_query('SELECT config_value WHERE config_name = "'.$column.'"'));
  return $qry[0];
}

# Verwendung
$wie_soll_das_sein = get_cfg('das_soll_so_sein');

?>

Schaelle
 
Danke, Schaelle.
Ich hab es jetzt mal versucht anzupassen, jedoch ist es mir leider nicht gelungen...

PHP:
function get_cfg($column)
{
$get_config = mysql_query('SELECT config_value from config where config_name = "'.$column.'"');
$config=mysql_fetch_assoc($get_config);
return $get_config[0];
}

echo get_cfg('bla1');

Entdeckt irgendjemand den Fehler?
Danke im voraus...
 
Schleife?

PHP:
 while ($config=mysql_fetch_assoc($get_config)) 
{
	$config['config_value'];
}

Die where Bedingung beim Query kommt dann natürlich raus.
 
So, jetzt klappt's...

allerdings muss die where-Bedingung bleiben, denn ich möchte ja nur ein Ergebnis ausgegeben bekommen.

So sieht jetzt der Code aus
PHP:
function get_cfg($column)
{
$get_config = mysql_query('SELECT config_value from config where config_name = "'.$column.'"');
while ($config=mysql_fetch_assoc($get_config))
{echo $config['config_value'];} 
return $get_config[0];
}

echo get_cfg('bla1');

Falls irgendjemand eine Idee haben sollte, wie es einfacher und/oder schneller geht, würde ich mich über eine Antwort freuen...

Danke Schaelle und Katzenbauer für Eure Hilfe.
 
Katzenbauer hat gesagt.:
Schleife?

PHP:
 while ($config=mysql_fetch_assoc($get_config)) 
{
	$config['config_value'];
}

Die where Bedingung beim Query kommt dann natürlich raus.

Das ist ja nicht der Sinn, er möchte ja etwas bestimmtes haben.

Was funktioniert denn nicht? Fehlermeldung? Oder sonst schon mal ge'dumpt' (var_dump() )

Edit: Kleiner Fehler von mir; es muss mysql_fetch_array sein! Oder der Performance wegen statt $qry[0] -> $qry['config_value']. Eins von beiden.

Schaelle
 
Zuletzt bearbeitet:
So, jetzt bin ich vollkommen durcheinander und das Script klappt auch nicht mehr...

PHP:
function config($config_name)
{
	$get_config = @mysql_query("select `value` from ".$mysql_prefix."_config where name = ".$config_name."");
	while ($config = mysql_fetch_array($get_config))  //Zeile 9
	{
		$config['value'];
	}
	return $get_config[0];
}

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in *****************************/index.php on line 9

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in *****************************/index.php on line 9


Sieht jemand den/die Fehler? Ich weiß zwar, wo er sein soll, aber kann ihn leider nicht entdecken. Ich würde eine Lösung mit "mysql_fetch_array" bevorzugen, weil der value-Wert in der Config-Tabelle numerisch, als auch assoziativ sein kann.

Danke im voraus.
 
Hallo zusammen,

nur mal so reingeschmissen:
PHP:
$configuration_query = tep_db_query(config_name, config_value from 'deiner tabelle');
  while ($configuration = tep_db_fetch_array($configuration_query)) {
    define($configuration['config_name'], $configuration['config_value']);
Das Ganze bindest du dann per include in deine relevanten Dateien ein oder tust eben die abfrage in jede Datei schreiben - ganz wie es beliebt!

Das sollte eigentlich funktionieren :-)
 
Der define Befehl hilft mir leider nicht weiter, da ich ihn nur einmal definieren kann. Aber, danke.
Ich finde die Variante mit der Funktion eigentlich am besten.

Entdeckt dort jemand den/die Fehler?
 
Der Fehler liegt in der SQL Abfrage..
Nun weiss ich nicht ob der stimmt... auf jeden fall würde ich noch hochkommas hinzufügen...

select `value` from ".$mysql_prefix."_config where name = '".$config_name."'"

MFG
redX
 
Zurück