Abfrage von Variabeln aus Datenbank
Abfrage von Variabeln aus Datenbank
am 01.04.2005 10:35:37 von AlexanderEntzian
Hi,
ich hab ein Problem.
Ich will in meiner Datenbank Variabelnamen abspeichern die dann, wenn
ich den Datenbankeintrag abgefrage, dem entsprechend ersetzt werden
sollen.
Also (vereinfacht):
MySQLTabelle:
Test:
Name varchar(100);
Werte die drinne stehen könnnte:
&test
....
So jetzt soll im Script dieser Datenbankeintrag '&test' auch als
Variabel '$test' genutzt werden.
Also (das Script jetzt):
$test= "Hallo";
$sql = "SELECT
test.name
FROM
test;";
$result = new Query($sql); // (MySQL-Abfrage wird verarbeitet)
$row = $result->fetch();
echo $row['name']; //hier gibt er aber nur '$test' aus und nicht
'Hallo'
?>
Wie kann ich das Programmieren?
Danke im Vorraus.
MfG Alex
Re: Abfrage von Variabeln aus Datenbank
am 01.04.2005 11:02:39 von Fabian Schladitz
Alexander E. schrieb:
> Hi,
>=20
> ich hab ein Problem.
>=20
> Ich will in meiner Datenbank Variabelnamen abspeichern die dann, wenn
> ich den Datenbankeintrag abgefrage, dem entsprechend ersetzt werden
> sollen.
>=20
> Also (vereinfacht):
>=20
> MySQLTabelle:
>=20
> Test:
> Name varchar(100);
>=20
> Werte die drinne stehen könnnte:
>=20
> &test
> ...
>=20
> So jetzt soll im Script dieser Datenbankeintrag '&test' auch als
> Variabel '$test' genutzt werden.
>=20
> Also (das Script jetzt):
>=20
>
>=20
> $test=3D "Hallo";
>=20
> $sql =3D "SELECT
> test.name
> FROM
> test;";
>=20
> $result =3D new Query($sql); // (MySQL-Abfrage wird verarbeitet)
> $row =3D $result->fetch();
>=20
> echo $row['name']; //hier gibt er aber nur '$test' aus und nicht
> 'Hallo'
>=20
> ?>
>=20
> Wie kann ich das Programmieren?
Du willst gern ein INSERT machen und neben dem Variablennamen auch ihren =
Wert speichern.
Bsp:
INSERT INTO test (varname, varwert) VALUES ("$varname","'.$varname.'")
Dann kannst du die Sache auch wieder aus der DB holen.
Aber vielleicht willst du uns lieber sagen, was du _wirklich_ vor hast.=20
Also was dein Ziel ist. Das, was du da schreibst, klingt so, also ob du=20
dir mal etwas über Normalisierung und Datenbankdesign durchlesen willst=
Sonst baust du dir womöglich was gaaaaaaanz hässliches.
--=20
HTH,
Fabian
Re: Abfrage von Variabeln aus Datenbank
am 01.04.2005 11:12:36 von Marian Heddesheimer
On 1 Apr 2005 00:35:37 -0800, Alexander E. wrote:
>So jetzt soll im Script dieser Datenbankeintrag '&test' auch als
>Variabel '$test' genutzt werden.
warum schreibst Du '&test' in die Datenbank und willst es dann als
'$test' benutzen? Sieht mir eher wie ein Schreibfehler aus.
>$test= "Hallo";
>
>$sql = "SELECT
> test.name
> FROM
> test;";
>
>$result = new Query($sql); // (MySQL-Abfrage wird verarbeitet)
>$row = $result->fetch();
>
>echo $row['name']; //hier gibt er aber nur '$test' aus und nicht
>'Hallo'
Ich glaube, das hat nichts mit der Datenbank zu tun. Was du vermutlich
suchst sind variable-Variablen:
http://de2.php.net/manual/en/language.variables.variable.php
Marian
--
HTML, PHP und MySQL online Lernen
http://www.lernpilot.de/wbt/
Re: Abfrage von Variabeln aus Datenbank
am 02.04.2005 12:08:37 von AlexanderEntzian
Ich glaube ich hab nicht richtig erklärt was ich meine, ich werd mich
bemühen es diesmal besser zu schreiben. War beim ersten Versuch auch
nicht wirklich der Hit.
Also, wofür brauche ich es (ich denke dann wird einem auch klar was
ich meine):
Es soll für eine Clan-Site sein, wo sich 2 Clans vorstellen. Da ich
immer mal wieder was darann ändern muss, unter anderem auch die Links
der Navigation, hab ich mir gedacht das ich diese alle in einer
Datenbank abspeichere. Warum eine Datenbank, ganz einfach, die Site
liegt bei mir auf dem Uni-Webspace, über das Wochenende komme ich
nicht dorthin (wohne zuweit weg) und SSL will ich nicht benutzen.
Zumindest kann man sich denke, wenn ich alle Links in die Datenbank
doppelt schreibe muss, ausser das am Anfang der jeweilige andere
Allyname steht, ist das ziemlich uneffektiv und auch sehr
unübersichtlich.
z.B
Host/Ally1/sub1/sub2
Host/Ally1/sub1/sub3
Host/Ally2/sub1/sub2
Host/Ally2/sub1/sub3
Diese Links werden ausgelesen und so wie sie in der Datenbank stehen
mit in die Seite eingearbeitet.
Ich wollte das alles etwas zentralisieren, heißt das ich in die
Datenbank anstelle von Ally1, Ally2 $_GET['ally'] schreibe. Wenn dann
die Links ausgelesen werden sollte, sollte automatisch die Richtige
Ally eingfügt werden (die halt mit Anwählen der Site als Variabel
übergeben wird, was dann in $_GET[] drinne steht)
z.B
Host/$_GET['ally']/sub1/sub2
Host/$_GET['ally']/sub1/sub3
Das würde bedeuten das ich die Größe der Tabelle der Datenbank
halbieren würde, was wiederrum auch den zugriff verbessern würde.
So ich denke jetzt versteht man besser was ich meine.
Kann mir hierbei jemand helfen?
MfG Alex
Re: Abfrage von Variabeln aus Datenbank
am 02.04.2005 15:20:10 von Hendrik Pilz
Alexander E. wrote:
> Ich glaube ich hab nicht richtig erklärt was ich meine, ich werd mich
> bemühen es diesmal besser zu schreiben. War beim ersten Versuch auch
> nicht wirklich der Hit.
>
> Also, wofür brauche ich es (ich denke dann wird einem auch klar was
> ich meine):
>
> Es soll für eine Clan-Site sein, wo sich 2 Clans vorstellen. Da ich
> immer mal wieder was darann ändern muss, unter anderem auch die Links
> der Navigation, hab ich mir gedacht das ich diese alle in einer
> Datenbank abspeichere. Warum eine Datenbank, ganz einfach, die Site
> liegt bei mir auf dem Uni-Webspace, über das Wochenende komme ich
> nicht dorthin (wohne zuweit weg) und SSL will ich nicht benutzen.
>
> Zumindest kann man sich denke, wenn ich alle Links in die Datenbank
> doppelt schreibe muss, ausser das am Anfang der jeweilige andere
> Allyname steht, ist das ziemlich uneffektiv und auch sehr
> unübersichtlich.
>
> z.B
> Host/Ally1/sub1/sub2
> Host/Ally1/sub1/sub3
> Host/Ally2/sub1/sub2
> Host/Ally2/sub1/sub3
>
> Diese Links werden ausgelesen und so wie sie in der Datenbank stehen
> mit in die Seite eingearbeitet.
> Ich wollte das alles etwas zentralisieren, heißt das ich in die
> Datenbank anstelle von Ally1, Ally2 $_GET['ally'] schreibe. Wenn dann
> die Links ausgelesen werden sollte, sollte automatisch die Richtige
> Ally eingfügt werden (die halt mit Anwählen der Site als Variabel
> übergeben wird, was dann in $_GET[] drinne steht)
>
> z.B
> Host/$_GET['ally']/sub1/sub2
> Host/$_GET['ally']/sub1/sub3
>
> Das würde bedeuten das ich die Größe der Tabelle der Datenbank
> halbieren würde, was wiederrum auch den zugriff verbessern würde.
>
> So ich denke jetzt versteht man besser was ich meine.
>
> Kann mir hierbei jemand helfen?
>
Du suchst str_replace() in PHP.
Alternativ kannst du auch Host und Ally weglassen, da der Host ja gleich
bleibt und Ally bekommst du über $_GET.
Gruß, Hendrik