[ Príspevkov: 22 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87

takze

vytvoril som tabulku:

Kód:
CREATE TABLE IF NOT EXISTS `tabulka1` (
  `cislo` int(3) NOT NULL auto_increment,
  `email` varchar(50) collate cp1250_czech_cs NOT NULL,
  `meno` varchar(20) collate cp1250_czech_cs NOT NULL,
  `priezvisko` varchar(20) collate cp1250_czech_cs NOT NULL,
  `obec` varchar(50) collate cp1250_czech_cs NOT NULL,
  `vek` int(3) NOT NULL,
  PRIMARY KEY  (`cislo`)


do tabulky davam udaje z formulara

Kód:

$pripojenie = mysql_connect("localhost", "***", "***");

mysql_select_db("tabulka1", $pripojenie);

$poziadavka = "INSERT INTO tabulka1 (email, meno, priezvisko, obec, vek) ";

$poziadavka .= "VALUES (\"$email\", \"$meno\", \"$priezvisko\", \"$obec\", \"$vek\");";

mysql_query($poziadavka) or die ("Stala sa chyba v spojeni s DB !");

mysql_close($pripojenie);

echo "Dakujeme. <br> Tvoje údaje boli odoslane ... ";



vsetko uz pekne funguje ...

no a pomohli by ste mi s tym, aby som do DB, resp. do tabulky tabulka1 nezadaval rovnake udaje, t.j. aby mi pri zadavani hodnot kontrolovalo v databaze, ci sa uz dane udaje nevyskytuju ... napriklad ak je uz jozko mrkvicka zadany v DB, aby mi ho nedovolilo zadat este raz ...

ak uz uzivatel existuje v DB, malo by php vyplut nejaky text, ze "dany uzivatel uz existuje a podobne ..."

snad rozumiete :)


Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1 | 1
Bydlisko: 127.0.0.1

povedzme ze si uz formular odoslal a zistujes ci zadany nick uz existuje. ked nie regne ho. ked ano vypise error. tak to musis spravit tak ze vytiahnes data z databazi kde nick = $_POST['nick'] a ked ma dotaz viac vysledkov ako 0 tak uz je taky zaznam cize kod:

Kód:
$sql = 'SELECT id FROM users WHERE nick='.$_POST['nick'];
$result = mysql_query($sql);
$nums = mysql_num_rows($result);

if ($nums != 0)
{
   print 'Takyto nick uz je registrovany';
}
else
{
  $sql = 'INSERT INTO users bla bla...';
}


_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 05.12.2007 20:40 | overenie, ci udaje v tabulke uz existuju

nick je malo, to je ako keby som kontroloval len meno, ale ved ludia mozu mat rovnake meno ... mohol by si mi to upravit tak, povedzme aby kontrolovalo meno, priezvisko a mesto? proste 3 hodnoty ... potom je uz mala sanca ze sa najdu taki 2ja ludia ...


Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 26.11.06
Prihlásený: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
NapísalOffline : 05.12.2007 20:44 | overenie, ci udaje v tabulke uz existuju

ved si to prerob na 3krat a potom napr urob tak ze
Kód:
if($nums_meno!==0 and $nums_priezvisko!==0 and $nums_mesto!==0)
{echo 'uz existuje';}
else
{echo 'moze byt';}

a btw vl4kn0 chyba ti tam jedno rovna sa: if ($nums != 0) ma byt if ($nums !== 0) :D


Offline

Správca fóra
Správca fóra
overenie, ci udaje v tabulke uz existuju

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava

v tom selecte proste pridas dalsie podmienky, ktore potrebujes:

Kód:
$sql = "SELECT id FROM users WHERE nick='{$_POST['nick']}' AND priezvisko='{$_POST['priezvisko']}' AND mesto='{$_POST['mesto']}'";


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6 | 6
NapísalOffline : 05.12.2007 21:01 | overenie, ci udaje v tabulke uz existuju

Drako píše:
vl4kn0 chyba ti tam jedno rovna sa: if ($nums != 0) ma byt if ($nums !== 0) :D
a odkedy ? nejak mi to uslo. kedy to zas zmenili??cio?


_________________
getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1 | 1
Bydlisko: 127.0.0.1

drago ale vobec mi tam to rovnasa nechyba tak nefantaziruj:D
3 znaky su tam len na overenie ci sa rovna aj typ v tomto pripade kedze obydva typi su integer by to vyhodnocovalo spravne a bolo by to uplne zbytcone:D
a k tomu overovaniu viac inputov. mozes si to upravit ako len chces. to je natebe. ale overovanie mena by som zo zasady nedaval. kedze urcite existuju 2ja ludia co sa volaju rovnako. keby chces overovat napr nick a mail nepoviem. ale meno je zbytocne..


_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 26.11.06
Prihlásený: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
NapísalOffline : 05.12.2007 21:52 | overenie, ci udaje v tabulke uz existuju

no ja som pocul ze ak chces porovnavat tak musis dat 2x rovna sa a ak chce priradovat tak staci jedno alebo to tak nieje???


Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1 | 1
Bydlisko: 127.0.0.1

ono je to tak
jedno rovna sa = je priradenie hodnoty
2 rovnasa == porovnavanie
3rovnasa === porovnavanie hodnoty a typu
prve je myslim jasne druhe tiez
az na to ze nerovna sa nahradzas to prve rovna sa ! cize !=
a pri troch !== to byb bolo porovnanie typu. cize napr v tretom priklade

$i = 1;

if ($i == true) // vracia true
if ($i ==1 ) vracia true
if ($i === 1) vracia true lebo 1==1 a int == int
if ($i === true) vracia false lebo 1==1 ale int nerovna sa boolean
a to iste mas ale s negaciou != a !== len prve rovnasa nahradzas vykricnikom


_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 26.11.06
Prihlásený: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA

aha, to som mal vediet skor :D dikes


Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 06.12.2007 10:02 | overenie, ci udaje v tabulke uz existuju

dikes za vsetky odpovede ...
no idem to skusit ... budem vas informovat ;)


Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 07.12.2007 12:52 | overenie, ci udaje v tabulke uz existuju

skusil som to, ale vypisalo chybu , brrrr.

takze skusil som to takto (len meno testujem zatial):

Kód:
$pripojenie = mysql_connect("localhost", "***", "***");

mysql_select_db("dulius", $pripojenie);


//$sql = "SELECT id FROM tabulka1 WHERE meno='{$_POST['meno']}' AND priezvisko='{$_POST['priezvisko']}' AND obec='{$_POST['obec']}'";

$sql = 'SELECT id FROM tabulka1 WHERE meno='.$_POST['meno'];
$result = mysql_query($sql);
$nums = mysql_num_rows($result);

if ($nums != 0)
{echo 'take meno uz existuje';}
else
{

$poziadavka = "INSERT INTO tabulka1 (email, meno, priezvisko, obec, vek) ";

$poziadavka .= "VALUES (\"$email\", \"$meno\", \"$priezvisko\", \"$obec\", \"$vek\");";

mysql_query($poziadavka) or die ("Stala sa chyba v spojeni s DB !");

mysql_close($pripojenie);

echo "Ïakujeme. <br> Tvoje údaje boli odoslane ... <a href=\"vypis.php\">Preh¾ad podporovate¾ov</a>";

}


a vypisalo chybu:

Kód:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\VertrigoServ\www\index3.php on line 206


206 line je tento: $nums = mysql_num_rows($result);

asi s tymi premennymi niekde robim chybu...


Offline

Správca fóra
Správca fóra
overenie, ci udaje v tabulke uz existuju

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava

retazec v sql musi byt uzatvoreny do uvodzoviek alebo apostrofov

Kód:
$sql = "SELECT id FROM tabulka1 WHERE meno='".$_POST['meno']."'";


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 07.12.2007 13:17 | overenie, ci udaje v tabulke uz existuju

stenley píše:
retazec v sql musi byt uzatvoreny do uvodzoviek alebo apostrofov

Kód:
$sql = "SELECT id FROM tabulka1 WHERE meno='".$_POST['meno']."'";

v tom to asi nebude, vypisuje tu istu chybu ...


Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 07.12.2007 13:18 | overenie, ci udaje v tabulke uz existuju

select id ... to id tam ma byt? nema tam byt nieco ine?
co to znamena?

co som robil nejake pokusy, stale som daval select *, akoze vyber vsetkeho ...


Offline

Správca fóra
Správca fóra
overenie, ci udaje v tabulke uz existuju

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava

hmm a ta premenna $_POST['meno'] existuje? alebo si naozaj pripojeny k databaze? vyskusaj si ten prikaz napr v phpmyadmine, ci ti pojde...

id je nazov stlpca v tabulke, ak ho tam nemas, chyba bude v tom... znamena to, ze ti ziska z tabulky len tuto polozku, nic ine...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 07.12.2007 13:37 | overenie, ci udaje v tabulke uz existuju

jasne, sakra ... ja som to skopiroval s tym id, pisal som, ze moja tabulka je taka:
Kód:
CREATE TABLE IF NOT EXISTS `tabulka1` (
  `cislo` int(3) NOT NULL auto_increment,
  `email` varchar(50) collate cp1250_czech_cs NOT NULL,
  `meno` varchar(20) collate cp1250_czech_cs NOT NULL,
  `priezvisko` varchar(20) collate cp1250_czech_cs NOT NULL,
  `obec` varchar(50) collate cp1250_czech_cs NOT NULL,
  `vek` int(3) NOT NULL,
  PRIMARY KEY  (`cislo`)


takze po prepisani
$sql = "SELECT id FROM tabulka1 WHERE meno='".$_POST['meno']."'";

na: $sql = "SELECT meno FROM tabulka1 WHERE meno='".$_POST['meno']."'";

mi to uz funguje
vdaka


Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 07.12.2007 14:26 | overenie, ci udaje v tabulke uz existuju

no, a skusil som overit naraz 3 udaje ... meno, priezvisko a obec ...
ale nejde to ... zapise mi do tabulky aj ked su tieto 3 hodnoty rovnake ...

kod:

Kód:
$pripojenie = mysql_connect("localhost", "***", "***");

mysql_select_db("dulius", $pripojenie);


//$sql = "SELECT meno FROM tabulka1 WHERE  - toto slo v pohode, len s menom

$sql = "SELECT meno,priezvisko,obec FROM tabulka1 WHERE meno='{$_POST['meno']}' AND priezvisko='{$_POST['priezvisko']}' AND obec='{$_POST['obec']}'";


$result = mysql_query($sql);
$nums = mysql_num_rows($result);

if($nums_meno != 0 and $nums_priezvisko !=0 and $nums_obec !=0)   

//if ($nums != 0) - toto som mal predtym, ked len meno som kontroloval

{echo 'take meno, priezvisko, obec uz existuje';}

else
{

$poziadavka = "INSERT INTO tabulka1 (email, meno, priezvisko, obec, vek) ";

$poziadavka .= "VALUES (\"$email\", \"$meno\", \"$priezvisko\", \"$obec\", \"$vek\");";

mysql_query($poziadavka) or die ("Stala sa chyba v spojeni s DB !");

mysql_close($pripojenie);


}


kde robim chybu?


Offline

Správca fóra
Správca fóra
overenie, ci udaje v tabulke uz existuju

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava

chybu robis v tom, ze bezhlavo pouzivas kody, ktore ti sem niekto napise a nevies, co jednotlive prikazy znamenaju...

co podla teba znamna tento kus kodu?
Kód:
if($nums_meno != 0 and $nums_priezvisko !=0 and $nums_obec !=0)

je to uplne zle, v tvojom pripade nepouzitelne...

daj si tam namiesto toho toto:
Kód:
if($nums>0)

a malo by to ist


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 07.12.2007 14:50 | overenie, ci udaje v tabulke uz existuju

stenley píše:
chybu robis v tom, ze bezhlavo pouzivas kody, ktore ti sem niekto napise a nevies, co jednotlive prikazy znamenaju...

co podla teba znamna tento kus kodu?
Kód:
if($nums_meno != 0 and $nums_priezvisko !=0 and $nums_obec !=0)

je to uplne zle, v tvojom pripade nepouzitelne...

daj si tam namiesto toho toto:
Kód:
if($nums>0)

a malo by to ist

podla mna ten kus kodu
Kód:
if($nums_meno != 0 and $nums_priezvisko !=0 and $nums_obec !=0)

znamena, ze ak sucasne nie su nulove tieto 3 hodnoty, teda nums obsahuje nejake pole s 3 hodnotami a tie 3 hodnoty by mali byt nulove , vtedy to moze zapisat ... ale asi to zle chapem a potom rovnako aj ti ludia, co mi to sem napisali :(


Offline

Správca fóra
Správca fóra
overenie, ci udaje v tabulke uz existuju

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava

pre lepsie pochopenie, premenna $nums obsahuje len jednu hodnotu tykajucu sa poctu vysledkov (riadkov), ktore vratil select (v tvojom pripade), cize obsahuje nejake cislo, ale ak nastala chyba, tak vracia false

ty tie premenne ($nums_meno, $nums_priezvisko, $nums_obec) ani nemas definovane, cize sa automaticky vykona vetva else - pridanie noveho riadku do tabulky...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
overenie, ci udaje v tabulke uz existuju

Registrovaný: 20.01.07
Prihlásený: 12.02.24
Príspevky: 401
Témy: 87 | 87
Napísal autor témyOffline : 10.12.2007 12:40 | overenie, ci udaje v tabulke uz existuju

dikes za objasnenie


 [ Príspevkov: 22 ] 


overenie, ci udaje v tabulke uz existuju



Podobné témy

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

overenie hodnoty v tabulke

v PHP, ASP

1

616

25.02.2007 16:25

m@-nX

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

Overenie hodnoty v tabulke

v PHP, ASP

1

431

17.06.2009 22:26

mienkofax

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

Existujú nejaké dobré hry Animal Crossing-esq pre steam?

v Kôš

0

23

30.04.2022 13:13

echida

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

chyba v tabulke

v Databázy

13

871

01.09.2009 20:10

dessert

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

poradie v tabulke

v Assembler, C, C++, Pascal, Java

11

529

07.07.2010 21:55

hudi1

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

Border v tabulke

v HTML, XHTML, XML, CSS

11

595

11.09.2008 21:05

stenley

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

Text v tabulke

v HTML, XHTML, XML, CSS

2

480

28.01.2010 19:30

DARSON

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

Otvaranie v tabulke

v HTML, XHTML, XML, CSS

3

662

05.12.2009 22:13

Ďuri

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

ako pridať tabuľke collation

v Databázy

2

826

22.11.2010 17:43

camo

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

Zoradenie dat v tabulke

v Databázy

3

658

26.05.2009 6:46

arno

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

Po tabulke permanentne okno

v PHP, ASP

2

448

02.08.2011 11:51

Miko

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

Zmena poradia v tabulke

v Databázy

6

829

01.10.2009 9:38

jtomcik

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

Zoradenie cisel v tabulke

v PHP, ASP

4

711

05.08.2009 17:38

rooobertek

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

vymenit riadky v tabulke

v JavaScript, VBScript, Ajax

4

595

27.12.2010 11:15

DeeJay3

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

[VYRIESENE] UPDATE v tabulke

v PHP, ASP

3

403

02.03.2009 12:58

jtomcik

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

Background image na tabulke

v HTML, XHTML, XML, CSS

4

390

01.09.2013 22:13

89Aquarius



© 2005 - 2025 PCforum, edited by JanoF