Stránka: 1 z 1
| [ Príspevkov: 22 ] | |
Autor | Správa |
---|
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
|
|
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... |
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 |
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 ...
|
|
Registrovaný: 26.11.06 Prihlásený: 09.10.24 Príspevky: 4118 Témy: 319 | 319 Bydlisko: HE/BA |
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)
|
|
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 |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | 6 |
Drako píše: vl4kn0 chyba ti tam jedno rovna sa: if ($nums != 0) ma byt if ($nums !== 0) 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 |
|
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... |
|
Registrovaný: 26.11.06 Prihlásený: 09.10.24 Príspevky: 4118 Témy: 319 | 319 Bydlisko: HE/BA |
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???
|
|
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... |
|
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 dikes
|
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 |
dikes za vsetky odpovede ...
no idem to skusit ... budem vas informovat
|
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 |
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...
|
|
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 |
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 |
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 ...
|
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 |
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 ...
|
|
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 |
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 |
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
|
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 |
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?
|
|
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 |
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 |
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
|
|
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 |
|
Registrovaný: 20.01.07 Prihlásený: 12.02.24 Príspevky: 401 Témy: 87 | 87 | |
Stránka: 1 z 1
| [ Príspevkov: 22 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 1 | 616 | 25.02.2007 16:25 m@-nX | | v PHP, ASP | 1 | 431 | 17.06.2009 22:26 mienkofax | | v Kôš | 0 | 23 | 30.04.2022 13:13 echida | | v Databázy | 13 | 871 | 01.09.2009 20:10 dessert | | v Assembler, C, C++, Pascal, Java | 11 | 529 | 07.07.2010 21:55 hudi1 | | v HTML, XHTML, XML, CSS | 11 | 595 | 11.09.2008 21:05 stenley | | v HTML, XHTML, XML, CSS | 2 | 480 | 28.01.2010 19:30 DARSON | | v HTML, XHTML, XML, CSS | 3 | 662 | 05.12.2009 22:13 Ďuri | | v Databázy | 2 | 826 | 22.11.2010 17:43 camo | | v Databázy | 3 | 658 | 26.05.2009 6:46 arno | | v PHP, ASP | 2 | 448 | 02.08.2011 11:51 Miko | | v Databázy | 6 | 829 | 01.10.2009 9:38 jtomcik | | v PHP, ASP | 4 | 711 | 05.08.2009 17:38 rooobertek | | v JavaScript, VBScript, Ajax | 4 | 595 | 27.12.2010 11:15 DeeJay3 | | v PHP, ASP | 3 | 403 | 02.03.2009 12:58 jtomcik | | v HTML, XHTML, XML, CSS | 4 | 390 | 01.09.2013 22:13 89Aquarius |
|