Page 1 of 1
Varibale $var aus DB lesen
Posted: 2004-07-18 14:11
by kane
Hi!
Hatte zwar gesucht, aber auf die schnelle nix gefunden :(
Ich möchte folgendes erreichen:
Irgendwo im Header (header.php) lese ich diverse Werte aus einer DB aus. Eine dieser Variablen nennen wir mal $var_link mit dem Wert "4711".
Meine Navigation wird aus einer DB gelesen und dynmaisch aufgebaut. In der Tabelle "navigation" gibt es eine Spalte "link". In dieser steht
Wenn ich nun die Spalte "link" auslese, sollte dann da stehen:
.
Leider steht bei mir nur
.
Ich hatte mal was gelesen, wie man das lösen kann, aber ich habs einfach nicht mehr gefunden.
Danke für eure Hilfe!
Gruß Kane[/code]
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 14:27
by oxygen
sollte ich das richtig verstanden haben, willst du: ${$link}
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 14:37
by kane
hmm, das versteh ich jetzt wieder nicht ... :oops:
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 14:46
by myname
Hast Du die Zeile datei.php?nr=$var_link beim Ausgeben in einfache Anführungszeichen '' gesetzt. Dann wird die Zeile nicht geparst, d.h. php erkennt nicht, dass es sich bei $var_link um eine Variable handelt.
Möglichkeit der Beseitigung:
Entweder du schreibst:
oder
(Alternativ kann man natürlich auch print o.a. nehmen)
Bei ${$link} handelt es sich um eine variablen Variablennamen. Die Variable wird so genannt, wie der Wert der Varialben $link lautet.
P.S.: Sorry wegen Doppelpost beim Edit ist was schief gegangen.
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 14:54
by kane
Hi!
Die Ausgabe erfolgt folgendermaßen:
Code: Select all
echo "<a href=../".$str_navugruppe['linkto']."?navid=".$str_navugruppe['id']."".$str_navugruppe['var']." target='".$str_navugruppe['target']."' class=navleft_link>".$str_navugruppe['name']."</a>";
$str_navugruppe['var'] ist die Variable, in der steht (aus der DB gelesen):
kdnr=$int_workdata[int_kdnr]
Die Ausgabe ist aber, trotz der Ã?nderung wie du sie oben beschrieben hast, immer noch "kdnr=$int_workdata[int_kdnr]"
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 16:01
by myname
Poste doch mal die Zeile, in der die Variable zugewiesen wird.
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 16:10
by kane
Abfrage aus DB:
Code: Select all
$str_navugruppe['id'] = mysql_result($resnav, $iugruppe, "id");
$str_navugruppe['name'] = mysql_result($resnav, $iugruppe, "str_navname");
$str_navugruppe['linkto'] = mysql_result($resnav, $iugruppe,"str_linkto");
$str_navugruppe['var'] = mysql_result($resnav, $iugruppe, "variablen");
$str_navugruppe['target'] = mysql_result($resnav, $iugruppe, "target");
# Wenn Variablen vorhanden sind, soll ein & eingefügt werden
if($str_navugruppe['var'] != '') {
$str_navugruppe['var'] = "&".$str_navugruppe['var']; }
echo "<tr>";
echo "
<td height=15 class=navleft>
<img src=../library/images/grafik/img_pfeil.gif align=absmiddle>
<a href=../".$str_navugruppe['linkto']."?navid=".$str_navugruppe['id']."".$str_navugruppe['var']." target='".$str_navugruppe['target']."' class=navleft_link>".$str_navugruppe['name']."</a>
</td>";
echo "</tr>";
Ausgabe ist dann: dateiname.php?navid=1&nr=$str_navugruppe[target]
Es sollte aber kommen: dateiname.php?navid=1&nr=12345
Hoffe das ist jetzt besser :)[/code]
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 18:26
by myname
Also ich habe das mal durch den Parser geschickt:
Code: Select all
<?php
$str_navugruppe['id'] = "1234id";
$str_navugruppe['name'] = "1234name";
$str_navugruppe['linkto'] = "1234linkto";
$str_navugruppe['var'] = "1234var";
$str_navugruppe['target'] = "1234target";
# Wenn Variablen vorhanden sind, soll ein & eingefügt werden
if($str_navugruppe['var'] != '') {
$str_navugruppe['var'] = "&".$str_navugruppe['var']; }
echo "<tr>";
echo "
<td height=15 class=navleft>
<img src=../library/images/grafik/img_pfeil.gif align=absmiddle>
<a href=../".$str_navugruppe['linkto']."?navid=".$str_navugruppe['id']."".$str_navugruppe['var']." target='".$str_navugruppe['target']."' class=navleft_link>".$str_navugruppe['name']."</a>
</td>";
echo "</tr>";
?>
Es wird das hier ausgegeben:
Code: Select all
<tr>
<td height=15 class=navleft>
<img src=../library/images/grafik/img_pfeil.gif align=absmiddle>
<a href=../1234linkto?navid=1234id&1234var target='1234target' class=navleft_link>1234name</a>
</td></tr>
So sollte es doch auch sein oder?
Also fallen mir nur noch diese Möglichkeiten ein:
In der Datenbank steht aus irgendeinem Grund, der Name der Variablen.
Dein PHP hat scheint richtig nicht zu funktionieren.
Entweder Du hast <?php ?> vergessen oder PHP ist gar nicht aktiv und er gibt den gesamten Code aus.
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 18:36
by kane
Danke für deine Antwort...
Vielleicht habe ich mich nicht richtig ausgedrückt :oops:
In der Datenbank steht für die Variable
die Syntax
Der Variable $einevariable wird im Header bereits ein wert zugewiesen, der dann erscheinen soll... Das Prob ist ja einfach, das er einen String "nr=$einevariable" aus der DB bekommt... und der Variablen keinen Wert zuweist.
So wie du das gemacht hast, würde bei mir ja auch alles erscheinen...
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 18:36
by arty
Kane wrote:Code: Select all
$str_navugruppe['id'] = mysql_result($resnav, $iugruppe, "id");
$str_navugruppe['name'] = mysql_result($resnav, $iugruppe, "str_navname");
$str_navugruppe['linkto'] = mysql_result($resnav, $iugruppe,"str_linkto");
$str_navugruppe['var'] = mysql_result($resnav, $iugruppe, "variablen");
$str_navugruppe['target'] = mysql_result($resnav, $iugruppe, "target");
# Wenn Variablen vorhanden sind, soll ein & eingefügt werden
if($str_navugruppe['var'] != '') {
$str_navugruppe['var'] = "&".$str_navugruppe['var']; }
echo "<tr>";
echo "
<td height=15 class=navleft>
<img src=../library/images/grafik/img_pfeil.gif align=absmiddle>
<a href=../".$str_navugruppe['linkto']."?navid=".$str_navugruppe['id']."".$str_navugruppe['var']." target='".$str_navugruppe['target']."' class=navleft_link>".$str_navugruppe['name']."</a>
</td>";
echo "</tr>";
Dein Code ist sehr unperformant.
bye
arty
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 18:38
by kane
es geht in diesem Fall nicht um performance, da es nur ein kleines Intranet-Skript ist...
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 19:05
by arty
Kane wrote:es geht in diesem Fall nicht um performance, da es nur ein kleines Intranet-Skript ist...
Das ist egal, dein Code ist auch schlecht.
bye
arty
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 19:12
by kane
es geht hier nicht um den code, es geht um meine frage...
ausÃ?erdem, wenn du schon was dran auszusetzen hast ... dann sollten auch verbesserungsvorschläge kommen ....
so daher sagen kann nun wirklich jeder...
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 19:53
by arty
Kane wrote:so daher sagen kann nun wirklich jeder...
Das tue ich aber einfach. :)
Wenn Dein Code sauber und HTML und PHP getrennt wäre, würde man den Fehler sicher schnell finden.
bye
arty
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 19:58
by kane
ich möchte doch nur wissen... wie man einen string mit variablen aus der DB verarbeiten kann...
man, egal... vielleicht weiß das ja einer...
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 20:08
by arty
Poste doch mal deine komplette DB und den kompletten Code, dann kann man vielleicht sehen, was daran nicht passt.
Aber eigentlich ist das alles hier eh offtopic.
bye
arty
Re: Varibale $var aus DB lesen
Posted: 2004-07-18 21:25
by myname
Achso!!
str_replace ist dein Freund!
Ersetzt doch einfach den Namen der Variable mit dem Wert! Das erscheint mir am unproblematischsten.
Re: Varibale $var aus DB lesen
Posted: 2004-07-19 09:36
by kane
hmm, joa, so sollte es gehen ... danke myname :)
ist zwar nicht ganz so toll (arty würde das jetzt eh auch noch auf meinen code beziehen...), aber damit sollte es gehen. Das dumme ist nur, ich muss für jede Variable die als String in der DB steht (nr=$var) das ganze mit str_replace nutzen...
Vielleicht finde ich ja noch einmal die Beschreibung, wie sowas möglich war :)
Trotzdem danke vorerst!
Gruß
Re: Varibale $var aus DB lesen
Posted: 2004-07-19 11:49
by gamecrash
Also sollte ich das hier jetzt richtig verstanden haben, wäre eval() Dein Freund. Allerdings: eval = evil, also vorher genau nachdenken ;)
Re: Varibale $var aus DB lesen
Posted: 2004-07-20 17:42
by marsupilami
Kane wrote:Code: Select all
$str_navugruppe['id'] = mysql_result($resnav, $iugruppe, "id");
$str_navugruppe['name'] = mysql_result($resnav, $iugruppe, "str_navname");
$str_navugruppe['linkto'] = mysql_result($resnav, $iugruppe,"str_linkto");
$str_navugruppe['var'] = mysql_result($resnav, $iugruppe, "variablen");
$str_navugruppe['target'] = mysql_result($resnav, $iugruppe, "target");
# Wenn Variablen vorhanden sind, soll ein & eingefügt werden
if($str_navugruppe['var'] != '') {
$str_navugruppe['var'] = "&".$str_navugruppe['var']; }
echo "<tr>";
echo "
<td height=15 class=navleft>
<img src=../library/images/grafik/img_pfeil.gif align=absmiddle>
<a href=../".$str_navugruppe['linkto']."?navid=".$str_navugruppe['id']."".$str_navugruppe['var']." target='".$str_navugruppe['target']."' class=navleft_link>".$str_navugruppe['name']."</a>
</td>";
echo "</tr>";
Versuch mal dashier:
Code: Select all
eval("$str_navugruppe['id'] = "".mysql_result($resnav, $iugruppe, "id")."";");
eval("$str_navugruppe['name'] = "".mysql_result($resnav, $iugruppe, "str_navname")."";");
eval("$str_navugruppe['linkto'] = "".mysql_result($resnav, $iugruppe,"str_linkto")."";");
eval("$str_navugruppe['var'] = "".mysql_result($resnav, $iugruppe, "variablen")."";");
eval("$str_navugruppe['target'] = "".mysql_result($resnav, $iugruppe, "target")."";");
# Wenn Variablen vorhanden sind, soll ein & eingefügt werden
if($str_navugruppe['var'] != '') {
$str_navugruppe['var'] = "&".$str_navugruppe['var']; }
echo "<tr>";
echo "
<td height=15 class=navleft>
<img src=../library/images/grafik/img_pfeil.gif align=absmiddle>
<a href=../".$str_navugruppe['linkto']."?navid=".$str_navugruppe['id']."".$str_navugruppe['var']." target='".$str_navugruppe['target']."' class=navleft_link>".$str_navugruppe['name']."</a>
</td>";
echo "</tr>";
Das sollte eigentlich dein Problem lösen. :)
Und arty, wahnsinn was du für ein Großmaul bist. Schonmal daran gedacht das du auch mal so angefangen hast? Und nein du bist nicht Gott oder ähnliches. Anstatt sachlich zu bleiben wird gleichmal wieder das Maul aufgerissen. Solche Leute wie dich pissen einen einfach nur an!
Hoffe ich konnte dir helfen @ Kane[/code]
Re: Varibale $var aus DB lesen
Posted: 2004-07-20 18:14
by arty
MaRsuPiLaMi wrote:Und arty, wahnsinn was du für ein Großmaul bist. Schonmal daran gedacht das du auch mal so angefangen hast? Und nein du bist nicht Gott oder ähnliches. Anstatt sachlich zu bleiben wird gleichmal wieder das Maul aufgerissen. Solche Leute wie dich pissen einen einfach nur an!
*PLONK*
Im Gegensatz zu dir war ich sachlich.
arty