Ich habe eine Tabelle, die drei Spalten ID, Punkte, Rang hat. Rechtzeitig aktualisiere ich Daten für alle Felder, so dass die Punkte auf und ab gehen, aber alte Ranglisten bleiben gleich, also versuche ich einen Weg zu finden, der jeder ID ihren würdigen Rang basierend auf den verdienten Punkten verleiht.Wie kann man mehrdimensionale Array-Werte mit einem anderen Multi-Array vergleichen und Bulk-Daten abhängig von den Ergebnissen mit PHP und MySQLi aktualisieren?
Ich habe mehr als 2000 Zeilen in dieser Tabelle. Ich möchte es in php5 + mit mysqli machen? Ich denke, ich habe eine Lösung, aber es Timeout auch mit 1200 Sekunden Timeout-Einstellung und Speicher wird erschöpft.
Ich denke, dass meine Lösung genau funktioniert, aber jede der Schleifen braucht einen Arzt. Hier ist mein grobes Ziel ist ‚update‘ Abfrage genau zu gehen, dass alle Punkte in desc Reihenfolge nimmt und Auszeichnungen id ein Rang gegen die verdienten Punkte:
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/includes/db.inc.php';
$a2= mysqli_query($link, "SELECT COUNT(*) as count FROM p1");
$b2 =mysqli_fetch_array($a2);
$count = $b2['count'];
$i=1;
while($i<=$count){
$a1= mysqli_query($link, "SELECT points FROM p1 ORDER BY points DESC LIMIT $i");
if(!$a1){
echo mysqli_error($link);
}
while($po = mysqli_fetch_array($a1)){
$ross[] = $po;
}
foreach($ross as $pot){
$points=$pot['points'];
}
$a5a= mysqli_query($link, "SELECT id FROM p1 WHERE points = '$points'");
while($popo = mysqli_fetch_array($a5a)){
$idi=$popo;
}
foreach($idi as $idm){
$id=$idm['id'];
$rank = $i;
$update = mysqli_query($link,"UPDATE p1 SET rank = '$rank' WHERE points = '$points' AND id ='$id'");
}
if(!$update){
echo "Error updating Rank".mysqli_error($link);
} else {
echo "Succuessul for where id = '$id' and points = '$points' set rank = '$rank'<br/>";
}
$i++;
}
?>
Willkommen bei Stack Overflow! Bitte korrigieren Sie den Einzug Ihres Codes. – valignatev
hat den Einzug behoben. Ich vermute! Jetzt hilf mir Geeks! – Unknown
ehrlich gesagt mit aproach und kommentare wie diesem können sie hier keine antworten erhalten. – Zmrzka