Veröffentlicht 7. Februar 200817 j Hallo an alle Ich hoffe das ihr mir helfen könnt. folgendes Problem: Ich bekomme das ergebnis einer Datanbankabfrage (mysql) das ich mit PHP ausgeben möchte. Das klappt auch. Nun versuche ich einen Wert aus jededem Datensatz herauszunehmen, diesen zu bearbeiten und danach in die Tabelle zurück zu schreiben. Bisher sieht mein PHP wie folgt aus: $datensatz = mysql_fetch_array($trefferliste); if ($i%2) $zeit=$datensatz['jahre'] $zeit=$zeit-10(*1500) { echo "<tr style=\"background:#00FFFF\";> <td>".$datensatz['nachname']."</td> <td>".$datensatz['vorname']."</td> <td>".$datensatz['jahre']."</td> <td>$zeit</td></tr>"; } else Mein Problem liegt in der Zeile mit "$zeit".Dort soll eine Berechnung stattfinden. Wie stelle ich es an, das mir das gelingt. Danke im voraus vbler
7. Februar 200817 j Kann es sein das es an den fehlenden semikolons liegt? $datensatz = mysql_fetch_array($trefferliste); $zeit=$datensatz['jahre']; $zeit=$zeit-10(*1500); if ($i%2)
7. Februar 200817 j Hi, mysql_fetch_array liefert, wie der Name sagt, ein Array, das Du auch durchlaufen musst. Bitte einmal erste Bsp auf PHP: mysql_fetch_array - Manual anschauen
7. Februar 200817 j hmm muss nicht bei mysql_fetch_array eigentlich mit ner while schleife gearbeitet werden? $datensatz = mysql_fetch_array($trefferliste); while ($datensatz) { $zeit=$datensatz['jahre']; $ergebnis=$zeit-10(*1500); } echo $ergebnis; sorry bin leider aus php etwas raus, vielleicht hilft es
7. Februar 200817 j Autor Danke aber das klappt nicht. Der Fehler wird für die berechnungszeile ausgegeben. Ich befürchte das ich die berechnung im SQL-Statement durchführen muß.
7. Februar 200817 j Ja muss man normalerweise - zumindest, wenns nicht nur ein Datensatz ist, der dabei rauskommt. @VBler: Was gibt deine Berechnung denn momentan aus und was steht in dem Feld des Arrays mit dem du rechnen willst drin? Und vor allem: Was soll das mit dem $zeit=$zeit-10(*1500); überhaupt machen? Also jetzt speziell das (*1500). :confused: Das ist falsche Syntax und kann nicht funktionieren. Soll das $zeit = ($zeit-10)*1500; heissen oder was?
7. Februar 200817 j Autor In dem Feld jahre steht eine Zahl drin, größer als 11. Dies wird in der Abfrage gefiltert. Nun soll ausgerechnet werden, das für jedes Jahr das mehr als 10 ist, eine Prämie von 1500.-€ ausgezahlt werden soll. Dies macht die berechnung.
7. Februar 200817 j Try this Und wenn's funktioniert, "danke" sagen <? // Beispiel-SQL, sollte dem Problem naheliegen $sql = ' SELECT vorname, nachname, jahre FROM mitarbeiter WHERE angestellt = 1 AND jahre > 11 '; $query = mysql_query($sql); $result = array(); $praemie = 1500; // Euro if(mysql_num_rows($query) > 0) { while($row =mysql_fetch_assoc($query); // WICHTIG: assoc, *NICHT* array - siehe php.net/mysql_fetch_assoc { $praemienjahre = max(0, intval($row['jahre']) - 10); // Info: Durch das max() bekommen wir immer Null oder größer, aber nie Minuswerte $row['praemie'] = $praemienjahre * $praemie; // Theoretisch wird das WHERE jahre > 11 obsolet. $result[] = $row; } } ?> <h1>Praemienuebersicht</h1> <table> <tr> <th>Vorname</th> <th>Nachname</th> <th>Jahre</th> <th>Praemie</th> </tr> <? if(sizeof($result) > 0) { foreach($result as $person) { ?> <tr> <td><?= $person['vorname'] ?></td> <td><?= $person['nachname'] ?></td> <td><?= $person['jahre'] ?></td> <td><?= $person['praemie'] ?></td> </tr> <? } } else { ?> <tr> <td colspan="4">Keine Daten vorhanden</td> </tr> <? } ?> </table> [/PHP] Grüße, freescale
8. Februar 200817 j Autor Danke freescale Ich habe es probiert, aber es kommt immer eine Fehlermeldung bei der zeile: while($row =mysql_fetch_assoc($query); vbler
8. Februar 200817 j Ich habe es probiert, aber es kommt immer eine Fehlermeldung bei der zeile: while($row =mysql_fetch_assoc($query); Da fehlt eine schließende Klammer. nach while ist ein semikolon zuviel. Das außerdem.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.