Autor | Zpráva | ||
---|---|---|---|
Night Profil * |
Nevíte někdo jak položit dotaz na vypsání volného místa?
|
||
AM_ Profil |
#2 · Zasláno: 16. 5. 2009, 15:25:22
|
||
Night Profil * |
#3 · Zasláno: 16. 5. 2009, 15:57:36
A co mám špatně na tomhle? $resub = mysql_query("SELECT SUM(DATA_FREE) FROM $db_login;");
|
||
AM_ Profil |
#4 · Zasláno: 16. 5. 2009, 16:34:25
že v tabulce $db_login není sloupec data_free. Jinými slovy, takhle se to nedělá :)
|
||
AM_ Profil |
#5 · Zasláno: 16. 5. 2009, 16:36:07
jo v manuálu je to popsáno... to se nedotazuješ do tabulky, kde chceš volné místo, ale do information_schema, což je speciální databáze s metadaty tabulek.
|
||
nightfish Profil |
#6 · Zasláno: 16. 5. 2009, 16:36:17
Night
když už, tak SELECT SUM(DATA_FREE) FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = 'mydb' AND TABLE_NAME = 'mytable'; kde za mydb a mytable doplníš název databáze a tabulky |
||
Night Profil * |
#7 · Zasláno: 16. 5. 2009, 16:45:06
To nefunguje
|
||
AM_ Profil |
#8 · Zasláno: 16. 5. 2009, 16:47:32
Night
„To nefunguje“ Zřejmě je to rozbité. Promiň, ale při takovém popisu problému a ještě neschopnosti si přečíst manuál ti těžko kdo poradí. Když už to vůbec nezvládáš tak aspoň napiš chybu, kterou mysql vrátí (pokud jedeš přes PHP tak mysql_error()). |
||
Night Profil * |
#9 · Zasláno: 16. 5. 2009, 16:53:34
Unknown table 'PARTITIONS' in information_schema
|
||
Night Profil * |
#10 · Zasláno: 16. 5. 2009, 16:56:10
$resub = mysql_query("SELECT SUM(DATA_FREE) FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_SCHEMA = '$db_login' AND TABLE_NAME = 'pages'"); |
||
AM_ Profil |
#11 · Zasláno: 16. 5. 2009, 17:02:42
Aha, zřejmě nepoužíváš partitionované tabulky (sám nemám ponětí, co to je, ale v manuálu je tenhle příklad psaný pro ně).
Show table status příkaz, o kterém ten článek je, jsi nezkusil? |
||
Night Profil * |
#12 · Zasláno: 16. 5. 2009, 17:05:01
To jsem testnul taky,ale urco jsem to napsal blbe
|
||
Night Profil * |
#13 · Zasláno: 16. 5. 2009, 17:10:25
Tohle mi nevypíše vůbec nic
$res = mysql_query("SHOW TABLE STATUS FROM $db_login;"); while($ar = mysql_fetch_array($res)) { $subcashe = $ar["DATA_FREE"]; } |
||
AM_ Profil |
#14 · Zasláno: 16. 5. 2009, 17:26:42
a mysql_error() po tom dotazu při tom vypíše co? to jsi nezkoušel?
|
||
Night Profil * |
#15 · Zasláno: 16. 5. 2009, 17:29:09
Co takhle? Nějakej výsledek mi vyplivnul,ale nevim jestli je pravdivej. Hostuju na ic a nevim jakou dávaj velikost na mysql
$res = mysql_query("SHOW TABLE STATUS FROM $db_login;"); while($ar = @mysql_fetch_array($res)) { $subcashe = $ar["DATA_FREE"] + $ar["Index_length"]; } echo "Výsledek je: ".$subcashe; Výsledek je: 2048 |
||
Night Profil * |
#16 · Zasláno: 16. 5. 2009, 17:56:52
Kolik má ic.cz velikost na mysql?
|
||
AM_ Profil |
#17 · Zasláno: 16. 5. 2009, 18:33:54
- proč je tam ten zavináč? vyhoď ho
- proč je to ve while? když to vypíše jen jeden řádek . dost dobře nerozumím, proč k volnému místu přičítáš délku indexu souboru |
||
Night Profil * |
#18 · Zasláno: 16. 5. 2009, 18:44:51
ve while protoze jinak mi to nic nevypise a bez indexu to samí
|
||
AM_ Profil |
#19 · Zasláno: 16. 5. 2009, 18:53:49
"Máme tam chybu, tak zkusíme přidat nějaké blafy, třeba to půjde". špatný přístup.
-data_free zobrazuje místo alokované, ale nevyužité (ne maximální kapacitu). -Stačilo by si ten dotaz zobrazit v myAdminu a viděl bys co to vrací :) -InnoDB free jde ve sloupci Comment ale je tam s tím i text, musíš si to vyparsovat. A stejně to imho není maximální místo databází využitelné. - S tím while máš vlastně pravdu, zobrazí se to pro celou DB, ne pro tabulku, takže víc řádků. Ale ty subcashe bys měl spíš sčítat, ne pokaždé přiřadit znovu (tedy $subcashe +=) |
||
Night Profil * |
#20 · Zasláno: 16. 5. 2009, 20:05:43
-Stačilo by si ten dotaz zobrazit v myAdminu a viděl bys co to vrací :)
Vědět kde můžu testovat dotazy, tak to testuju |
||
Night Profil * |
#21 · Zasláno: 16. 5. 2009, 20:29:37
A neví někdo kde najdu kompletní kód? Přeci jenom dělat něco poprvé v hádankách se mi zdá úchylný
|
||
Night Profil * |
#22 · Zasláno: 16. 5. 2009, 20:31:48
Po 7 hodinách na stejným místě když někde musí být uveřejněný kód.
|
||
AM_ Profil |
#23 · Zasláno: 16. 5. 2009, 20:34:12
stáhni a nainstaluj si phpMyAdmin (je to PHP aplikace pro spojení s databází). Pokud to spouštíš online na IC (a ne na vlastním webserveru), tak tam myAdmina mají na http://mysql.ic.cz
|
||
Night Profil * |
Hmm, to je pekny,ale kde tam najdu test dotazu??
|
||
AM_ Profil |
#25 · Zasláno: 16. 5. 2009, 20:47:16
karta SQL...
Jedna nicneříkající rada která tě asi moc nepotěší: vidím, že s MySQL začínáš, tak začni na jednoduchých věcech a nehroť hned analýzu tabulky :) pokud do DB necpeš enormní množství dat, tak to řešit nemusíš, vejde se toho tam docela hodně... |
||
Night Profil * |
#26 · Zasláno: 16. 5. 2009, 20:59:30
Budu tam mít toho právě hodně a chci mít status. Vždyt uz v zajmu hostingu je to aby to lidi vedeli a tak nekde musi bejt celej kod
|
||
Nox Profil |
#27 · Zasláno: 16. 5. 2009, 21:20:44
Night
1) Podívej se na stránky IC nebo do administrace, jestli je tam psaný limit DB, případně googlem přes site, čili dát do googlu něco jako "site:www.ic.cz velikost databáze" (limit databáze atd.) 2) Pokud nenajdeš, zeptej se na jejich foru 3) Pak už se jen koukneš do phpMyAdminu, který tam jistě mají, kolik tvá db zabírá => vítězství |
||
Night Profil * |
#28 · Zasláno: 16. 5. 2009, 21:44:51
A nechce mi sem nekdo napsat dotaz pro blbi? Select????
|
||
Night Profil * |
#29 · Zasláno: 16. 5. 2009, 23:12:21
Jakto ze pri data_free mi vypisuje 0?? Jsem si jistej ze uz to mam dobre,ale nechce mi vypsat vysledky
|
||
AM_ Profil |
#30 · Zasláno: 16. 5. 2009, 23:25:59
Protože data_free JE nula.
|
||
Téma pokračuje na další straně.
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0