Multiplikationen mit SUM

Folgendes:

1. du solltest die "spaces" bei "stundenansatz .stunden" entfernen also so -> stundenansatz.stunden. Und das überall !

2. danach probierst du mal $result = mysql_query($query) OR DIE(mysql_error());
und schreibt uns was genau der Fehler ist
 
Immer noch die gleiche Fehlermeldung.

syntax error, unexpected T_STRING, expecting ',' or ';'

Nicht in diesem Script, aber im nachfolgenden. Dieser funktioniert aber wenn ich diesen Script lösche.

Ich denke dass hier irgendwas zuviel oder zuwenig ist..

PHP:
<?php   
  include "connect.inc.php"; 
    $sqlab = 'SELECT *, 

SUM(rapport.zeit) as zeiten, 
stundenansatz.stunden as satzung 

FROM 
rapport 

LEFT JOIN 
stundenansatz 
ON 

rapport.objekt =  stundenansatz.objekt 
WHERE  
rapport.objekt =  "'.mysql_real_escape_string($_POST['objekt']).'" 
AND stundenansatz.mitarbeiter = "Schmid" 
GROUP BY  
stundenansatz.mitarbeiter'; 
$result = mysql_query($query) OR DIE(mysql_error());
 

while($row = mysql_fetch_assoc($result))
{  
echo '<td align="right">';  
echo '<b>'.  $row['zeiten']*$row['satzung'] .  '&nbsp;'  . '</b>';   
echo '</td>;  

} 

?>
 
Es geht nicht :( :( zwar kommen keine Fehlermeldungen mehr.. aber die zahlen werden trotzdem nicht angezeigt :(

PHP:
<?php   
  include "connect.inc.php"; 
    $sqlab = 'SELECT *, 

SUM(rapport.zeit) as zeiten, 
stundenansatz.stunden as satzung 

FROM 
rapport 

LEFT JOIN 
stundenansatz 
ON 

rapport.objekt =  stundenansatz.objekt 
WHERE  

rapport.objekt =  "'.mysql_real_escape_string($_POST['objekt']).'" 
AND stundenansatz.mitarbeiter = "Schmid" 
GROUP BY  
stundenansatz.mitarbeiter'; 
$result = mysql_query($query);
 

while($row = mysql_fetch_assoc($result))
{  
echo '<td align="right">';  
echo '<b>'.  $row['zeiten']*$row['satzung'] .  'hallo'  . '</b>';   
echo '</td>'; 


} 

?>
 
Hast du das Query mal testweise in phpMyAdmin o. ä. getestet?
Ist $_POST['Objekt'] wirklich befüllt?
 
Da du offensichtlich ein PHP Anfänger bist, gibt jetzt 2 Möglichkeiten:

1. du postet hier wirklich alles was du hast
- datenbankstruktur
- die ganze php datei
- und vielleicht sogar nen MySQL Dump
- evt. Fehler

so das wir genug Infos haben um dir helfen zu können. Denn es ist nämlich ziemlich schwer zwischen Tür und Angel eine Lösung zu geben.

2. du lässt es jemand machen der sich mit PHP besser auskennt.
 
Ok, isch schreibe nochmals deutlich den Struktur:

rapport
- id (10)
- objekt (111)
- mitarbeiter (Schmid)
- jahr (2009)
- monat (01)
- zeit (2)


stundenansatz
- id (20)
- mitarbeiter (Schmid)
- objekt (111)
- stunden (150)

________________________________________________________________

Das Script honorar.php hat zweit Dropdownfelder:
Objekt und Jahr

Hier die Ausgabe durch die Dropdownfelder:
Da in einem Jahr mehrere Zeiten eingefügt werden können, habe ich SUM(zeit) gewählt. So werden die gesamten Stunden der im Dropdownfelder gewähltes Objekt im gwünschten Jahr angezeigt.

PHP:
<?php  
  include "connect.inc.php";
    $sqlab = 'SELECT SUM(zeit) FROM rapport ';
  if($_POST['objekt'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "Schmid" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }
  else if($_POST['jahr'])
  {
    $sqlab .= 'WHERE
		`mitarbeiter` = "Schmid" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }
    else if($_POST['objekt'])
  {
    $sqlab .= 'WHERE
		`mitarbeiter` = "Schmid" AND
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'"';
  }
  $res = mysql_query($sqlab);
  $num = mysql_num_rows($res);
  $arr = mysql_fetch_array($res);
  //echo "<table border align='center'>";
  while ($arr) 
    { 
echo '<td align="right">';
echo '<b>'.  $arr['SUM(zeit)'] .  '&nbsp;'  . '</b>'; 
echo '</td>';
echo '</a>';
$arr = mysql_fetch_array($res);
    }
?>

________________________________________________________________

Es gibt ja die Tabelle Stundenansatz. Hier wird separat eingefügt wieviel ein Mitarbeiter für ein Objekt erhält. Für jedes Objekt wird einzeln das Honorar eingeschrieben.

Nach dem obigen Beispiel:
Wenn ich in den Dropdownfelder das Objekt 111 und Jahr 2009 wähle, sollte es als Resultat 300 anzeigen. (Da zeit im rapport 2 und stunden im stundenansatz 150 steht. 2x150=300)

Ich bin nur soweit gekommen:
Hier bleibt das Feld leer, nicht einmal das Hallo erscheint...:(

PHP:
<?php   
  include "connect.inc.php"; 
    $sqlab = 'SELECT *, 

SUM(rapport.zeit) as zeiten, 
stundenansatz.stunden as satzung 

FROM 
rapport 

LEFT JOIN 
stundenansatz 
ON 

rapport.objekt =  stundenansatz.objekt 
WHERE  

rapport.objekt =  "'.mysql_real_escape_string($_POST['objekt']).'" 
AND stundenansatz.mitarbeiter = "Schmid" 
GROUP BY  
stundenansatz.mitarbeiter'; 
$result = mysql_query($query);
 

while($row = mysql_fetch_assoc($result))
{  
echo '<td align="right">';  
echo '<b>'.  $row['zeiten']*$row['satzung'] .  'hallo'  . '</b>';   
echo '</td>'; 


} 

?>
 
Müsste nicht in beiden Tabellen das Feld ID den gleichen Inhalt haben

In deinem Beispiel:

rapport
- id (10)
- objekt (111)
- mitarbeiter (Schmid)
- jahr (2009)
- monat (01)
- zeit (2)

stundenansatz
- id (20)
- mitarbeiter (Schmid)
- objekt (111)
- stunden (150)

ist das aber nicht der Fall.

Habe jetzt nicht den ganzen PHP-Code kontrolliert, weil mir das mit der ID gleich zu Beginn aufgefallen ist

Gruß Thomas
 
Zurück