Dėkui už atsakymą :)
Po 4 metų...
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 → Posts by minde
Dėkui už atsakymą :)
Po 4 metų...
Ištrink tą "COMMENT".
Nuo MySQL 5.7.2 versijos galima trėt daugiau negu vieną trigger'į tai pačiai lentai tam pačiam event'ui:
As of MySQL 5.7.2, it is possible to define multiple triggers for a given table that have the same trigger event and action time. For example, you can have two BEFORE UPDATE triggers for a table. By default, triggers that have the same trigger event and action time activate in the order they were created. To affect trigger order, specify a clause after FOR EACH ROW that indicates FOLLOWS or PRECEDES and the name of an existing trigger that also has the same trigger event and action time. With FOLLOWS, the new trigger activates after the existing trigger. With PRECEDES, the new trigger activates before the existing trigger.
Plačiau: http://dev.mysql.com/doc/refman/5.7/en/ … yntax.html
O nėra pas tave kitų trigger'ių?
Toks jausmas, kad čia dėl kažkurio kito, UPDATE trigger'io lentelei `vocabulary`.
Yra ir event'ai. Bet gal tau labiau reikalintas trigger'is, kuris suveiktų ištrynus duomenis:
http://www.techonthenet.com/mysql/trigg … delete.php
http://www.techonthenet.com/mysql/trigg … delete.php
Po dviejų su pusę metu Hostex'e niekas nepasikeitė: https://www.facebook.com/groups/webas/p … 509642018/
buvau pamiršęs panaudoti tą pačią lentutę du kartus vienoje užklausoje skirtingose aliasuose :)
Na aš turėjau omenyje ne tos pačios lentos panaudojimą du kartus, bet apie visiškai unikalių užklausų (query) panaudojimą.
Pvz.:
SELECT *
FROM (
SELECT laukas1,laukas2
FROM lenta
) AS lenta_1 LEFT JOIN (
SELECT laukas1,laukas2
FROM lenta
) AS lenta_2 ON lenta_1.laukas1 = lenta_2.laukas1
WHERE lenta_2.laukas1 IS NULL
Ar galima paskui supaprastinti viską ir apsieti be tokių sub-užklausų - negaliu iš anksto atsakyti, reikia žiūrėti konkrečiai į galutinę užklausą. Jeigu išeina supaprastinti tai taip ir reikėtų daryti, nes išvengus sub-užklausų padidėtų SQL užklausos vykdymo greitis.
Kaip turi būti antroji užklausa? Ką ji turėtų parinkti? Tik tą laiko intervalą?
ON bus s1.uzsakymo_nr=s2.uzsakymo_nr
Antroji užklausa turi grąžinti įrašus (iš principo užtenka tik įrašo ID), kurių klientai, norimuose laiko rėžiuose padarė po antrą užsąkymą. čia užsąkymų lentą reikia JOIN'inti pačią su savimi, kur būtų jungiama pagal tai, kad atitinka tas pats klientas ir pirmos lentos užsąkymo laikas patenka į antros lentros užsakymo laiko rėžį (+-2h), bet užsąkymo ID skiriasi. čia rašau tik teoriškai, bet +-tokia logika. Gali būti, kad širos visos užklausos sujungimui su aukščiau minėta pirma užklausa bus reikalinga daugiau duomenų (stulpelių).
P.S. spėju LEFT JOIN (select2) turėjo būti, taip?
Taip, pataisiau.
Sveikas,
Galima viską realizuoti SQL'e. Logika tokia: reikia sujungti dvi užklausas per LEFT JOIN'ą ir į rezultatą neimti įrašų iš antros užklausos.
1 užklausa tai ta kurią tu jau turi
2 užklausa turi dar pasigaminti - ji turėtų būti paremta pirmąja ir greažinti įrašus tik tuo atveju, jeigu nėra užsąkymo +-2h
Abi užklausos sujungiamos maždaug taip:
SELECT (...)
FROM (select1)
LEFT JOIN (select2) ON select1.key = select2.key
WHERE select2.key IS NULL
Sveiki,
Visi galit nemokamai registruotis http://git.mysql.lt (gitlab) ir gauti 10 projektų. Jeigu bus poreikis daugiau projektų rašykit asmeninę žinutę - padidinsiu (taip, nemokamai).
Reikalingas Lead Web Developer Vilniuje
Visa informacija: http://karjera.talentlab.lt/index.php?m … ID=4383537
Nesu susidūręs su tokia situacija, bet iš to ką kartais tenka paskaityt intenete ir ką apie tai rašo google/stackoverflow tai panašu, kad esi tinkamame kelyje.
Sėkmės (-;
Jeigu duomenų bazė MySQL ir jeigu stulpelio koduotė yra UTF8, tai po prisijungimo prie DB, jeigu nėra to padaryta kitomis priemonėmis, reikia nurodyti, kad bus operuojama utf8 koduote: SET NAMES 'utf8'
Jeigu koduotės kitokios, reikia žiūrėti, kaip teisingai viską sudetinti.
Meluoji, kad darai, kaip turi būt. Akivaidžiai kažką darai blogai.
Tai tame ir esmė, kad sekantis kodas visada bus neteisingas:
$name=$_GET['test'];
$question=$_GET['question'];
<form action='Darbaz.php' method='GET'>
<tr>
<th>TestoPavadinimas:</th><th><input type='text' name='test'></th><th><input type='submit' name='OKT'></th>
</form>
Nematau question.
Tai vat kai programuoji nesamones tai nesamonė ir gaunasi.
Parodyk, man tą formą/URL, kuri vienu metu paduoda abu sekančius parametrus:
$name=$_GET['test'];
$question=$_GET['question'];
1) (tarp kitko) Kokia $KID reikšmė būna sekančioje eilutėje ir kodėl?
<form action='TestoKurimas.php?KID=$KID' method='GET'>
2) Kokia $name reikšmė būna sekančioje eilutėje ir kodėl?
$name=$_GET['test'];
Automatiškai niekada neturint $name reikšmės sekanti užklausa+kodas visada nieko negrąžins, todėl ir $KID bus paimamas tik tais atvejais, kai stulpelio name reikšmė bus tuščia.
$Klausimoid= mysql_query("SELECT ID from testai WHERE name='$name'");
$aKID = mysql_fetch_array($Klausimoid);
$KID=$aKID['ID'];
Išvados: reikia pasimokyti elementariai švariai ir aiškiai rašyti kodą, tikrinti kintamuosius, atskirti HTML'ą, nuo PHP, tikrinti klaidas, apdoroti įvedamus duomenis, papildomai juos apdoroti siunčiant į mysql užklausas.
Padebugink, kaip atrodo užklausa....:
$putKID= "UPDATE klausimai SET KID=$KID WHERE klausimas='$question'";// $KID - tampa 0. Vietoje tikrosios reiksmes kuri buvo is spausdinta ECHO.
echo "Užklausa: <pre>" . $putKID . "</pre>";
mysql_query($putKID);
O šiaip, jeigu taip kintamuosius klijuoji į eilutes, tai pastoviai kažką pametinėsi... jau nekalbant bendrai, kad tokį kodą debugink, nors jis ir labai mažas, bus DIDELIų PROBLEMų.
pradėjau gilintis (...) bet be pavyzdžio negaliu suvesti galų
Matai, kad studentas galėtų kažką padaryt, jam reikia duoti pavyzdį, kur užtekti pakeisti tik pora konstantų. O programuotojai patys ieško pavyzdžių ir aiškinasi. Nelabai sveika norėti visus atsakymus gauti forume (-;
PHP ir MySQL → Posts by minde
Powered by PunBB, supported by Informer Technologies, Inc.