Kezdőoldal » Számítástechnika » Programozás » Egy PHP script kellene,...

Egy PHP script kellene, megoldható ez? Bővebben lent!

Figyelt kérdés

#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!


2012. jan. 23. 18:39
 1/4 anonim ***** válasza:

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?

2012. jan. 23. 21:18
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

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.

2012. jan. 23. 23:08
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:

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.

2012. jan. 24. 15:24
 4/4 anonim ***** válasza:

É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

2012. febr. 1. 12:39
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!