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

Hi Community,

ich habe gerade ein Schleifenproblem, bin auch langsam am verzwiefeln, wie ich es lösen kann.


$query=mysql_query("SELECT * FROM sportmontana.diskus ORDER BY `diskus`.`setzwert1` DESC");
$anzahl=mysql_num_rows($query);


for ($i=1;$i<=$anzahl;$i++){

switch ($i) {
case 1:
$punkte=30;
break;
case 2:
$punkte=27;
break;
case 3:
$punkte=24;
break;
case 4:
$punkte=21;
break;
case 5:
$punkte=19;
break;
case 6:
$punkte=17;
break;
case 7:
$punkte=15;
break;
case 8:
$punkte=13;
break;
case 9:
$punkte=11;
break;
case 10:
$punkte=10;
break;

case 11:
$punkte=9;
break;

case 12:
$punkte=8;
break;
case 13:
$punkte=7;
break;
case 14:
$punkte=6;
break;
case 15:
$punkte=5;
break;
case 16:
$punkte=4;
break;
case 17:
$punkte=3;
break;
case 18:
$punkte=2;
break;
case 19:
$punkte=1;
break;

}



$query=mysql_query("SELECT * FROM sportmontana.diskus ORDER BY `diskus`.`setzwert1` DESC");
while( $row1 = mysql_fetch_assoc($query) ){
$query6="UPDATE `sportmontana`.`diskus` SET `punkte1` = '".$punkte."' WHERE name = '".$row1['name']."' ";
echo $query6."<br/>";

}
}
[/php]

Ich bekomme derzeit als Ausgabe:

[b]UPDATE `sportmontana`.`diskus` SET `punkte1` = '30' WHERE name = 'admin'[/b]

UPDATE `sportmontana`.`diskus` SET `punkte1` = '30' WHERE name = 'Walter Müller'

UPDATE `sportmontana`.`diskus` SET `punkte1` = '30' WHERE name = '1234'

UPDATE `sportmontana`.`diskus` SET `punkte1` = '27' WHERE name = 'admin'

[b]UPDATE `sportmontana`.`diskus` SET `punkte1` = '27' WHERE name = 'Walter Müller'[/b]

UPDATE `sportmontana`.`diskus` SET `punkte1` = '27' WHERE name = '1234'

UPDATE `sportmontana`.`diskus` SET `punkte1` = '24' WHERE name = 'admin'

UPDATE `sportmontana`.`diskus` SET `punkte1` = '24' WHERE name = 'Walter Müller'

[b]UPDATE `sportmontana`.`diskus` SET `punkte1` = '24' WHERE name = '1234' [/b]

Benötige aber nur die Dickgedruckten.

Es geht darum jeden Namen nur einmal Punkte zuvergeben, dies ergibt sich durch den Setzwert, der größte gewinnt 30Punkte, der 2. 27 Punkte und soweiter nach unten.

Setze ich $query ganz unten außerhalb der for Schleife bekomme alle Namen die gleichen Punkte hier in diesem Fall 24.

Es ist nicht klar wo die Variable $punkte her kommt, zusätzlich beginnen die Schleifen und auch die Rows bei 0 und laufen bis n-1, Deine Schleife iteriert von 1 bis n. Wenn Du nur einzelne Einträge updaten willst, dann wäre ein "update table set ? = ? where ? = ?" das richtige oder auch alternativ "insert into ... on duplicated key ? = ?"

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.