problem s kodom na php + mysql
problem s kodom na php + mysql
potrebujem poradit ako sformulovat jeden kod... mam 2 tabulky "a" a "b" v tabulke "a" mam stlpec nick a niekedy sa tam nick opakuje a potrebujem dat do tabulky "b" do stlpca nick hodnotu nick z tabulky "a" ale nick sa v tabulke "b" nesmie opakovat. pomozete mi niekto ?
-
geoge046
Star
- Príspevky: 608
- Registrovaný: 10 aug 2005, 14:15
- Bydlisko: Prievidza
- Kontaktovať používateľa:
Cawes, to som teraz tak rychlo naklepkal, len som nevedel co chces potom s tym nickom spravit ak sa tam nenachadza. Aspon neco 
Kód: Vybrať všetko
//definovanie prihlasovacich udajov
$host = "";
$nick = "";
$psw = "";
$db = "";
//prihlasenie
$link = mysql_connect($host, $nick, $psw);
//nastavenie diakritiky v pridavani
mysql_query("SET CHARACTER SET 'cp1250'", $link);
$result = mysql_db_query($db, "SELECT nick FROM tabulka_b WHERE nick = 'nick'", $link)
$pocet = mysql_num_rows($result);
if($pocet !== "0") {
//tu bude co sa ma spravit potom ked sa nick v tabulke b nenachadza
} else { }
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
hmm.. on chce asi spraviť len tabuľku kde bude mať unikátne nicky..
teraz však neviem či chceš takto premiestniť všetky unikátne nicky z tabuľky "a", alebo len jeden vložiť do tabuľky "b", pokiaľ tam ešte neexistuje..
v prípade že všetky tak
a ak len jeden
v tomto prípade budeš musieť mať použitý aj unique index..
teraz však neviem či chceš takto premiestniť všetky unikátne nicky z tabuľky "a", alebo len jeden vložiť do tabuľky "b", pokiaľ tam ešte neexistuje..
v prípade že všetky tak
Kód: Vybrať všetko
INSERT INTO `b` (`nick`) SELECT DISTINCT `nick` FROM `a`
Kód: Vybrať všetko
INSERT INTO `b` (`nick`) VALUES('janko') ON DUPLICATE KEY UPDATE `nick` = `nick`
nefunguje mi nic 
ide o toto: v tabulke "a" mam zaznamy kde sa nick opakuje... ostatne riadky ma nezaujimaju... a do tabulky "b" chcem vlozit hodnoty zo stlpca nick, cize vsetky nicky ale tak aby sa mi v tabulke "b" neopakovali... proste ako niekto napisal aby boli unikatne... skusal som to aj cez polia s funckiou in_array ale aj tak mi to nefungovalo... bolo to nejako takto: ale po ked som dal vypisat cele pole boli tam vsetky zaznamy... skusal som to aj tak ako pisal george ale aj to mi do tabulky "b" hodilo vsetky nicky z tabulky "a"...
ide o toto: v tabulke "a" mam zaznamy kde sa nick opakuje... ostatne riadky ma nezaujimaju... a do tabulky "b" chcem vlozit hodnoty zo stlpca nick, cize vsetky nicky ale tak aby sa mi v tabulke "b" neopakovali... proste ako niekto napisal aby boli unikatne... skusal som to aj cez polia s funckiou in_array ale aj tak mi to nefungovalo... bolo to nejako takto:
Kód: Vybrať všetko
$nick = array ("");
$vyber = mysql_query ("select * from a",$link);
while ($row = mysql_fetch_array($vyber)) {
if (!in_array($row['nick'],$nick)) {
$nick[] = $row['nick'];
}
}-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
takze zmenil som kodovanie v tabulke z latin1 na utf8 a po vypise udajov s prikazom distinct sa mi naskytol pohlad ako napr.
takze preto su udaje zdvojene... len teraz neviem ako spravit aby to zmizlo... nevem co znamena znak \r... \n je novy riadok ale \r nemam potuchy... btw tie udaje citam z txt suborov a zapisujem do db...
Kód: Vybrať všetko
neppo\n
jano\n
jano\r\nno dobre a ako to odstranit ??? urobil som to zatial len s pripadom kde je \r\n avsak neviem ako mam spravit podmienku ze ako spravit abz to fungovalo aj s \r\n aj s \n naraz... mozete poradit ?
Kód: Vybrať všetko
str_replace("\r\n","",$nick)a keby si to spravil takto:
to by neslo? ci?
Kód: Vybrať všetko
str_replace("\r","",$nick)
str_replace("\n","",$nick)
Kód: Vybrať všetko
$o = array("\r\n", "\n", "\r");
str_replace($o, "", $nick);thx vsetkymchrono napísal:Kód: Vybrať všetko
$o = array("\r\n", "\n", "\r"); str_replace($o, "", $nick);