Ich habe eine Datenbanktabelle mit der folgenden Struktur. id
Spalte wird später hinzugefügt. So sind alle id
Zellen leer.Aktualisieren einer Datenbankspalte (vertikal) mit einem Array
id | song | album | artist
-----------------------------
| song1 | alb1 | art1
| song2 | alb2 | art2
| song3 | alb3 | art3
| song4 | alb4 | art4
| song5 | alb5 | art5
Ich habe ein Array, das die id
Werte für die Tabelle hält. Ich werde die Tabelle (die ID-Spalte) mit den Werten im Array aktualisieren. Beispiel:
$array = [
"C45Rm3fLGn",
"ocIik81up2",
"IcuSn9T77y",
"tJv7AbF53r",
"a9eZ6xYM5Y",
];
Diese Elemente sind eindeutige zufällige Zeichenfolgen.
Wie soll ich fortfahren? Ich denke darüber nach, das Array zu wiederholen und UPDATE
für jedes Element zu verwenden.
$array = [
"C45Rm3fLGn",
"ocIik81up2",
"IcuSn9T77y",
"tJv7AbF53r",
"a9eZ6xYM5Y",
];
$rows = $mysqli->query("SELECT * FROM songs")->fetch_all(MYSQLI_ASSOC);
for ($i = 0; $i < count($array); $i++) {
$row = $rows[$i];
$id = $array[$i];
$mysqli->query("UPDATE songs SET id = '$id' WHERE song = '{$row["song"]}' AND artist = '{$row["artist"]}'");
}
Gibt es einen besseren Weg?
UPDATE: Ich benutze Autoinkrement nicht und die ID-Spalte nicht zum Zeitpunkt der Tabelle gab es erstellt wurde. Jetzt habe ich eine ID-Spalte hinzugefügt. Es gibt mehr als 300 Einträge. IDs der Datensätze sind eindeutige zufällige Zeichenfolgen. Bevor ich einen weiteren Datensatz zur Datenbank hinzufüge, muss jeder Datensatz eine eindeutige zufällige Zeichenfolge für seine id
haben, so dass ich beim Einfügen eines neuen Datensatzes eine zufällige Zeichenfolge erstellen und überprüfen kann, ob sie eindeutig ist oder nicht, indem ich sie mit den IDs vergleiche in der Tabelle.
In diesem Stadium muss ich nur die ID-Spalte mit einem Array aktualisieren. Array-Elemente sind irrelevant.
Obwohl MYSQL_ASSOC tatsächlich denselben Wert wie MYSQLI_ASSOC hat, sollten Sie "MYSQLI_ASSOC" verwenden, wenn Sie mysqli verwenden. Die mysql-Funktionen sind als veraltet gekennzeichnet und werden in neueren Versionen entfernt: http://php.net/manual/en/function.mysql-fetch-array.php – Marco
@Marco Fixed. Immer noch im Übergang =) – akinuri
@ Down Voter, Was ist möglicherweise falsch mit dieser Frage? Wenn es irgendetwas gibt, hilf mir, es zu verbessern. Down-Voting hilft nicht wirklich. Das wird jetzt eine Sache. Gelegentliche Downvotes. Es fängt an, zu mir zu kommen. – akinuri