| Autor | Správa |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: St 05.12.07 20:45 |   |
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  |
| |
  |
 |
vl4kn0
 Užívateľ
 Založený: 22.11.2007 Príspevky: 254 Bydlisko: 127.0.0.1
 | Zaslal: St 05.12.07 21:17 |   |
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... | |
     |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: St 05.12.07 21:40 |   |
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 ... |
| |
  |
 |
Flety
 Užívateľ
 Založený: 26.11.2006 Príspevky: 4109 Bydlisko: HE(Humenne) - KE Vek: 18
 | Zaslal: St 05.12.07 21:44 |   |
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)  |
_________________ Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms | |
       |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3776 Bydlisko: Bratislava Vek: 27
 | Zaslal: St 05.12.07 21:51 |   |
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']}'"; |
|
_________________ 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 | |
    |
 |
juho
 Zablokovaný užívateľ
 Založený: 16.05.2007 Príspevky: 837
 | Zaslal: St 05.12.07 22:01 |   |
| Drako napísal: | 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 | |
   |
 |
vl4kn0
 Užívateľ
 Založený: 22.11.2007 Príspevky: 254 Bydlisko: 127.0.0.1
 | Zaslal: St 05.12.07 22:12 |   |
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... | |
     |
 |
Flety
 Užívateľ
 Založený: 26.11.2006 Príspevky: 4109 Bydlisko: HE(Humenne) - KE Vek: 18
 | Zaslal: St 05.12.07 22:52 |   |
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??? |
_________________ Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms | |
       |
 |
vl4kn0
 Užívateľ
 Založený: 22.11.2007 Príspevky: 254 Bydlisko: 127.0.0.1
 | Zaslal: St 05.12.07 23:00 |   |
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... | |
     |
 |
Flety
 Užívateľ
 Založený: 26.11.2006 Príspevky: 4109 Bydlisko: HE(Humenne) - KE Vek: 18
 | Zaslal: Št 06.12.07 10:51 |   |
aha, to som mal vediet skor dikes |
_________________ Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms | |
       |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: Št 06.12.07 11:02 |   |
dikes za vsetky odpovede ...
no idem to skusit ... budem vas informovat  |
| |
  |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: Pi 07.12.07 13:52 |   |
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... |
| |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3776 Bydlisko: Bratislava Vek: 27
 | Zaslal: Pi 07.12.07 14:04 |   |
retazec v sql musi byt uzatvoreny do uvodzoviek alebo apostrofov
| kód: | | $sql = "SELECT id FROM tabulka1 WHERE meno='".$_POST['meno']."'"; |
|
_________________ 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 | |
    |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: Pi 07.12.07 14:17 |   |
| stenley napísal: | 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 ... |
| |
  |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: Pi 07.12.07 14:18 |   |
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 ... |
| |
  |
 |
|