Pereiti prie turinio

random irasas is duomenubazes


Rekomenduojami pranešimai

Sveiki, gal kas turi toki mazyti scriptuka:

 

Yra duomenu baze, joje surasyti irasai tarkim: a , b ,c ,d , e , f ,g

 

Kas karta kai refreshintusi tinklalapys mestu RANDOMiskai viena is siu irasu?

 

Panasiai tarkim kaip http://www.juokelis.lt/

Redagavo Thirdsoul
Nuoroda į pranešimą
Dalintis kituose puslapiuose
O koki kita buda zinai? :)

Iš tiesų jis teisus, kai duomenų bazėje nėra labai daug įrašų tada galima naudot ir pasiūlytą variantą, bet kai atsiranda labai daug tuomet bus didesnė apkrova, galima naudoti kažką panašaus tada į

 

$query="SELECT irasas FROM lentele LIMIT $sugeneruotas_numb, 1";

Nuoroda į pranešimą
Dalintis kituose puslapiuose

man atrodo per daug simple :) bet va čia dar plius nurodikim kad imtu iš txt ir viskas čia tai viskas viename..

<?php //cia idek teksta i masyva a = array("thirdsoul","uzdarbis","virtualus","pasaulis","pasaka"); //Suskaičiuojame visus masyvo elementus. b = count(a); //renkamas atsitikrinis tekstas. c = mt_rand(0,b-1); //Atvaizduojame. echo "a[c]<br/>tvsdizainai.lt"; ?>

Redagavo denas
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Iš tiesų jis teisus, kai duomenų bazėje nėra labai daug įrašų tada galima naudot ir pasiūlytą variantą, bet kai atsiranda labai daug tuomet bus didesnė apkrova, galima naudoti kažką panašaus tada į

 

$query="SELECT irasas FROM lentele LIMIT $sugeneruotas_numb, 1";

 

Limit'ui paduodami du parametrai t.y : nuo kelinto ir kiek irasu imti. Tavo atveju norint gauti $sugeneruotas_numb reikes daryti papildoma select, kad zinotume kiek isviso yra irasu ir ta reiksme priskirti $sugeneruotas_numb kintanamajam.

Tokiu atveju turesime atlikti dvi užklausas, tai nžn kur čia ta optimizacija.

 

Papildymas: Tam kad, greitai suktūsi užklausos neužmirškite naudoti pirminių raktų ir indeksų.

 

Thirdsoul, specialiai tau copy paste pavyzdys :) Velykos visgi...

 

//sql variantas

$result=mysql_query("SELECT anekdotas FROM juokai order by rand() limit 1");

$row=mysql_fetch_row($result);

echo $row['anekdotas'];

 

//txt variantas

$anekdotai=file("anekdotai.txt");

echo array_rand($anekdotai);

Redagavo pushkis
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Limit'ui paduodami du parametrai t.y : nuo kelinto ir kiek irasu imti. Tavo atveju norint gauti $sugeneruotas_numb reikes daryti papildoma select, kad zinotume kiek isviso yra irasu ir ta reiksme priskirti $sugeneruotas_numb kintanamajam.

Tokiu atveju turesime atlikti dvi užklausas, tai nžn kur čia ta optimizacija.

 

Papildymas: Tam kad, greitai sukūsi užklausos neužmirškite naudoti pirminių raktų ir indeksų.

Na taip nepaminėjau, kad dar turėtų papildoma užklausa būti , bet tos užklausos manau mažesnę apkrovą sukeltų negu ta viena. Kadangi RAND() praskanuoja visus įrašus, kad gauti tinkamą skaičių, o jeigu jų bus 10k ar pan, taip generuos ilgesnį laiką. Bet šiuo atveju jam tiks ir pirmas pasiūlytas variantas, o dėl mano pasiūlymo gali pasiskaityt.

 

http://www.titov.net/2005/09/21/do-not-use...ows-from-table/

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na pas mane tenais gana nemazai irasu. Tiksliai neatsimenu ar iki 5000 ar iki 20000 :).

 

Tai kaip suprantu viena is jusu varianta jeigu pasirinksiu tai viskas yra rasoma i index.php faila?

 

EDIT: pushkiz variantas pvz:

 

index.php

 

//sql variantas

$result=mysql_query("SELECT anekdotas FROM duomenubaze.sql order by rand() limit 1");

$row=mysql_fetch_row($result);

echo $row['anekdotas'];

 

//txt variantas

$anekdotai=file("anekdotai.txt");

echo array_rand($anekdotai);

 

Kas kas tokio?

.txt failas turi buti i FTP ikeltas. O .sql?

Redagavo Thirdsoul
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Na pas mane tenais gana nemazai irasu. Tiksliai neatsimenu ar iki 5000 ar iki 20000 :).

 

Tai kaip suprantu viena is jusu varianta jeigu pasirinksiu tai viskas yra rasoma i index.php faila?

 

EDIT: pushkiz variantas pvz:

 

index.php

 

//sql variantas

$result=mysql_query("SELECT anekdotas FROM duomenubaze.sql order by rand() limit 1");

$row=mysql_fetch_row($result);

echo $row['anekdotas'];

 

//txt variantas

$anekdotai=file("anekdotai.txt");

echo array_rand($anekdotai);

 

Kas kas tokio?

.txt failas turi buti i FTP ikeltas. O .sql?

 

SQL Į Php my admin

Nuoroda į pranešimą
Dalintis kituose puslapiuose

$query = mysql_query("SELECT Count(*) as cnt FROM anekdotai");
$rows = mysql_result($query, 0, 'cnt');

$rand = mt_rand(0, $rows);

$query = mysql_query("SELECT * FROM anekdotai LIMIT $rand, 1");
echo mysql_result($query, 0, 'anekdotas');

Lentelės `anekdotai` struktūra `id`, `anekdotas`

Redagavo vytska
Nuoroda į pranešimą
Dalintis kituose puslapiuose
$query = mysql_query("SELECT id FROM anekdotai");
$rows = mysql_num_rows($query);

$rand = mt_rand(0, $rows);

$query = mysql_query("SELECT * FROM anekdotai LIMIT $rand, 1");
echo mysql_result($query, 0, 'anekdotas');

Lentelės `anekdotai` struktūra `id`, `anekdotas`

 

ir viskas :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
$query = mysql_query("SELECT Count(*) as cnt FROM anekdotai");
$rows = mysql_result($query, 0, 'cnt');

$rand = mt_rand(0, $rows);

$query = mysql_query("SELECT * FROM anekdotai LIMIT $rand, 1");
echo mysql_result($query, 0, 'anekdotas');

Lentelės `anekdotai` struktūra `id`, `anekdotas`

 

 

Hmm...

Tik nelabai suprantu sio sakinio: "Lentelės `anekdotai` struktūra `id`, `anekdotas`"

 

jeigu lenteles pavadinimas tarkim "pramoga" , kur rasyt tai reiketu.

Ir ar nereiketu kaip WP TVS'e rasyt prisijungimu prie duomenu bazes? Ten db name , password ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Hmm...

Tik nelabai suprantu sio sakinio: "Lentelės `anekdotai` struktūra `id`, `anekdotas`"

 

jeigu lenteles pavadinimas tarkim "pramoga" , kur rasyt tai reiketu.

Ir ar nereiketu kaip WP TVS'e rasyt prisijungimu prie duomenu bazes? Ten db name , password ?

 

Jei jau taip nesusigaudai brukštelk į skype denas9 padėsiu

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...