pole z mysql
7 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Ahoj, dělam chat a při registraci uživatele jsem chtěl udělat ověření, pokud již stejně registrovaný uživatel existuje. Každý uživatel má svoji tabulku (tabulka má takový název, jaký je nick toho uživatele) v databázi a mělo by to probíhat takto: VYPIŠ TABULKY Z DATABÁZE. KDYŽ EXISTUJE TABULKA == $novy_nick: xxxx ELSE: xxxx endif; Pokusil jsem se to napstat takto: $dbconn = mysql_connect("$server", "$username", "$password"); mysql_select_db("chat"); $sql = "show tables"; $result = mysql_query($sql); $row = mysql_fetch_array($result); if (in_array ("$nick", $row)): $GLOBALS["warning"] = "true"; else: $GLOBALS["warning"] = "false"; endif; Ty proměnné jsou globální proto že jsou ve funkci ale to je jedno .. takže jsem to zkoušel a šťoural jsem se v tom ale když tabulka se shodným novým nickem existuje tak to stejně dá false .. :-((( sem z toho nešťastnej .. prosím poraďte případně jiné řešení, a omluvte prosím jestli sou tam nějaký zásadní chyby je mi totiž 14 :-) díkys moc jestli mi pomůžete zatim .. Cauves
-
Aby každý uživatel měl vlastní tabulku, je dost neobvyklé a nešťastné řešení. Nevím, co přesně potřebuješ, ale půjde to určitě udělat jinak. Jinak se podívej, co dělá funkce mysql_fetch_row (funguje jako mysql_fetch_array), do manuálu na http://mirrors.inway.cz/manual/cs/function.mysql-fetch-row.php A taky se pomocí print_r($row); podívej, co se uloží do $row.
-
<HTML>>> Každý uživatel má svoji tabulku (tabulka má takový název, jaký je nick toho uživatele) - nesmysl, tohle je prasarna, zkus to jinak (resp. precti si jak se s sql pracuje a jak de pri tom maji data stukturovat)</HTML>
-
dobře.. ale musim vycházet z toho, že potřebuju napsat podmínku jestli pole obsahuje slovo ---- tohle budu opotřebovat i když to udělam jak řikáte
-
Já sem nad tim právě bádal a v manuálu jsem našel toto: Example 1. In_array() example $os = array ("Mac", "NT", "Irix", "Linux"); if (in_array ("Irix", $os)){ print "Got Irix"; } když tohle napíšu, tak to fachá. Ale pokud místo $os dam to co mi vyjde z $row = mysql_fetch_array($result);, tedy $row, tak to prostě nefunguje, jsem ujištěn že mi spojení s databází funguje dobře, protože když ověřuju pomocí mysql_num_rows, tak mi to vrátí číslo shodné s počtem tabulek v databázi. Pole, co se mi vyrátí v dotazu na sql tak v něm jsou normálně názvy těch tabulek > bohužel , v tu chvíli nefunguje in_array a pořád vrací false ... .-(
-
JEJ LIDICKY UZ SEM NA TO PRISEL :... <? function mysql_table_exists($link, $database, $tableName) { $tableName = "fff"; include("mysql.inc"); $link = mysql_connect("$server", "$username", "$password"); $database = mysql_select_db("mrkvo2", $link); $tables = array(); $tablesResult = mysql_list_tables("mrkvo2", $link); while ($row = mysql_fetch_row($tablesResult)) $tables[] = $row[0]; if(in_array($tableName, $tables)): print "true"; else: print "false"; endif; } mysql_table_exists($link, $database, $tableName); ?> :-)
-
Když to uděláš pomocí jedné tabulky, jak se to běžně a správně dělá, tak to lze zjistit pomocí SQL dotazu na databázi. Pomocí tabulek pro každého uživatele to vážně nedělej (viz Richard). Řekni, co do té tabulky chceš dávat, a třeba vymyslíme vhodnější řešení.