Variablenname um eins erhöhen, nicht den Variablenwert...

  • Themenstarter Themenstarter Manstein
  • Beginndatum Beginndatum
M

Manstein

Hallo,

wie schaff ich es, den Variablennamen um eins zu erhöhen, nicht den Wert der Variablen?

Mein problem ist nämlich folgendes: Ich will Daten aus mehreren Tabellen verrechnen und in einer Variablen z.B.: $summe ausgeben. Diese Variable wird solange ausgegeben, bis alle Werte in der Datenbank / bzw. Tabelle verarbeitet wurden.
Nur, wie kann ich diese Ergebnisse am Ende zusammenrechnen lassen, wenn die Variable (und zwar $summe) nur einmal im script vorkommt?
 
Du wertest die Daten der Tabellen doch sicher in einer Schliefe aus.
Du kannst doch einer Variablen den Wert 0 geben (am Anfang des Scriptes) und wenn Du die Schleife durchläufst, dann addierst Du bei jedem Durchlauf den entsprechenden Wert zu der Variablen hinzu.
Oder habe ich Dich jetzt falsch verstanden?

redlama
 
Das ist nicht möglich, aber wofür gibt es Arrays?
Oder wie wäre es mit einer Hilfsvariable, in der du die Summe hochzählst?
 
Zuletzt bearbeitet:
Also, der Inhalt der Variablen $summe setzt sich aus "Addiere Wert1 aus Tabelle xy mit Wert2 aus Tabelle YX und multipliziere das alles mit Wert3 aus Tabelle YZ "
Das alles läuft in einer Schleife ab
Code:
while ($daten_faktor = mysql_fetch_assoc($select_faktor)) {
	$summe = ($total*$daten_faktor[Faktor]); ?>
<td align="center" colspan="2" 
 class="form_head" bgcolor="baf9b5"><?echo $summe;?> &euro;</td>

Am Ende sollen halt alle $summe zusammengezählt werden. Mittlerweile habe ich schon einen üblen Knoten im Hirn. Is wohl etwas zu viel für nen PHP-Anfänger...
 
Versuch's doch mal so:
PHP:
$summe2 = 0;
while ($daten_faktor = mysql_fetch_assoc($select_faktor)) {
  $summe = ($total*$daten_faktor[Faktor]);
  $summe2 = $summe2 + $summe;
?>
<td align="center" colspan="2" 
 class="form_head" bgcolor="baf9b5"><?echo $summe;?> &euro;</td>
Und am Ende der While-Schleife hast Du dann in $summe2 die Summe alle Werte aus $summe.

redlama
 
Danke für die flotte Antwort! Nur erhalte ich jetzt diesen Fehler:

Fatal error: Unsupported operand types in c:\apache\htdocs\zeit\includes\complete_auftrag.php on line 50

Ok, dass war ein Fehler von mir, hab ihn korregiert, aber es ned. Angezeigt wird nur der Wert der letzten $summe... :confused:
 
Zuletzt bearbeitet von einem Moderator:
Dann hat sich irgendwo ein Fehler eingeschlichen!
Zeig mal am besten den ganzen Quelltext, dann schaue ich mal schnell drüber!

redlama
 
Ok, danke:

PHP:
<?php
include ("db_connect.inc.php");

$select_member = mysql_query("SELECT Mitarbeiter  FROM zeiten WHERE Auftragsnummer= ('$Auftrags_ID') GROUP BY Mitarbeiter ORDER BY Mitarbeiter DESC", $server_conn);

?>

<link href="stylesheet.css" rel="stylesheet" type="text/css" media="all">
<form>
<table width="100%" bgcolor="000000" cellspacing="1" cellpadding="4" align="center">
	<tr bgcolor="f5f5f5">
		<td align="center" class="form_head">Stundenberechnung für den Auftrag: <b><? echo $Auftrags_ID;?></b></td>
	</tr>
</table>
<br>
<? while ($daten_member = mysql_fetch_assoc($select_member)) { ?>
<table  width="100%" bgcolor="000000" cellspacing="1" cellpadding="4">
	<tr bgcolor="FFFFFF">
		<td colspan="3" bgcolor="f5f5f5" class="form_head"><? echo $daten_member[Mitarbeiter];?></td>
	</tr>
<? 
$select = mysql_query("SELECT *  FROM zeiten WHERE Auftragsnummer= ('$Auftrags_ID') AND Mitarbeiter= ('$daten_member[Mitarbeiter]')", $server_conn);
while ($daten = mysql_fetch_assoc($select)) { ?>
	<tr>
		<td width="80%" bgcolor="FFFFFF" class="txt"><? echo $daten[AB];?></td>
		<td bgcolor="FFFFFF" class="txt"><? echo $daten[Stunden];?> Stunde(n)</td>
		<td bgcolor="FFFFFF" class="txt"><? echo $daten[Minuten];?> Minuten</td>
	</tr>
	<? } 
	$sql = "SELECT SUM(Stunden) FROM zeiten WHERE Auftragsnummer= ('$Auftrags_ID') AND Mitarbeiter= ('$daten_member[Mitarbeiter]')";
	$sql2 = "SELECT SUM(Minuten) FROM zeiten WHERE Auftragsnummer= ('$Auftrags_ID') AND Mitarbeiter= ('$daten_member[Mitarbeiter]')";
	$result = mysql_query($sql);
	$result2 = mysql_query($sql2);
	$ergebnis_stunden = mysql_result($result,0);
	$ergebnis_minuten = round (mysql_result($result2,0) / 60,1);
	$total = ($ergebnis_stunden."+".$ergebnis_minuten."=".$ergebnis_stunden+$ergebnis_minuten);
?>

	<tr bgcolor="EFEFEF">
	<td class="txt">Gesamtstundenzahl</b></td>
	<td align="center" colspan="2" class="form_head" bgcolor="baf9b5"><? echo $total; ?> Stunden</td>
	</tr>
	<tr bgcolor="EFEFEF">
	<td class="txt">Kosten -><? echo $daten_member[Mitarbeiter]; ?></td>
<?
$select_faktor = mysql_query("SELECT *  FROM mitarbeiter WHERE Mitarbeiter= ('$daten_member[Mitarbeiter]')", $server_conn);
$summe2 = 0;
$member = $daten_member[Mitarbeiter];
while ($daten_faktor = mysql_fetch_assoc($select_faktor)) {
	$summe = ($total*$daten_faktor[Faktor]); 
	$summe2= $summe2+$summe;
	?>
	<td align="center" colspan="2" name="summe" class="form_head" bgcolor="baf9b5"><?echo $summe;?> &euro;</td>
	</tr>
	<br>
	<? echo $summe3 ?>
	<? } ?>
	<? } ?>

</table>
<br>
<table width="100%" bgcolor="000000" align="center" cellspacing="1" cellpadding="4">
	<tr bgcolor="EFEFEF">
		<td class="form_head" align="center">Gesamtstundenzahl für Auftrag <? echo $Auftrags_ID;?></td>
	</tr>
<?php
$sql = "SELECT SUM(Stunden) FROM zeiten WHERE Auftragsnummer= ('$Auftrags_ID')";
$sql2 = "SELECT SUM(Minuten) FROM zeiten WHERE Auftragsnummer= ('$Auftrags_ID')";
$result = mysql_query($sql);
$result2 = mysql_query($sql2);
$ergebnis_stunden = mysql_result($result,0);
$ergebnis_minuten = round (mysql_result($result2,0) / 60,1);
$total = ($ergebnis_stunden."+".$ergebnis_minuten."=".$ergebnis_stunden+$ergebnis_minuten);
?>
	<tr bgcolor="baf9b5" align="center">
	<td align="right" class="form_head"><? echo ($total); ?></td>
	</tr>
</table>
<br>
<table width="100%" bgcolor="000000" cellspacing="1" cellpadding="4" align="center" class="form_head">
	<tr bgcolor="FFFFFF">
		<td align="center"><a href="../complete_job.php">Zurück</td>
	</tr>
</table>



<table>
	<tr>
<?php
echo $summe2;

?>


<? 
mysql_close($server_conn); 
?>
Ich bitte aber für die Ordnung im Skript schon jetzt um Verzeihung... bin noch ein Anfänger und froh, dass ich es überhaupt soweit geschafft habe...
 
Laos ich konnte in dem doch ein wenig unübersichtlichen Quelltext auf Anhieb nur erkennen, dass Du einmal $summe3 ausgeben lässt, obwohl $summe3 nicht existiert.
Was $summe2 betrifft, lass Dir doch mal $summe2 in der While-Schleife ausgeben, dann siehst Du, ob sich der Wert von $summe2 wirklich um den Wert aus $summe erhöht.

redlama
 
Zurück