Egy PHP script kellene, megoldható ez? Bővebben lent!
#Probléma:
Néhány sorban az egyik oszlopban található érték túl magas, így nem képes rendeltetés szerűen feldolgozni a rendszer.
#Megoldás:
Adott értékek átírása.
#A műveletet itt végzendő:
"player" adatbázisban "item" táblázat
Megközelítőleg 25.000 sort, illetve 26 oszlopot tartalmaz.
Amire szükség van: "id" oszlop ez az első oszlop és kizárólag számokat tartalmaz.
>>>>>
2 részből kellene megoldani ezt:
#1. rész:
Felsorolja azokat a sorokat, ahol az "id" oszlopban az érték 999999999 nél nagyobb.
#2. rész:
A felsoroltakban az "id"oszlopban az értéket átírja egy olyan értékre, mely kissebb "999999999" (9számjegy) ÉS még NEM szerepel abban az oszlopban.
A legkissebb megengedett érték az "1", ha ez még nem szerepel természetesen.
--------------------------------------------------------------
Tehát tegyük fel csak ez a 5 sor szerepel a táblában az egyszerűség kedvéért: (természetesen az esetemben több mint 25.000 sorról van szó)
ID= 5 többi oszlop értéke jelen esetben nem lényeges
ID= 10 többi oszlop értéke jelen esetben nem lényeges
ID= 90 többi oszlop értéke jelen esetben nem lényeges
ID= 101 többi oszlop értéke jelen esetben nem lényeges
ID= 1000 többi oszlop értéke jelen esetben nem lényeges
Ismét az egyszerűség kedvéért legyen az ID maximum megengedett értéke: 100
Ezek közül ami nekünk nem felel meg:
ID= 101
ID= 1000
(A többi marad az eredeti értékkel)
Akkor ezt a következőképpen módosítja:
ID= 101 -> Az érték 100 alatti lesz, de nem lehet olyan, amely már szerepel ez az oszlop valamely sorában. (Tehát nem lehet 5, 10, 90)
ID= 1000 -> -||-
FONTOS: A sorban szereplő többi értéket nem modosítja! CSAK az ID-t.
---------------------------------------------------------------
Az előbb említett illusztrációban szereplő érték csak példa, a valódi megengedett maximális érték a fent említett "999999999"!
Lényegében ennyiről lenne szó, a művelet elvégzését illetően pedig:
Legjobb lenne, ha automatikusan elvégezné ezt a műveletet amint egy hibás érték kerül be az "id" oszlopba, vagy pedig fél óránként.
Ha ez így nem kivitelezhető, akkor szeretnék mellé egy gomb-ot, mely lenyomásával lezajlik ez a művelet. (De csak ha az automatizált megoldás nem kivitelezhető, vagy leterhelné az adatbázist)
Ha valaki megírná nekem ezt a scriptet(teljes egészében [<?PHP-tól ?>ig]), azt nagyon szépen megköszönném!
//////
Az elejére, ha kérhetnék egy hasonlót (vagy ami szükséges a csatlakozáshoz, természetesen az adatokat ki tudom tölteni):
$serverip = 'XX.XXX.XXX.XX';
$dbhost = 'XX.XXX.XXX.XX';
$dbuser = 'AAAAAAAA';
$dbpw = 'BBBBBBBB';
Én ennyire nem értek ehhez, de egy rutinosabb embernek szerintem nem okoz ez nagy gondot, de számomra rettentően fontos lenne.
A segítséget előre is nagyon szépen köszönöm!
mysql_query("ALTER TABLE player AUTO_INCREMENT = 1");
999999 fölött még tudnia kellene kezelnie a rendszernek, hogy érted, hogy nem képes rendeltetésszerűen feldolgozni?
Ez az auto increment dolog itt nem fog működni, ha már megvan a tábla úgy hiszem.
Amúgy egy ilyen script nem 2 sor azért.
(Bár korántsem bonyolult a feladat.)
Ha jót akarsz kérdező, inkább próbálkozol, mert nem hiszem, hogy annyira kapkodna mindenki, hogy neked scriptet írjon így látatlanul, teszteletlenül.
1#: Az volt az első amit kipróbáltam, pontosabban: Navicat konzolba: ALTER TABLE `item` AUTO_INCREMENT=1, de semmi változás sajnos.
2#: Ha szépen megkérnélek tudnál segíteni benne? Olvasgattam rengeteg helyen, hogy hogyan kellene megoldani, de nem szeretnék valamit elrontani a kontárkodásommal, mert rendkívül nagy a tétje, még ha mentést is csinálok, akkor is 2-3 perc alatt rengeteg adat kerül be és törlődik ki, illetve módosul.
Én inkább a rendszert módosítanám, mert az a rendszer ami csak 999999 id-t tud használni, az hibás.
id az auto_increment-es, egyedi azonosító, nem illik csak úgy módosítgatni, továbbá hogyha egyszer az item eléri a 999999 sort, akkor a fent említett algoritmus feleslegessé válik
egy integer 2^32-t tud kezelni, nem értem, hogy mi lehet a baj 999999 felett
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!