Zum Inhalt springen

Schleifenproblem


Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ? = ?"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...