Problem mit Ausgabe einer Variablen

SantaCruze

Erfahrenes Mitglied
Hallo nochmal :) Und zwar habe ich ein kleines Problem mit der Ausgabe einer Variablen. Ich will mit dem Script einen Zahlenwert aus der Datenbank auslesen lassen. Der Code dazu sieht so aus
PHP:
$sql= "SELECT * FROM buildings where login = '$_SESSION[user_nickname]'" ;
if (!$res_id = mysql_query ($sql))
   die('War wohl was falsch');
   

while ($test = mysql_fetch_array($res_id))
  { 
  echo $test['id']." ".$test['login']." ".$test['spielweltid'] ." ".$test['b1'] ." ".$test['b2'] ."<br>";
  }

Nun funktioniert das ganze, aber, ich will später den Wert nicht in der While Schleife als Echo ausgegeben haben sondern später im HTML Code bei einer beliebigen Position. Nun habe ich das ganze mit <?php echo $test['login']; ?> probiert , um z.b. den Login anzugeben, allerdings gibt er keinen Wert aus. Der Fehler liegt wohl daran das er nur die While Schleife beachtet und den Wert nicht weiterführt. Nun zur Frage, wie kann ich dieses Konstrukt umbauen damit er anstatt in der While Schleife die Werte an anderer Stelle ausgibt ?
 
Vermutlich änderst du die Variable $test irgendwo. Weise einfach einer anderen Variable wie $meine_variable (aber gib ihr einen guten Namen) den Wert zu. Dann müsste er auch sonstwo per echo ausgegeben werden können.
 
Hmm nee eigentlich nicht. Ich zeig Dir mal das ganze Script bislang, warscheinlich bin ich einfach zu unerfahren um den Fehler zu finden. Wie gesagt die While Schleife gibt er perfekt aus , aber alles danach nicht mehr.

PHP:
<?php
include("dbconnect.php");
//include("buildingsfunc.php");

$sql= "SELECT * FROM spielwelt where login = '$_SESSION[user_nickname]'" ;
if (!$res_id = mysql_query ($sql))
   die('War wohl was falsch');
   

while ($ausgabe = mysql_fetch_array($res_id))
  { 
  echo $ausgabe['id']." ".$ausgabe['login']." ".$ausgabe['b1'] ." ".$ausgabe['b2'] ."<br>";
  }



  

?>

<body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<table width="570"  border="0" cellpadding="1" cellspacing="1" bgcolor="#000000">
  <tr background="http://localhost/gms/images/leiste2.jpg">
    <td width="167"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $ausgabe['id']; ?><?php echo $ausgabe['login']; ?><?php echo $ausgabe['b1'] ?> </font></td>
    <td width="136"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kosten</font></div></td>
    <td width="144"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Forschungsbonus</font></div></td>
    <td width="110"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Optionen</font></div></td>
  </tr>
</table>
<table width="570" border="0" cellpadding="1" cellspacing="1" bordercolor="#000000">
  <!--DWLayoutTable-->
  <tr>
    <td width="145" rowspan="6" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td width="25" height="19" valign="top"><img src="http://localhost/gms/images/icon1.jpg" width="23" height="15"></td>
    <td width="140" valign="top" bgcolor="#031d04"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
	<?php 
	$steigung = $ausgabe['b1'] *3;
	$wasser = $steigung * 42;
	echo $wasser ;?>
    </font></div></td>
    <td width="150" valign="top" bgcolor="#053307"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td width="115" valign="top" bgcolor="#19491a"><div align="center"></div></td>
  </tr>
  <tr>
    <td height="19" valign="top"><img src="http://localhost/gms/images/icon2.jpg" width="23" height="15"></td>
    <td valign="top" bgcolor="#031d04"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
	<?php 
	$steigung = $ausgabe['b1'] *3;
	$oel = $steigung * 28;
	echo $oel ;?>
    </font></div></td>
    <td valign="top" bgcolor="#053307"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td valign="top" bgcolor="#19491a"><div align="center">A</div></td>
  </tr>
  <tr>
    <td height="19" valign="top"><img src="http://localhost/gms/images/icon3.jpg" width="23" height="15"></td>
    <td valign="top" bgcolor="#031d04"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
	<?php 
	$steigung = $ausgabe['b1'] *3;
	$stahl = $steigung * 21;
	echo $stahl ;?>
    </font></div></td>
    <td valign="top" bgcolor="#053307"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="19" valign="top"><img src="http://localhost/gms/images/icon4.jpg" width="23" height="15"></td>
    <td valign="top" bgcolor="#031d04"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
	<?php 
	$steigung = $ausgabe['b1'] *3;
	$bewohner = $steigung * 3;
	echo $bewohner ;?>
    </font></div></td>
    <td valign="top" bgcolor="#053307"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="19" valign="top"><img src="http://localhost/gms/images/icon5.jpg" width="23" height="15"></td>
    <td valign="top" bgcolor="#031d04"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
	<?php 
	$steigung = $ausgabe['b1'] *2;
	$zeit = $steigung * 20;
	echo $zeit ;?>
    </font></div></td>
    <td valign="top" bgcolor="#053307"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="21" valign="top"><img src="http://localhost/gms/images/icon5.jpg" width="23" height="15"></td>
    <td valign="top" bgcolor="#031d04"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
	<?php 
	$steigung = $ausgabe['b1'] *2;
	$punkte = $steigung * 10;
	echo $punkte ;?>
    </font></div></td>
    <td valign="top" bgcolor="#053307"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
 
Ändere mal
Code:
$sql= "SELECT * FROM buildings where login = '$_SESSION[user_nickname]'" ;
in
Code:
$sql= "SELECT * FROM buildings WHERE login = '".$_SESSION[user_nickname]."'" ;

Denk an die richtige verkettung.
In SQL sind die zwei " ' ' " einfach vorgegeben, das bedeutet aber nicht das du dann die entsprechenden Verkettungsoperatoren bei PHP Variablen einfach so weglassen kannst...

Gruß,

Mike
 
Naja da liegt aber sicherlich net der Fehler mit der Echo ausgabe. Sonst würde er in der While Schleife ja auch keine Ausgabe machen wenn da de Fehler liegen würde. Aber danke für den Tip :) Werde trotzdem warten müssen bis jmd nee idee hat wo der Fehler liegt.
 
Und das hier:
PHP:
while ($ausgabe = mysql_fetch_array($res_id))
  { 
  echo $ausgabe['id']." ".$ausgabe['login']." ".$ausgabe['b1'] ." ".$ausgabe['b2'] ."<br>";
  }
Kannst du umändern in
PHP:
$ausgabe = mysql_fetch_array($res_id);
echo $ausgabe['id']." ".$ausgabe['login']." ".$ausgabe['b1'] ." ".$ausgabe['b2'] ."<br>";
da du ja eh einen exakten Datensatz holst. Da brauchst keine while-Schleife.

Außerdem muss es so einfach funktionieren. Wenn du am Anfang eine Ausgabe bekomst muss die auch nachher noch da sein. Bist du dir sicher dass sein erster echo was ausgibt
 
Wie in dem Beitrag 2 Posts über deinem, hab ich den gesamten Cde php und html gepostet so wie es bei mir lokal läuft. Aber irgendwie erzeugt er keine ausgabe, komme was will sofern die php codes später im html vorkommen.
 
Und wenn du einer exakten variable wie $mein_wert = $ausgabe['id'] zuordnest? Das muss gehen. Oder ich bin zu blöd :-)

edit:
Also habs mal bei mir ausprobiert (Für $ausgabe ein paar testwerte eingesetzt) und es geht.
Gibst du dir MySQL-Fehler per
PHP:
 or die(mysql_error());
aus? Es muss eigentlich ein MySQL-Fehler sein.
 
Zuletzt bearbeitet:
Zurück