Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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