Sveiki, kas žinot kaip parašyti užklausą kuri tikrintu ar nėra tokio (lygiai tokio pačio) įvesto adreso eilutėje ir jei nėra įvestų naujus duomenis. Bandžiau:

INSERT INTO `vars` (`url`) VALUES (IF(`url`,'htttp://www.google.lt'));

Ir špyga man čia kas veikia. Pirmą kartą žaidžiu su IF(), tad jei kas žinot padėkit.

tam phpMyAdmin sunkoka susigaudyti, failo daugiau nei proto prikišta. Tiek to baiginėju savo susikurti pradinį tokį exportą, pateiksiu paskui demo, pakritikuosit :)

Hm, o tada tarkim kaip sudaryti exportuojama DB su PHP? čia gal tinka SHOW CREATE TABLE ? Ar yra dar kaip nors kitaip išvesti lentelės sukūrimo exportavimui?

Sveiki, norėjau paklausti kaip atliekamas MySQL exportas (dump)?
Bandžiau žaisti su tuo mysqldump [option] [db] [table].
Lyg ir susiradau tuos [option] kurių man reikėtų:

Išvedant rodoma serverio versija, kada darytas exportas
Prieš sukuriant naują lentelę išmetama sena (DROP)
Jei lenetelė neegzistuoja tuomet sukurti naują lentelę (šito neradau ir labai abejoju ar egzistuoja :) )
pilnas lentelių pavadinimų įterpimas
Rodomi komentarai prie sukuriamos lentelės
Exportuojama tik lentelė, jei yra įrašų jie neksportuojami

Pradžiai tiek norėjau, bet esmė kad su tuo mysqldump arba totaliai elgtis nemoku arba jis kažkaip keistai ten veikia. Bandau per mysql.exe taip:

mysqldump -add-drop-table --complete-insert  --comments --no-data webgui webgui_users

webgui - DB
webgui_users - Lentele

Ir nyfyga gaunu error:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysqldump -add-drop-table --complete-insert  --comments --no-data webgui webgui_' at line 1

Kad ir kaip bevesčiau vistiek gaunu panašaus pobūdžio klaidas. Gal aš išvis į lankas kažką čia darau ir gali paaiškint kaip daromas MySQL exportas su nurodyta DB ir Lentele?

Atsiktinės eilutės traukimas iš DB:

SELECT
    `article_cat`.`title` AS `ctitle`,
    `articles`.`author`,
    `articles`.`title`,
    `articles`.`alias`,
    `articles`.`description`,
    `articles`.`cat_alias`
FROM
    `article_cat`
Inner Join `articles` ON `article_cat`.`alias` = `articles`.`cat_alias`
JOIN (SELECT (CEIL(RAND() * (SELECT MAX(id) FROM articles))) AS id) AS r2
WHERE
    `articles`.`visible` =  'Y' AND
    `articles`.`id` = `r2`.`id`
LIMIT 0, 1

Gal įmanomas koks kitas būdas? Trumpesnis ir aiškesnis nes čia kad ir sukūriau surinkdamas viską iš dalių vistiek nelabai susigaudau kaip veikia :)

Sorry nebereik. Pagaliau susitvarkiau. Gal kam prireiks:

mysql_query("DELETE dev_news_cat, dev_news FROM dev_news_cat INNER JOIN dev_news ON dev_news_cat.id=dev_news.cid WHERE dev_news_cat.id = $del_cat") or die(mysql_error());

Kaip ištrinti duomenis iš dviejų lentelių kur pasikartoja abiejuose lentelėse ID. Tik vienoje pavadintas ID o kitoje CID. Bandžiau taip:

mysql_query("DELETE `dev_news_cat`.`id`, `dev_news`.`cid` FROM `dev_news_cat` LEFT JOIN `dev_news` ON `dev_news_cat`.`id`=`dev_news`.`cid` WHERE `dev_news_cat`.`id`=$del_cat ") or die(mysql_error());

Bet meta klaidą:

Unknown table 'id' in MULTI DELETE

Bandžiau surasti tą vietą kur naudoju kažkokią lentelę 'id', bet turbūt per durnas surast užklausoj, arba užklausa per durna suprast :)

408

(7 replies, posted in SQL užklausos ir duomenų struktūros)

DY wrote:

Ar padarytas prisijungimas prie duomenų bazės?

Patylėsiu

DY wrote:

$uzklausa="SELECT taskai FROM lentele WHERE nickas=Min2liz";
$rezultatas=mysql_query($uzklausa, $prisijungimas);
$uzrasas=mysql_fetch_object($rezultatas);
$taskai= $uzrasas->taskai + 0.01;
$uzklausa="UPDATE lentele SET taskai={$taskai} WHERE nickas=Min2liz";
mysql_query($uzklausa, $prisijungimas);

Pasakyk kuo dabar taip skiriasi nuo mano parašymo, išskyrus kad pas tave dvigubai eilučių.

minde wrote:

O tai kodėl kai rašot "neveikia" neparašot kokias klaidas rodo, kokį rezultatą rodo ar kitus simptomus iš kurių sprendžiate, kad kažkad neveikia?

Esmė ta ir yra kad visiškai jokios klaidos nemeta.

minde wrote:

b) ar jau tame stulpelyje yra kokia nors reikšmė (0, 1, 2.5 ir pan.);

Tai juk rašau UPDATE, tai reiškias gali būti. Default nustatytas 0

minde wrote:

c) ar yra iš vis įrašų atitinkančių tavo WHERE salygą;

Jei nebūtų salygos kam tada daryčiau WHERE?

Neįsižeiskit bet toks įspūdis susidarė kad visišku debilu laikot. Ir atsakinėjat kaip užsiciklinę neatkreipiat į patį klausimą. Manau galit rakinti temą, nes su tokiais atsakymais toli nenueisiu. Dėkui už tai kad ir ką parašėt.

409

(7 replies, posted in SQL užklausos ir duomenų struktūros)

Bandziau ir taip daryti, ir taip nesigauna.

$sql = mysql_fetch_assoc(mysql_query("SELECT taskai FROM lentele WHERE nickas=Min2liz"));
$taskai = $sql['taskai'] + 0.01;
mysql_query("UPDATE lentele SET taskai=$taskai WHERE nickas=Min2liz");

Ir nieko ...

410

(3 replies, posted in PHP)

Pašnekėkim apie Google ir Keywords. Google rašo vieną o visai kas kita yra. Keywords pagal nutylėjimą visi sako kad juos ima ir pagal juos atrenka norimą puslapį. Iš dalies tai tiesa, BET keywords be paryškinimų puslapyje nieko verti. Paiimkime kad ir šį forumą, Jei jame būtų Keywords tarkim 200 simbolių (Tai jau normalu, gana arti ribos kai bus perdaug), BET nėra jokio teksto, Keywords praranda savo reikšmes ir nukeliauja į Google paskutinius puslapius, taigi atrasti tokį puslapį iš tūkstančių nelabai realu. Dabar norint Optimatizuoti reikia kad Keywords raktai pasikartotų ir pačiame puslapyje ir Title bei Description. Tuo met atrenkant Google "voriukui" informaciją iš puslapio pamato kad atitinkamas žodis kartojasi keliuose vietose, reiškias jis yra svarbus ir dedamas į atskirą DB. Taip kyla jūsų PageRank bei pozicija Google reitinguose. O ką norėjau paskayti tuo? Nebūtina naudoti visokius Meta Tag'us generavimui kad kažką pasiektumėt... Nuo to dar daugiau galit nukentėti, jei Meta Tag'uose bus 200 simbolių BEt nebus nė velnio panašių žodžių puslapyje, tai užmirškit kad Google parodys jus Top10 Sąraše. O Dabar klausiai CinQ apie "voriukų" landžiojimus. Kaip Google skelbė berods prieš puse metų ar daugiau, nebeatsimenu, kad Google jokiu būdu neindeksuos jokių ID ar panašių nuorodų kaip id=2, page=start. Pasirodo neilgai taip galvojo ir jau "voriukai" sėkmingai landžioja po tokias nuorodas.

411

(7 replies, posted in SQL užklausos ir duomenų struktūros)

Niekaip nesigauna:

UPDATE lentele SET taskai=taskai+0.1 WHERE nickas=Min2liz

Ko tik nebandžiau, bet kai žirniai į sieną. Neveikia. Nesudeda skaičių. Kas buvo susidūrę su skaičiavimu?