problem s kodom na php + mysql

Programovacie jazyky, rady, poradňa...
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

problem s kodom na php + mysql

Príspevok od používateľa neppo »

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
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

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
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

nech mas v tabulke A dva riadky ktore maju v stlpci nick hodnotu "durko". v ostatnych stlpcoch sa budu pravdepodobne lisit. ktory z nich ta chces dat?

inak riesenie je jednoduche. nepotrebujes ani php. Staci ti pekne vyskladat SQL query.
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

tak ano da sa to aj cez SQL ale ked tam mal PHP + MYSQL tak som to tak aj riesil =)
final
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 04 dec 2005, 11:43
Bydlisko: Prievidza

Príspevok od používateľa final »

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

Kód: Vybrať všetko

INSERT INTO `b` (`nick`) SELECT DISTINCT `nick` FROM `a`
a ak len jeden

Kód: Vybrať všetko

INSERT INTO `b` (`nick`) VALUES('janko') ON DUPLICATE KEY UPDATE `nick` = `nick`
v tomto prípade budeš musieť mať použitý aj unique index..
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

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:

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'];
        }
}
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"...
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

A ty chces len vsetky naraz nicky prekopirovat do tabulky "b", kde budu iba unikatne nicky? a chces to pocou php + mysql?
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

geoge046 napísal:A ty chces len vsetky naraz nicky prekopirovat do tabulky "b", kde budu iba unikatne nicky? a chces to pocou php + mysql?
presne tak... vsetko naraz... je to nieco ako aktualizacia cize to potrebujem cez php
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

ide mi hlavne o to aby sa nicky z tabulky "A" vypisali ale aby sa nicky ktore sa v tabulke "A" nachadzaju viac ako 1x vypisali len jeden krat a nie viac.. proste vypis nickov bez opakovania... vzdy iba jeden zaznam
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

SELECT DISTINCT nick FROM a
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

mastermind napísal:SELECT DISTINCT nick FROM a
jj ide to ale s tym rozdielom ze neiktore zaznamy su tam nie 1x ale 2x... a neviem preco... :(
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

coze? mas tam 2x ten isty nick? si si isty? nie je to sposobene tym ze je to case sensitive? nemas tam nahodou 2x ten isty nick ktory sa lisi vo velkych a malych pismenach?
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

takze zmenil som kodovanie v tabulke z latin1 na utf8 a po vypise udajov s prikazom distinct sa mi naskytol pohlad ako napr.

Kód: Vybrať všetko

neppo\n
jano\n
jano\r\n
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...
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

\r\n je tiez novy riadok .. akurat ze na linuxe
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

\n nový riadok v *nix
\r nový riadok v OS od Apple
\r\n nový riadok v DOS/Windows
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

ups .. tak naopak :oops: nikdy si to nemozem zapamatat
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

no dobre a ako to odstranit ??? urobil som to zatial len s pripadom kde je \r\n

Kód: Vybrať všetko

str_replace("\r\n","",$nick)
avsak neviem ako mam spravit podmienku ze ako spravit abz to fungovalo aj s \r\n aj s \n naraz... mozete poradit ?
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

a keby si to spravil takto:

Kód: Vybrať všetko

str_replace("\r","",$nick)
str_replace("\n","",$nick)
to by neslo? ci?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Kód: Vybrať všetko

$o = array("\r\n", "\n", "\r");
str_replace($o, "", $nick);
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

chrono napísal:

Kód: Vybrať všetko

$o = array("\r\n", "\n", "\r");
str_replace($o, "", $nick);
thx vsetkym
Napísať odpoveď