Topic: Mano Klausimai
Sveiki.
Taigi cia raysiu savo klausimus.
1.Gal yra kokia funkcija kuri prieš kiekviena didžiaja raide pridetu tam tikra simboli tarkim [*].
Pvz.: BlogasTaisyklės --> Blogas*Taisyklės.
PHP ir MySQL programavimas, SQL užklausos, duomenų bazės, PHP scriptai, pagalba, diskusijos, pamokos ir straipsniai.
You are not logged in. Please login or register.
PHP ir MySQL → PHP → Mano Klausimai
Sveiki.
Taigi cia raysiu savo klausimus.
1.Gal yra kokia funkcija kuri prieš kiekviena didžiaja raide pridetu tam tikra simboli tarkim [*].
Pvz.: BlogasTaisyklės --> Blogas*Taisyklės.
Yra. Su preg_replace() galima tai atlikti, tik reikės pasirašyti atitinkamą šabloną.
stai toki pasidariau:
<?php
$zodis = 'TuEsi.';
$ABC = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$SPACE = array(" A"," B"," C"," D"," E"," F"," G"," H"," I"," J"," K"," L"," M"," N"," O"," P"," Q"," R"," S"," T"," U"," V"," W"," X"," Y"," Z" );
echo str_replace($ABC, $SPACE, $zodis);
?>
Gerai? ar yra ir paprastenis budas
Galima ir taip, kaip tu padarei, bet.... yra lengesnis būdas, kaip sakiau, su preg_replace:
$eilute = "AaaNaMas";
echo preg_replace("/([A-Z])/", "*$1", $eilute);
*Aaa*Na*Mas
Dekui.
Na kaip tikrinau 5 kartus mano budu beveik 2x greiciau atlieka ;] vidurkis: str_replace - 3.8862228393555E-5 seconds
preg_replace - 6.5088272094727E-5.
Tad pasilieku prie savo ;]
Na.. jeigu tu lygini 0.000038 ir 0.000065 sekundės ir tau tai svarbiau negu papradtumas ir lankstumas tai pasilik prie "savo" varianto (-;
________Kitas Klausimas_________
2.Del mysql [SHOW TABLES FROM DB]
Tai atvaizduos visu leneteliu pavadinimus. Kaip padaryt jog neatvaizduotu tam tikros lenteles pavadinimo tarkim `vartotojai`
________Kitas Klausimas_________
2.Del mysql [SHOW TABLES FROM DB]
Tai atvaizduos visu leneteliu pavadinimus. Kaip padaryt jog neatvaizduotu tam tikros lenteles pavadinimo tarkim `vartotojai`
Gali naudoti LIKE arba WHERE ir ten nurodyti kurių tau nereikia.
Avice wrote:________Kitas Klausimas_________
2.Del mysql [SHOW TABLES FROM DB]
Tai atvaizduos visu leneteliu pavadinimus. Kaip padaryt jog neatvaizduotu tam tikros lenteles pavadinimo tarkim `vartotojai`Gali naudoti LIKE arba WHERE ir ten nurodyti kurių tau nereikia.
Ir kaip ta uzklausa turetu atrodyt?
Bandziau NOT LIKE 'vartotojai' bet NOT LIKE neveikia ;/
minde wrote:Avice wrote:________Kitas Klausimas_________
2.Del mysql [SHOW TABLES FROM DB]
Tai atvaizduos visu leneteliu pavadinimus. Kaip padaryt jog neatvaizduotu tam tikros lenteles pavadinimo tarkim `vartotojai`Gali naudoti LIKE arba WHERE ir ten nurodyti kurių tau nereikia.
Ir kaip ta uzklausa turetu atrodyt?
Bandziau NOT LIKE 'vartotojai' bet NOT LIKE neveikia ;/
Dekui.
Pasidariau taip:
function game($prefiksas)
{
$sql = "SHOW TABLES FROM `avice_game` LIKE '".$prefiksas."_%'";
$result = mysql_query($sql);
while ($row = mysql_fetch_row($result)) {
echo "<li><a href='?game=".$row[0]."'>".abc($row[0])."</a></li>";
}
}
Lyg ir gerai ;]
Kitas klausimas.
Yra apie ~40 mysql lenteliu.
visos su tokia struktura:
id. vardas. score.
1. test. 50.
Kaip butu lengviausia is visu lenteliu istraukt po viena varda kuris turetu daugiausiai score.
Ir tai butu apie ~40 vardu ;]
Reikia iš tų vienodos struktūros lentelių perdaryti viską į vieną lentelę su papildomų stulpeliu, kuris rodytu, kuri "sena_lentelė" čia yra. Tada viskas būtų atliekama su viena paprasta užklausa.
O dabar tau teks naudoti 40 užklausų, kurias geriausiu atveju gali sujungi tik per UNION.
Jeigu užklausą gaminsi dinamiškai, tai gali pasinaudoti information_schema duomenimis.
information_schema labai jau ilgai uzklausa vygdo ;/
Banysiu viska vienoje lentele padaryt.
Jau viska pilnai perdariau ant vienos lenteles.
Tai dabar tarkim struktura:
id. name. folder. score
1. testas 24 50
2. iks 24 65
3. gl 31 31
4. xs 24 12
5. test 31 50
Tai kaip dabar turetu atrodyt uzklausa , kad istraukti didziausius pagal score ir tik 1 rezultatas is 1 folder.
Tai atrodyt turetu taip.
1.iks 65
2.test 50
Jau viska pilnai perdariau ant vienos lenteles.
Tai dabar tarkim struktura:
id. name. folder. score
1. testas 24 50
2. iks 24 65
3. gl 31 31
4. xs 24 12
5. test 31 50Tai kaip dabar turetu atrodyt uzklausa , kad istraukti didziausius pagal score ir tik 1 rezultatas is 1 folder.
Tai atrodyt turetu taip.
1.iks 65
2.test 50
Grupuoji pagal `folder` o rezultatuose imi MAX(`score`).
$MySQL = "PASIRINKTI kur max score Iš Lentelės KUR folder yra lygus dvidešimt keturiems apbriboti nuo nulio iki dviejų";
va. :D
Mindė pirmas spėjo.. :))
Dekui Veikia ;]
SELECT name, MAX(score) FROM `servers` WHERE `on`='2' group BY `game`
O kaip atvaizduot name to kuriame daugiausiai score? Nes dabar betkoki name atvaizduja is tos game grupes
Turėtum gautą rezultatą sujungti su pradine lentele pagal `score` ir reikiamus duomenis pasiimti tokiu būdų. čia aišku klausimas yra ar `score` yra unikalus ar ne, ir ką daryto jeigu yra dublikatai.
PHP ir MySQL → PHP → Mano Klausimai
Powered by PunBB, supported by Informer Technologies, Inc.