Hallo
Die einzelnen Technologiestufen werden aus tech_users gelesen und anschließend werden alle datensätze aus tech_users gelesen, wo der techlevel dem techlevel des users entspricht.
es hat zwar nichts direkt mit Deinem Problem zu tun:
das hört sich danach an, als möchtest Du einen INNER JOIN verwenden.
Danach soll unterschieden werden, ob die Technologie schon erforscht ist.Jetzt weiß ich nicht was ich schreiben soll,
[code lang=php]
// Was soll ich hier nach $forschung schreiben???
echo "<br>tech-name-techlevel:<br> $forschung->'$tech_name'<br>";
sieht danach aus, als sollte Technologie ein assoziatives Array von assoziativen Arrays sein.
<font size="-2">erforschen sie neue technologien</font><br>
also bitte, das <font>-Element ist eigentlich schon im letzten Jahrtausend gestorben, lass es bitte friedlich in seinem Grab ruhen. Verwende CSS.
$forschungsquery = @mysql_query("SELECT * FROM tech_users WHERE id = '$id'");
SELECT * ist böse, insbesondere, wenn Du nur die Spalte "techlevel" haben willst und den Rest wegwirfst. Du bestellst doch im Restaurant auch nicht alles, was die Speisekarte hergibt, wenn Du nur ein bestimmtes Gericht essen willst.
Dass etwas schief gehen könnte, kommt Dir übrigens nicht in den Sinn, daher fehlt jegliche Fehlerbehandlung.
$forschung = @mysql_fetch_object($forschungsquery);
$techlevel = $forschung->techlevel;$dataquery = @mysql_query("SELECT * FROM tech_data WHERE techlevel = '$techlevel'");
Wieder SELECT * ...
while($tech = @mysql_fetch_object($dataquery)){
.. wieder keine Fehlerbehandlung :-(
Wahrscheinlich solltest Du Deine Objekte geschickter aufbauen, damit Du problemlos auf Deine Objekte, ihre Eigenschaften und Methoden zugreifen kannst - und nicht Fehler produzierst.
Freundliche Grüße
Vinzenz