[ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
NapísalOffline : 31.10.2013 8:14 | uprava proti duplicitam

prosim Vas ako spravim podmienku proti duplicite ?

Kód:
$sn_od = stripslashes(htmlspecialchars(trim(safe($_POST['sn_od']))));
$sn_do = stripslashes(htmlspecialchars(trim(safe($_POST['sn_do']))));

$dat = "SELECT sn FROM db_sn";
$res = mysql_query($dat) or die($dat."<br/>". mysql_error());
$sn = $res['sn'];

    if( $sn === $sn_od && $sn === $sn_do )
    {
        $sql = "INSERT INTO projekt (p_datum, i_datum, model, sn_od, sn_do, meno, reason) VALUES ('$p_datum1','$i_datum1','$model','$sn_od','$sn_do','$meno','$reason')";
        mysql_query($sql) or die($sql."<br/>". mysql_error());

        ...

        echo "Successful";
        mysql_close();
    }
    else
    {
        echo "<script language=javascript> alert('Serial number is allredy in the databaze, try again.') </script>";
        return true;
    }


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 15.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 31.10.2013 9:41 | uprava proti duplicitam

Možno sa ti hodí klauzula ON DUPLICATE KEY UPDATE
http://dev.mysql.com/doc/refman/5.0/en/ ... icate.html


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
Napísal autor témyOffline : 31.10.2013 9:56 | uprava proti duplicitam

Dakujem , ale to nie je to co by som potreboval.

Potrebujem sprati to aby pri odoslani 6tich udajov s formulara skontrolovalo podla dvoch ,s tych 6tich, udajov ci sa nachadza v databaze, ak ano tak vyhodit alert ze sa uz nachadza a nic sa neudeje a vrati sa na stranku a ak sa nenachadza v db tak proste insertne ...


Offline

Správca fóra
Správca fóra
uprava proti duplicitam

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 31.10.2013 10:52 | uprava proti duplicitam

Da sa to riesit viacerymi sposobmi. Naviazem na ten, ktory mas nacrtnuty vo svojom kode, aj ked je v podstate u teba nefunkcny a nelogicky. V prvom selecte si zistis pocet zaznamov, ktore obsahuju tebou zvolene 2 udaje (SELECT...WHERE...). Ak sa nic nenajde, vykonas insert, inak zobrazis alert. Jednoduche, len je potrebne pouzit spravne funkcie...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
Napísal autor témyOffline : 31.10.2013 11:17 | uprava proti duplicitam

no ja som tym kodom co mam chcel povedat to ze ak $sn s databazy rovna odoslanemu $sn_od tak zapis a ak nie tak alert.
no a nefunkcny je pretoze bud zapisuje vsetko alebo nic.
Taaak tu sa to trocha komplikuje pretoze to co odosiela formular sa zapisuje do tabulky projekt a to podla coho kontrolujem je v tabulke db_sn , tu ako nastavim ten SELECT ... WHERE ???


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
Napísal autor témyOffline : 07.11.2013 14:55 | uprava proti duplicitam

Stanley , ake su tie spravne funkcie ?
neviem to dat dajak dokopy ...


Offline

Užívateľ
Užívateľ
uprava proti duplicitam

Registrovaný: 02.06.08
Prihlásený: 19.07.16
Príspevky: 3330
Témy: 147 | 147
Bydlisko: Žilina / Os...
Vek: 24
NapísalOffline : 07.11.2013 19:53 | uprava proti duplicitam

Však ti to napísal, už len pri tom selecte čo tam máš sa musia prenášať dáta, takto to môžeš spraviť ako ti napísal
Kód:
SELECT sn FROM db_sn WHERE [row]= sn_od;
Ak vráti False, tak spravíš insert. Alebo ešte lepšie to skontrolovať cez
Kód:
SELECT COUNT();


_________________
PC - ASUS M2N-MX Se+ | AMD X2 4200+ | 2GB RAM | Nvidia 8600GT | WD 320GB | 350W |NTB - ASUS K50AB SX-010 | | ASUS X550L | SteelSeries Mousepad | A4tech XL-750BF | HTC Explorer |
CCNA (640-802) |
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
Napísal autor témyOffline : 08.11.2013 8:51 | uprava proti duplicitam

Takto:
Kód:
$dat = "SELECT count(sn) FROM db_sn WHERE [row]= sn_od AND [row]= sn_do;";
$res = mysql_query($dat) or die($dat."<br/>". mysql_error());

alebo
Kód:
$dat = "SELECT count(db_sn.sn) FROM db_sn JOIN projekt WHERE [row]= projekt.sn_od AND [row]= projekt.sn_do";
$res = mysql_query($dat) or die($dat."<br/>". mysql_error());

v oboch pripadoch mi to hlasi error sql syntax
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 '[row]= sn_od , [row]= sn_do' at line 1

To , Ak vrati false tak insert inak true tak alert , mam spravit cez if , else alebo while , if , else ?


Naposledy upravil Elrohir dňa 08.11.2013 12:53, celkovo upravené 2

Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 15.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 08.11.2013 9:26 | uprava proti duplicitam

lebo za [row] si máš doplniť svoje názvy stĺpcov (sĺpcov, takže neviem, majky358, prečo si napísal row, ale nevadí)
To prvé je správne, presne tak to urob a ak to vráti nulu, nič také tam nie je a môžeš smelo pridávať.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
Napísal autor témyOffline : 08.11.2013 9:35 | uprava proti duplicitam

tak som to skusil takto a stale to vypisuje tu istu chybu ako keby nepoznalo [row]
Kód:
SELECT count(sn) FROM db_sn WHERE [row]= sn_od, sn_do

a sn_od a sn_do su nazvy stlpcov v tabulke databazy
Nevadi ze su to dve rozne tabulky v databaze ?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 15.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 08.11.2013 10:11 | uprava proti duplicitam

Aspoň klauzulu SELECT a JOIN by si si veru mohol pozrieť hlbšie, zíde sa ti to.
A tiež by si mmal čítať, čo ti ostatní píšu a snažiť sa to pochopiť
BX píše:
lebo za [row] si máš doplniť svoje názvy stĺpcov


Napíš ako vyzerá tá časť tvojej databáze, ktorú chceš kontrolovať


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
Napísal autor témyOffline : 08.11.2013 10:28 | uprava proti duplicitam

Ved citam a snazim sa to chapat, ale inak mi to nepride to za [row] mam doplnit svoje nazvy stlpcov ako tak ako som napisal.
Ano pozrel som si SELECT, UPDATE, INSERT, JOIN, JOIN LEFT, WHERE, ORDER BY ...
Nepochopil som co chces.
Databazu mam rozdelenu do troch tabuliek a to projekt kde sa ukladaju zakladne udaje , db_sn tu sa nachadzaju viacerer udaje a tu sa robia vsetky zmeny a user kde si registrovany uzivatelia .
Medzi zakladne udaje su aj sn_od a sn_do cize sa nachadzaju v tabulke projekt a tieto udaje sa nesmu opakovat, v tabulke db_sn je zas sn ktore je vytvorene podla sn_od a sn_do a podla tych udajov ktore su v stlpci sn sa kontroluje ci sa nachadza ci nie.


Offline

Užívateľ
Užívateľ
uprava proti duplicitam

Registrovaný: 02.06.08
Prihlásený: 19.07.16
Príspevky: 3330
Témy: 147 | 147
Bydlisko: Žilina / Os...
Vek: 24
NapísalOffline : 08.11.2013 14:36 | uprava proti duplicitam

Však
Kód:
SELECT COUNT("názov stlpcu") FROM "nazov tabulky" WHERE "nazov stlpcu" = "hodnota"
Selektuješ počet záznamov zo stĺpcu x a tabuľky xy kde stĺpec x = hodnota. Ak ti to vráti nulu, tak daný záznam sa vtom stĺpci nenachádza takže si spravíš INSERT ako chceš. Ak sa nemýlim by to malo fungovať, skús, študuj atď....


_________________
PC - ASUS M2N-MX Se+ | AMD X2 4200+ | 2GB RAM | Nvidia 8600GT | WD 320GB | 350W |NTB - ASUS K50AB SX-010 | | ASUS X550L | SteelSeries Mousepad | A4tech XL-750BF | HTC Explorer |
CCNA (640-802) |
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
Napísal autor témyOffline : 08.11.2013 14:58 | uprava proti duplicitam

ech dnes som dajaky vymlety,
ano to viem co to znamena, mne islo len o to where a ci nevadi ze su to dve tabulky ale mi to uz doslo konecne,
ved stujem, skusam a studujem...atd ...

Tak dufam ze to uz spravim a ked to uz pojde dam sem vysledk.

Aaale este jedna otazka v " SELECT count(sn) FROM db_sn WHERE nazov stlpca = 'hodnota' " - tak nazov stlpca je stlpec ktorim porovnavam data posielane na insert a hodnota ma byt $sn ?

Dakujem vam


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 15.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 08.11.2013 20:01 | uprava proti duplicitam

Nazov stlpca je nazov stlpca v databaze, porovnavas to s premennou. A ak je to z dvoch tabuliek, musis pouzit aj JOIN. A nazvy stlpcov radsej pis aj s nazvom tabulky, vyhnes sa tym vela problemom.
Napr ak mas tabulku Tabulka1 a Tabulka2 a v Tabulka1 mas stlpec do, v Tabulka2 mas stlpec od, tak to napises ako
Kód:
SELECT COUNT(*) FROM Tabulka1 JOIN Tabulka2 WHERE Tabulka1.do = $do AND Tabulka2.od = $od;
Ak su premenne typu string (textove). tak este patria do apostrofov.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7 | 7
Bydlisko: Senec
Napísal autor témyOffline : 11.11.2013 12:30 | uprava proti duplicitam

hm tak som to dobre mal teda , potom nechapem preco to nefunguje , nevadi skusim na nieco prist a ked nie napisem
zatial dakujem este raz


 [ Príspevkov: 16 ] 


uprava proti duplicitam



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

proti hacku

v Redakčné systémy

4

1111

10.04.2006 17:57

gumy

V tomto fóre nie sú ďalšie neprečítané témy.

Boj proti piratum

v Operačné systémy Microsoft

23

1414

04.10.2005 12:33

Luks

V tomto fóre nie sú ďalšie neprečítané témy.

Stužka proti Ficovi

[ Choď na stránku:Choď na stránku: 1, 2, 3, 4, 5 ]

v Spoločnosť, politika, psychológia, filozofia, náboženstvo

126

3613

19.04.2010 11:07

don jebot

V tomto fóre nie sú ďalšie neprečítané témy.

Za a proti

v Grafické karty

9

451

12.06.2008 2:07

Saky

V tomto fóre nie sú ďalšie neprečítané témy.

ochrana proti spamu

v PHP, ASP

2

243

23.04.2009 17:38

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

antivir proti spyware

v Antivíry a antispywary

6

459

02.04.2011 16:25

baltimora

V tomto fóre nie sú ďalšie neprečítané témy.

ochrana proti spamerom

v PHP, ASP

11

431

08.02.2008 14:56

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Bezpečnosť proti XSS

v PHP, ASP

2

130

30.05.2014 21:59

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

Ochrana proti \n

v PHP, ASP

6

383

11.12.2008 12:49

B.A.X.O

V tomto fóre nie sú ďalšie neprečítané témy.

Ochrana proti linkovaniu

v Ostatné

0

455

17.05.2009 1:21

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

Ako proti spamu?

v Sieťové a internetové programy

2

219

20.04.2010 17:52

Milan.H

V tomto fóre nie sú ďalšie neprečítané témy.

Ochrana proti CSRF

v Ostatné

20

514

03.11.2011 14:38

Flety

V tomto fóre nie sú ďalšie neprečítané témy.

Ockovanie proti chripke

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Zdravie, medicína, choroby a liečenie

32

1442

26.11.2009 20:36

reDo

V tomto fóre nie sú ďalšie neprečítané témy.

Ochrana proti prepisovaniu

v Operačné systémy Microsoft

0

235

11.03.2009 16:20

Pavol.F

V tomto fóre nie sú ďalšie neprečítané témy.

Odstráňte ochranu proti zapisovaniu.

v Ostatné programy

3

1019

17.07.2012 18:55

dado1812

V tomto fóre nie sú ďalšie neprečítané témy.

zaheslovaný net proti routru

v Siete

7

223

11.10.2010 22:50

shiro



© 2005 - 2017 PCforum, edited by JanoF