Szerző Téma: SQL, MySQL  (Megtekintve 217717 alkalommal)

0 Felhasználó és 1 vendég van a témában

Nem elérhető rajmund

  • Törzstag
  • **
  • Hozzászólások: 460
Re: SQL, MySQL
« Válasz #3091 Dátum: 2011. május 12., 14:53:09 »
Nono. Ez azt csinálja amit leírsz angolul. A pontja 2 lesz, az energiája -2. Minden prognyelvhez hasonlóan itt is így kell hozzáadni:

Kód: SQL
  1. UPDATE `tag` SET `pont`= `pont` + 2, `energia`= `energia` - 2 WHERE `nev`=xy;
  2.  

Igen, a név mező értékét fogja kikeresni, de javasolt az azonosító kulcs(pl id) nevű mezőt keresni, és ezt elmenteni cookieba jelentkezéskor, mert az 100%-osan egyedi, nem tartalmazhat ékezeteket, sql injectiont, stbstb; egyszóval jobb.

Nem elérhető gamerpen

  • Felhasználó
  • Hozzászólások: 76
Re: SQL, MySQL
« Válasz #3090 Dátum: 2011. május 12., 14:19:09 »
Egy kérdés:
Ha van egy pont nevű mezőm, és abba felhasználó szerint szeretném módosítani az adott felhasználó pontjait, akkor milyen legyen az update???(természetesen egy php fájlból akarom updatelni)
pl. ez jó?
Kód: SQL
  1. UPDATE `tag` SET `pont`='2', `energia`='-2' WHERE `nev`=xy;
(a tag az egy táblázat akar lenni)
Szóval ha hozzáad a felhasználóhoz két pontot, akkor levon 2 energiapontot.
A 'nev' mezőből választja ki a felhasználót nem?
« Utoljára szerkesztve: 2011. május 12., 14:30:21 írta gamerpen »

Nem elérhető klank

  • Tag
  • *
  • Hozzászólások: 234
Re: SQL, MySQL
« Válasz #3089 Dátum: 2011. május 11., 22:20:34 »
Tisztázzunk néhány fogalmat! Az INSERT INTO segítségével a táblába egy új rekordot (sort) vehetsz fel. Az UPDATE-tel pedig egy meglévő rekord mezőit tudod módosítani. Tehát ha már beszúrtad az új rekordot a táblázatba az INSERT INTO-val, s módosítani akarsz rajta, akkor az UPDATE lesz a megoldás a problémádra, amelynek a használata így néz ki:

Kód: SQL
  1. UPDATE `tabla_neve` SET `mezo_neve`='érték', `masik_mezo_neve`='másik érték' WHERE `id`=12;

Értelmesebb példa:

Kód: SQL
  1. UPDATE `users` SET `name`='Kanifaszi Guszti', `age`=35 WHERE `user_id`=20;


pixi megelőzött, de ha már megírtam elküldöm!  :)
„Aki nem próbálja meg a lehetetlent, az a lehetségest sem fogja elérni soha.”  (Goethe)
„Sokat kell olvasnod ahhoz, hogy megtudd, milyen keveset tudsz.” (Lia-Csin)
„Bármit tanulsz, magadnak tanulod.” (Petronius)

Nem elérhető pixi

  • Törzstag
  • **
  • Hozzászólások: 611
    • http://pixy.hu/Ujoldal
Re: SQL, MySQL
« Válasz #3088 Dátum: 2011. május 11., 22:13:09 »
Ha új tételt (sort) akarsz felvinni, akkor:  Insert

Ha már meglevő tételen (soron) akarsz módosítani, akkor: Update
Ha már van egy tételed, ahol: user_name = 'HANK', akkor például:

Kód: SQL
  1. UPDATE tablaneve SET nev='$nev', jelszo='$pass'...stb... WHERE user_name='HANK';       

Ha a cella üres , akkor az üresbe írja amit kell.


Nem elérhető SmiThY

  • Felhasználó
  • Hozzászólások: 95
Re: SQL, MySQL
« Válasz #3087 Dátum: 2011. május 11., 21:49:27 »
Sziasztok!

SQL problémám van a létrejött soromba akarok felvinni új értékeket INSERT INTO tábla() VALUES() -val csak nem sikerül mert nem tudom hogyan tudom megmondani neki hogy ahol user_name mező HANK van abban a sorba található cellákba tegye az értékeket. Nagyon értelmesen leirni se tudom a problémámat mert nem nagyon értem hogyan kell az ilyet csinálni. UPDATE nem jó mert a cellák üresek ezért nem tud mit változtatni meglátásom szerint.

Köszönöm a segitséget :)

Nem elérhető ThompsoN

  • Törzstag
  • **
  • Hozzászólások: 555
  • ThompsoN
Re: SQL, MySQL
« Válasz #3086 Dátum: 2011. május 07., 14:43:26 »
Azt nem fogadhatja el, hogy a mezőneveket sima aposztrófba teszed. Vagy semmibe nem kell őket tenni, vagy ebbe a visszafelé aposztrófba teszed. Utóbbi a javasolt.
ThompsoN

Nem elérhető Складной нож

  • Törzstag
  • **
  • Hozzászólások: 366
  • e-lol
    • Randiguru
Re: SQL, MySQL
« Válasz #3085 Dátum: 2011. május 07., 14:42:26 »
De miért? Van amikor elfogadja, van amikor nem? :o ... :S

Nem elérhető ThompsoN

  • Törzstag
  • **
  • Hozzászólások: 555
  • ThompsoN
Re: SQL, MySQL
« Válasz #3084 Dátum: 2011. május 07., 14:38:16 »
Az a baj, hogy a mezők nevét és táblák nevét ha aposztrófa teszed, akkor visszafelé nézőt kell használni. Vagyis ezt: `
(Alt Gr + 7)

Tehát javítva:
Kód: SQL
  1. INSERT INTO goods_lens (`index`, `reteg`, `szinezes`, `egyeb`, `tipus`, `atm`, `sph`, `cyl`, `axis`, `add`, `prism`, `alap`, `szallitasi_hatarido`, `gyar`, `db`, `min_db`, `kateg`, `cikkszam`, `beszerz_ar`, `netto_ar`, `brutto_ar` ) VALUES(...)
ThompsoN

Nem elérhető Складной нож

  • Törzstag
  • **
  • Hozzászólások: 366
  • e-lol
    • Randiguru
Re: SQL, MySQL
« Válasz #3083 Dátum: 2011. május 07., 14:27:56 »
Már egy órája bámulom ezt a vackot és nem jövök rá mi a baj... :S

mysql_query("INSERT INTO goods_lens ( 'index', 'reteg', 'szinezes', 'egyeb', 'tipus', 'atm', 'sph', 'cyl', 'axis', 'add', 'prism', 'alap', 'szallitasi_hatarido', 'gyar', 'db', 'min_db', 'kateg', 'cikkszam', 'beszerz_ar', 'netto_ar', 'brutto_ar' ) VALUES ('".$_REQUEST['index']."','".$_REQUEST['réteg']."','".$_REQUEST['színezés']."',' ','".$_REQUEST['típus']."','".$_REQUEST['átmérő']."','".$_REQUEST['sph']."','".$_REQUEST['cíl']."','".$_REQUEST['axis']."','".$_REQUEST['add']."','".$_REQUEST['prism']."','".$_REQUEST['alap']."','".$_REQUEST['szallitasi_id']."','".$_REQUEST['factory']."','".$_REQUEST['db']."','".$_REQUEST['min_db']."','".$_REQUEST['kateg']."','".$_REQUEST['ecikkszam']."','".$_REQUEST['beszerz_ar']."','".$_REQUEST['netto_ar']."','".$_REQUEST['brutto_ar']."');") and print("<b>A lencse felvitele sikeres!</b><br><br>") or print(mysql_error());
Nem hiszem, hogy a változók miatt vacakolna, akkor legfeljebb üresen nyomná be őket... de már átírtam azokat is egyszer és úgy sem jó... :S Ezt írja:
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 ''index', 'reteg', 'szinezes', 'egyeb', 'tipus', 'atm', 'sph', 'cyl', 'axis', 'ad' at line 1

Nem elérhető Isti861

  • Törzstag
  • **
  • Hozzászólások: 494
    • BikaTorrent Tracker
Re: SQL, MySQL
« Válasz #3082 Dátum: 2011. május 03., 22:11:53 »
Ennyire ne offoljatok azért :)

Nem elérhető ThompsoN

  • Törzstag
  • **
  • Hozzászólások: 555
  • ThompsoN
Re: SQL, MySQL
« Válasz #3081 Dátum: 2011. május 03., 21:19:26 »
Szintaktikai hibás volt a hőerőmű vezérléséért felelős program, és ezért felrobbant. Gondolom ez történhetett.
ThompsoN

Nem elérhető NoNametheone

  • Tag
  • *
  • Hozzászólások: 267
Re: SQL, MySQL
« Válasz #3080 Dátum: 2011. május 03., 21:15:23 »
//off anno egy syntax error miatt robbant fel egy hőerőmű.

ezt kifejtenéd bővebben? :D
Mindenkinek van valami jó aláírása, nekem miért nincs?

Nem elérhető rajmund

  • Törzstag
  • **
  • Hozzászólások: 460
Re: SQL, MySQL
« Válasz #3079 Dátum: 2011. május 01., 14:00:18 »
//off anno egy syntax error miatt robbant fel egy hőerőmű.

Nem elérhető Ragapapa

  • Felhasználó
  • Hozzászólások: 30
Re: SQL, MySQL
« Válasz #3078 Dátum: 2011. május 01., 13:05:33 »
köszke segítséget hihetetlen hogy egy aposztróf mennyi mindent tud okozni :)

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: SQL, MySQL
« Válasz #3077 Dátum: 2011. május 01., 13:01:00 »
Idézet
print "<form enctype='multipart/form-data' method='post' action='$_SERVER[PHP_SELF]?news_id='$_GET[news_id]'>";

Na az a kékkel jelölt aposztróf nem kell oda. Ezért nem küldi tovább az id-t, mert lezárod az actiont.

A POST-okat és GET -eket meg úgy általában semmit ne engedj közvetlenül az sql kódba. Használd a mysql_real_escape_string-et legalább.
És hogy ne legyen duplán escapelve semmi: http://phpstudio.hu/forum/index.php/topic,197.msg78157.html#msg78157
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.