Topic: Užklausos duomenų atnaujinimas ir kita...

Sveiki! Turiu keletą klausimų:

1. Pvz. nuskaitau vartotojo duomenis,juos pakoreguoju ir su naujais duomenimis toliau dirbu,tai kaip man padaryti ,kad tie seni nuksiatyti duomenis taip pat atsinaujintų? Iki šiol tai dariau taip: $dm = mysql_fetch_array(mysql_query("SELECT * FROM vartotojai WHERE nick='$nick'")); mysql_query("UPDATE vartotojai SET kazkas='$kazkas' WHERE nick='$nick'"); $dm = mysql_fetch_array(mysql_query("SELECT * FROM vartotojai WHERE nick='$nick'"));

2. Kaip su viena užklausa nuskaityti dviejų vartotojų duomenis ir kaip paskui juos atskirai naudoti?

3. Kaip padaryti tokį dalyką su viena užklausa: reikia nuskaityti vartotojus,kuriems yra 18 metų ir sudėti jų turimų daiktų vertes,kurie yra kitoje lentelėje. Na tarkim vienoje lentelėje yra vartotojai ir jų amžius,o kitoje lentelėje surašyti vartotojų turimi daktai,kurių gali būtų daug,o lentelėje 'daiktai' surašyti daiktų pavadinimai ir jų vertės.

Re: Užklausos duomenų atnaujinimas ir kita...

Exploder wrote:

Sveiki! Turiu keletą klausimų:

1. Pvz. nuskaitau vartotojo duomenis,juos pakoreguoju ir su naujais duomenimis toliau dirbu,tai kaip man padaryti ,kad tie seni nuksiatyti duomenis taip pat atsinaujintų? Iki šiol tai dariau taip: $dm = mysql_fetch_array(mysql_query("SELECT * FROM vartotojai WHERE nick='$nick'")); mysql_query("UPDATE vartotojai SET kazkas='$kazkas' WHERE nick='$nick'"); $dm = mysql_fetch_array(mysql_query("SELECT * FROM vartotojai WHERE nick='$nick'"));

Na kitaip ir nesugalvosi, nuskaitai su SELECT, o kai reikia išsaugoti į duomenų bazę naudoji UPDATE.

Exploder wrote:

2. Kaip su viena užklausa nuskaityti dviejų vartotojų duomenis ir kaip paskui juos atskirai naudoti?

Pradžioje padaryk, kad galėtum dirbti su vieno vartotojo duomenimis, tada matydamas visą vaizdą galėsi toliau tobilinti.
Nuskaityti daugiau negu vieną įrašą gali taip:

SELECT ...
FROM ...
WHERE id = 1
   OR id = 2
Exploder wrote:

3. Kaip padaryti tokį dalyką su viena užklausa: reikia nuskaityti vartotojus,kuriems yra 18 metų ir sudėti jų turimų daiktų vertes,kurie yra kitoje lentelėje. Na tarkim vienoje lentelėje yra vartotojai ir jų amžius,o kitoje lentelėje surašyti vartotojų turimi daktai,kurių gali būtų daug,o lentelėje 'daiktai' surašyti daiktų pavadinimai ir jų vertės.

čia reikia naudoti lentelių sujungimą (JOIN), šiame forume panaudojęs paiešką turėtum rasti nemažai pavyzdžių ir paaiškinimu šia temą, jeigu kas nesigaus parašyk, kaip darei, bandytum padėti ištaidsyti klaidas.

Re: Užklausos duomenų atnaujinimas ir kita...

minde wrote:
Exploder wrote:

Sveiki! Turiu keletą klausimų:

1. Pvz. nuskaitau vartotojo duomenis,juos pakoreguoju ir su naujais duomenimis toliau dirbu,tai kaip man padaryti ,kad tie seni nuksiatyti duomenis taip pat atsinaujintų? Iki šiol tai dariau taip: $dm = mysql_fetch_array(mysql_query("SELECT * FROM vartotojai WHERE nick='$nick'")); mysql_query("UPDATE vartotojai SET kazkas='$kazkas' WHERE nick='$nick'"); $dm = mysql_fetch_array(mysql_query("SELECT * FROM vartotojai WHERE nick='$nick'"));

Na kitaip ir nesugalvosi, nuskaitai su SELECT, o kai reikia išsaugoti į duomenų bazę naudoji UPDATE.

Exploder wrote:

2. Kaip su viena užklausa nuskaityti dviejų vartotojų duomenis ir kaip paskui juos atskirai naudoti?

Pradžioje padaryk, kad galėtum dirbti su vieno vartotojo duomenimis, tada matydamas visą vaizdą galėsi toliau tobilinti.
Nuskaityti daugiau negu vieną įrašą gali taip:

SELECT ...
FROM ...
WHERE id = 1
   OR id = 2
Exploder wrote:

3. Kaip padaryti tokį dalyką su viena užklausa: reikia nuskaityti vartotojus,kuriems yra 18 metų ir sudėti jų turimų daiktų vertes,kurie yra kitoje lentelėje. Na tarkim vienoje lentelėje yra vartotojai ir jų amžius,o kitoje lentelėje surašyti vartotojų turimi daktai,kurių gali būtų daug,o lentelėje 'daiktai' surašyti daiktų pavadinimai ir jų vertės.

čia reikia naudoti lentelių sujungimą (JOIN), šiame forume panaudojęs paiešką turėtum rasti nemažai pavyzdžių ir paaiškinimu šia temą, jeigu kas nesigaus parašyk, kaip darei, bandytum padėti ištaidsyti klaidas.

2. Kaip su viena užklausa nuskaityti dviejų vartotojų duomenis ir kaip paskui juos atskirai naudoti?

Aš noriu,kad nuskaitęs duomenis galėčiau naudoti juos be jokio ciklo,šiuo būdu kurį pasakei reikės dar ciklą sukt,kad gaučiau kelių vartotojų info. Man reikia,kad tarkim

mysql_fetch_array(mysql_query("NUSKAITOM DVIEJU NICK DUOMENIS"));

ir, kad iškart naudot galėčiau man reika.

Re: Užklausos duomenų atnaujinimas ir kita...

Exploder wrote:

Aš noriu,kad nuskaitęs duomenis galėčiau naudoti juos be jokio ciklo,šiuo būdu kurį pasakei reikės dar ciklą sukt,kad gaučiau kelių vartotojų info. Man reikia,kad tarkim

mysql_fetch_array(mysql_query("NUSKAITOM DVIEJU NICK DUOMENIS"));

ir, kad iškart naudot galėčiau man reika.

Na visų pirmą, tai toks principas, kaip tu čia nori, per vieną komandą pasiimti visus duomenis tiesiogiai su query ir fetch funkcijom yra blogas. Blogas tuo, kad tu net nesivargini nei apdoroti klaidų, nei tikrini kiek ten kokių įrašų buvo.

Antars dalykas, kad tokią užklausą kokios tau reikia tai ją galima parašyti, tik ji žinok nebus paprastesnė negu naudotis ciklu.

Kodėl nenori pasirašyti PHP funkcijos, kuri teisingai paima duomenis, sudeda juos į masyvą? Tada beliktu tik naudoti ja taip:

$duomenys = mano_funkcija_kuri_paima_duomenis_is_mysql_taip_kaip_man_reikia($parametrai);

Re: Užklausos duomenų atnaujinimas ir kita...

minde wrote:
Exploder wrote:

Aš noriu,kad nuskaitęs duomenis galėčiau naudoti juos be jokio ciklo,šiuo būdu kurį pasakei reikės dar ciklą sukt,kad gaučiau kelių vartotojų info. Man reikia,kad tarkim

mysql_fetch_array(mysql_query("NUSKAITOM DVIEJU NICK DUOMENIS"));

ir, kad iškart naudot galėčiau man reika.

Na visų pirmą, tai toks principas, kaip tu čia nori, per vieną komandą pasiimti visus duomenis tiesiogiai su query ir fetch funkcijom yra blogas. Blogas tuo, kad tu net nesivargini nei apdoroti klaidų, nei tikrini kiek ten kokių įrašų buvo.

Antars dalykas, kad tokią užklausą kokios tau reikia tai ją galima parašyti, tik ji žinok nebus paprastesnė negu naudotis ciklu.

Kodėl nenori pasirašyti PHP funkcijos, kuri teisingai paima duomenis, sudeda juos į masyvą? Tada beliktu tik naudoti ja taip:

$duomenys = mano_funkcija_kuri_paima_duomenis_is_mysql_taip_kaip_man_reikia($parametrai);

Tipo taip:
$fetch = mysql_query(„SELECT nick FROM vartotojai WHERE id='1' or id='2'“);
$sk = 0;
while($stulpeliai = mysql_fetch_array($fetch)) {

if($sk == 0) { $nick = $stulpeliai['nick']; } else { $nick2 = $stulpeliai['nick']; }
$sk ++;
}

jo?

Re: Užklausos duomenų atnaujinimas ir kita...

Panašiai. Tik nenaudočiau $sk, o iš DB papildomai paimčiau [b]ID[b/] ir sudėjęs visus įrašus į masyvą pagal tą ID ir atrinkčiau ko man reikia.

Re: Užklausos duomenų atnaujinimas ir kita...

Tarkim updatinu table stulpas='$stulpas' ir poto i6\skart noriu naudot ta atnaujinta kintamaji stulpas,kaip tai padaryti be dar vienos select uzklausos? $duomenys['stulpas'] = $stulpas; bandziau tai kintamasis neatsinaujina...

Re: Užklausos duomenų atnaujinimas ir kita...

Exploder wrote:

Tarkim updatinu table stulpas='$stulpas' ir poto i6\skart noriu naudot ta atnaujinta kintamaji stulpas,kaip tai padaryti be dar vienos select uzklausos? $duomenys['stulpas'] = $stulpas; bandziau tai kintamasis neatsinaujina...

Taigi tu tą reikšmę, kuria atnaujini ir turi kintamajame $stulpas, tai ko tau dar reikia?

žiūrėk:

<?php
$duomenys = array("stulpas" => "vienas");
print_r($duomenys);
$duomenys["stulpas"] = "du";
print_r($duomenys);
?>

Rezultatai:

php -f stulpas.php
Array
(
    [stulpas] => vienas
)
Array
(
    [stulpas] => du
)

Viskas veikia, viskas atsinaujina.

Re: Užklausos duomenų atnaujinimas ir kita...

Gal galite paaiskinti ka daro sql konfiguracijoje thread_cache_size? Nenoriu naujos temos kurt.