|
|
|
|
[ERLEDIGT] Variablen-Name mit Variable zuweisen |
jojo
Aufsteiger
Dabei seit: 25.01.2004
Beiträge: 55
|
|
[ERLEDIGT] Variablen-Name mit Variable zuweisen |
|
[AUFLÖSUNG GANZ UNTEN]
hi,
ich hab mal wieder ein kleines problemchen
ich möchte der Variable den Wert einer Variablen zuweisen, deren Name, durch eine andere Variable definiert werden soll
also
php: |
1:
2:
|
$pname = "lol"; //$pname wird aus einer MySQL-Tabelle ausgelesen
$ok = $lol; //$lol auch, aber aus einer anderen |
|
projekte
---------------------------
| name | egal | egal |
---------------------------
| lol | egal | egal |
---------------------------
| lol2 | egal | egal |
---------------------------
| lol3 | egal | egal |
mitglieder
---------------------------
| id | lol | lol2 | lol3 |
---------------------------
| 1 | 0 | 1 | 1 |
---------------------------
| 2 | 0 | 1 | 0 |
---------------------------
| 3 | 1 | 1 | 0 |
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
$DatabasePointer = mysql_connect("mysqlcluster","phost4402","*****") or die("Fehler beim kontaktieren der Datenbank. Bitte versuchs nochmal");
mysql_select_db(phost4402, $DatabasePointer);
$ResultPointer = mysql_query("SELECT * FROM projekte", $DatabasePointer);
if(mysql_num_rows($ResultPointer)>0)
{
for($i=0; $i<mysql_num_rows($ResultPointer); $i++)
{
$Result = mysql_fetch_object($ResultPointer);
$pname = $Result->name;
$ResultPointer2 = mysql_query("SELECT $pname FROM mitglieder WHERE id = $id", $DatabasePointer);
//hier mein problem
if ($ok == "1") {echo " <a href=\"../projekte/anzeigen.php?projekt=", $pname, "\">", $pname, "</a>,";}
else {}
} |
|
ich hoffe ihr versteh mein problem und schonmal danke im vorraus,
jojo
PS: das ganze ist die Datei http://svkepler.pytalhost.de/SV/Homepage...eigen2.php?id=2 id gibt die id an
PPS: die Tabellen sind nur Beispiele
__________________ Meine Meinung steht fest!
Bitte, verwirren Sie mich nicht mit Tatsachen.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von jojo: 23.02.2006 14:10.
|
|
18.02.2006 15:27 |
|
|
ColdFire
BlackBoarder
Dabei seit: 08.06.2002
Beiträge: 987
|
|
hmm... ich bin nicht ganz dabei was du machen willst
vill kannst du beschreiben was das resultat sein soll du willst den link nur anzeigen wenn ein gewisser falle ( OK ) 1 ist beschreibe mal was der sinn der sache ist !
lg CF
|
|
18.02.2006 15:40 |
|
|
jojo
Aufsteiger
Dabei seit: 25.01.2004
Beiträge: 55
Themenstarter
|
|
(gesammte hp http://svkepler.pytalhost.de/SV/Homepage/index.php )
ich habe 2 tabellen,
eine wo projekte drinn stehen (name, gruppensprecher ... )
und eine wo alle mitglieder drin stehen (name, klasse, hobbys ... )
ich habe für jedes projekt eine seite (z.B. http://svkepler.pytalhost.de/SV/Homepage...ch%FClerzeitung )
ich habe für jedes mitglied eine seite (z.B. http://svkepler.pytalhost.de/SV/Homepage...eigen2.php?id=2 )
bei den mitgliedern steht wo: "Projekte:" und da hinter soll aufgezählt werden, bei welchen projekten man alles mit arbeitet( also z.B. "Schülerzeitung, Schulhofverschönerung") und das sollen gleichzeitig links zu den projekten sein, bis heute hab ich das so gemacht, dass ich für jedes projekt eine if-abfrage gemacht habe, aber die Seite soll auch von leuten bedient werden können, die weder ahnung von html oder php
EDIT: hier nochmal die MySQL-Tabellen als .xls
http://svkepler.pytalhost.de/mitglieder.xls
http://svkepler.pytalhost.de/projekte.xls
__________________ Meine Meinung steht fest!
Bitte, verwirren Sie mich nicht mit Tatsachen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von jojo: 18.02.2006 16:00.
|
|
18.02.2006 15:54 |
|
|
Compuholic
knows where he wants to go tomorrow
Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München
|
|
Sorry, aber ich raff es wirklich nicht, was Du hier versuchst? Woher kommt denn auf einmal die $ok Variable in Deinem obigen Codeausschnitt her?
|
|
18.02.2006 16:13 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Was immer du da versuchst, du wirst es eleganter hinbekommen, wenn du die Tabellen entsprechend gestaltest (Stichwort Normalisierung).
Soweit ich dich verstehe gibt es Projekte und Mitglieder. Jedes Mitglied kann an beliebig vielen Projekten teilnehmen, jedes Projekt kann von beliebig vielen Mitgliedern bearbeitet werden. Du hast also eine klassische m:n-Beziehung zwischen Mitgliedern und Tabellen. Die löst du auf, indem du eine weitere Tabelle einrichtest, die die Zuordnungen vornimmt. Beispiel (Tabellennamen in Großbuchstaben, Primärschlüssel mit # davor, Fremdschlüssel mit *):
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
USER
#id <---+
name |
vorname |
... |
|
|
PROJECT |
#id <--+ |
projektname | |
beschreibung | |
... | |
| |
USER2PROJECT | |
#id | |
*project_id --+ |
*user_id ----+ |
|
Dann kannst du mit einfachen SELECT-Abfragen alles zu einem Projekt oder zu einem Mitglied rausfinden. Und wenn du alle Mitglieder eines Projektes bekommen möchtest, machst du in der USER2PROJECT-Tabelle eine Abfrage auf die Projekt-ID und bekommst alle benötigten User-IDs. Mit ein paar geschickten JOINs kriegst du das auch alles in ein einziges SELECT rein.
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
18.02.2006 16:59 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
hm, $bla = $$blubb; // oder so ähnlich ging das doch,
das bla auf blub zeigt. glaub ich. ka. versuchs.
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
18.02.2006 17:01 |
|
|
jojo
Aufsteiger
Dabei seit: 25.01.2004
Beiträge: 55
Themenstarter
|
|
ES FUNKTIONERT |
|
@phlox81: unecspected $ kommt dann, hab ich als aller erstes getestet
aber müsste das nicht auch so ihrgendwie gehn?
php: |
1:
2:
3:
|
$ResultPointer2 = mysql_query("SELECT * FROM mitglieder WHERE id = $id", $DatabasePointer);
$Result2 = mysql_fetch_object($ResultPointer2);
eval('$ok = $Result->'.$pname.';'); |
|
wäre nämlich wesendlich weniger arbeit, das einzubauen
oder kann man das ergebnis der
php: |
1:
|
mysql_query("SELECT * FROM mitglieder WHERE id = $id", $DatabasePointer) |
|
als array abspeichern und dann das mit aufrufen
jojo
SO FUNKTIONIERT ES:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
echo "<p>Projekte: ";
$ResultPointer = mysql_query("SELECT * FROM projekte", $DatabasePointer);
if(mysql_num_rows($ResultPointer)>0)
{
for($i=0; $i<mysql_num_rows($ResultPointer); $i++)
{
$Result = mysql_fetch_object($ResultPointer);
$pname = $Result->name;
$paktiv = $Result->activ;
$pid = $Result->id;
$ResultPointer2 = mysql_query("SELECT * FROM mitglieder WHERE id = $id");
$Result2 = mysql_fetch_object($ResultPointer2);
//jetzt die beiden wichtigen zeilen
$ok = "\$Result2->p". "$pid"; //das "p" weil es nur mit einer zahl nicht funktioniert, die id der projekte, weil in den projektnamen leerzeichen und / - \ u.s.w. drinn waren
eval ("\$ok = \"$ok\";");
//so, das waren sie
if ($ok == "1" && $paktiv == "1") {echo " <a href=\"../projekte/anzeigen.php?projekt=", $pname, "\">", $pname, "</a>,";}
elseif ($ok == "1" && $paktiv != "1") {echo " ", $pname, ",";} //damit die projekte, die keine seite haben, nicht mit link zur leeren seite dargestellt werden
else {}
}
}
else {}
echo "</p>"; |
|
und ob ihr es glaubt oder nicht,er entscheidenen hinweis, mit dem ich darauf gekommen bin, hat LX gegeben
erwähnte ich schon, dass verdammt stolz auf mich bin?
__________________ Meine Meinung steht fest!
Bitte, verwirren Sie mich nicht mit Tatsachen.
Dieser Beitrag wurde 8 mal editiert, zum letzten Mal von jojo: 22.02.2006 16:05.
|
|
19.02.2006 10:21 |
|
|
|
|
|
|