Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

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?

  • 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.

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

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. ;)

nach while ist ein semikolon zuviel.

s'Amstel

Für "from brain to hand" find ich 2 Fehler eigentlich noch ganz ok :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.