Kezdőoldal » Számítástechnika » Programozás » Miért kerül be ugyanaz az...

Miért kerül be ugyanaz az adat többször az adatbázisba?

Figyelt kérdés
Egy php form,textmező,elküldöm,bekerül az adatbázisba,de ahányszor ráfrissítek az oldalra annyiszor rakja be plusszba az adatbázisba,holott nincs is már kitöltva a textmező.Elirányíthatnám header-rel de ha visszalép és frissít ismét bekerül az adat az adatbázisba.Mit lehet tenni ez ellen?

2018. ápr. 12. 03:05
1 2 3 4
 1/34 anonim ***** válasza:
83%
Mert nem ellenőrzi a kód, hogy újratöltve lett-e az oldal vagy elküldve a form.
2018. ápr. 12. 07:08
Hasznos számodra ez a válasz?
 2/34 anonim ***** válasza:
0%

Egyrészt nem állítottál be elsődleges kulcsot. Ha beállítottál volna, akkor nem kerülne be ugyanaz az adat.


Másrészt mégis honnan a pitsából tudhatnánk a kód ismerete nélkül?

2018. ápr. 12. 07:18
Hasznos számodra ez a válasz?
 3/34 anonim ***** válasza:
75%

#2:

1. Semmi köze az elsődleges kulcshoz, sőt, ugyanígy működne azzal is.

2. Érdekes módon nekem azonnal leesett mi a gond. Lehet azért, mert veled ellentétben, én már láttam bármiféle kódot?

3. Eleve minek böffentesz bele olyanba, amiről halvány lila gőzöd sincs?

2018. ápr. 12. 07:32
Hasznos számodra ez a válasz?
 4/34 anonim ***** válasza:
0%
#3 ha van elsődleges kulcs, akkor nem kerülhet be ugyanaz a sor 2-szer, mivel az elsődleges kulcs mindig különböző. Ez persze nyilvánvaló, ezzel csak arra kívántam reflektálni, hogy milyen szinten megválaszhatatlan ez a kérdés.
2018. ápr. 12. 07:40
Hasznos számodra ez a válasz?
 5/34 anonim ***** válasza:
70%

És azt komolyan gondoltad, hogy az elsődleges kulcsot a user viszi be a formon?

Na ne röhögtess már.

2018. ápr. 12. 07:41
Hasznos számodra ez a válasz?
 6/34 anonim ***** válasza:
44%

#4, szerintem is gondold át még egyszer.


Kérdező, valamilyen ellenőrzést be kell vezetni. A legegyszerűbb definiálni egy hidden változót a formban. Mondjuk a name="ujadat", amit be akarsz vinni. Ha ennek nem volt semmi kezdőértéke, csak egy üres mező, akkor mellé tehetsz egy hidden változót mondjuk repeat névvel, és ennek az értéke (value) lehet a következő:

isset($ujadat) ? true : false

Ez másodszorra már igaz lesz, és akkor nem tárolod az adatbázisba az ujadatot.

Persze ehhez az ujadat értékét is vissza kell adni value-ként saját magának.

Valami ilyesmi, többet a konkrét kód alapján lehet mondani.

2018. ápr. 12. 08:13
Hasznos számodra ez a válasz?
 7/34 anonim ***** válasza:

Javítom az előzőt:

isset($ujadat) ? 1: 0

Egyrészt az isset logikai értéket ad, tehát a ?true:false felesleges lenne, másrészt a logikai értéket nem kezelik üzembiztosan az űrlapok, jobb a numerikus.

(előző)

2018. ápr. 12. 09:04
Hasznos számodra ez a válasz?
 8/34 anonim ***** válasza:
47%
Na, egyre jobb megoldások. :D
2018. ápr. 12. 09:08
Hasznos számodra ez a válasz?
 9/34 A kérdező kommentje:

Valóban nincs ID az adatbázisomban.Ez a kódom:



require'kapcsolodas.php';

mysqli_query($conn, "SET NAMES 'utf8'");



$szoveg = filter_input(INPUT_POST, 'szoveg');

$ar = filter_input(INPUT_POST, 'ar');



$beillesztes = mysqli_query($conn,"INSERT INTO termekek(ar,leiras) VALUES ('$ar','$szoveg')") or die(mysqli_error($conn));

2018. ápr. 12. 11:14
 10/34 anonim ***** válasza:
És ez mikor fut le? Mert szerintem ott lesz a kutya elásva.
2018. ápr. 12. 12:36
Hasznos számodra ez a válasz?
1 2 3 4

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!