Hirdetés
- Nagy aksival és erős hardverrel megjött Magyarországra a Poco X8 Pro és Pro Max
- Xiaomi 17 Ultra - jó az optikája
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- One mobilszolgáltatások
- Fotók, videók mobillal
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Külföldi prepaid SIM-ek itthon
- Motorola Edge 40 neo - színre és formára
- iPhone topik
- Milyen okostelefont vegyek?
Új hozzászólás Aktív témák
-
Soak
veterán
Akkor valami ilyesmivel kéne
SELECT cikkszam FROM mozgastetel WHERE cikkszám IN ( szerk: Persze hogy nem a létezőket írod ide, hanem azokat amiket épp be akarnak írni, bocs ) ,ha ez ad vissza valamit akkor tudod hogy már létezik és ki is tudod iratni a hibakezelőddel mivel visszadja a létezőket .
-
Soak
veterán
Ha jól értem amire gondolsz akkor http://php.net/manual/en/function.array-unique.php , ez kiszedi a dupla cikkszámot, de szó nélkül . Érdemes elolvasni a doksiját is, hogy mit tekint egyenlőnek.
Ezt miért csinálod :
$lek="SELECT * FROM eszkoztorzs";
$eredmeny = mysql_query($lek) or die ("HIBA!");?
-
CSorBA
őstag
Logikus, a die azért van benne, ha nem sikerül, akkor "haljon meg/lépjen ki" és ne csináljon semmit. Ha ezt kiszeded, akkor nem lép ki, de nem is tud mit csinálni, mert már előtte van valami hiba

mondtam már, hogy ne csak táblázatba rakd, hanem vmi inputba is:
írd át azt a sort erre:
<td><?php echo "<input type=\"hidden\" name=\"mozgastetel\" value=\"" . $sor['mozgastetel_id'] . "\"/><a href=\"inc/teteltorles.php?id=" . $sor['mozgastetel_id'] . "\">Törlés</a>";?></td>
De ebbe a ronda kódba már kezdek belezavarodni, szóval inkább erre:
<td><input type="hidden" name="mozgastetel" value="<?=$sor['mozgastetel_id']?>" /><a href="inc/teteltorles.php?id=<?=$sor['mozgastetel_id']?>">Törlés</a></td>
-
Lacces
őstag
Tipp, nálam bevált az elején:
Amikor bármilyen lekérdezéset csináltam, akkor először a phpmyadmin-ban csináltam meg, ott mindig rinyált a mysql ha valami nem volt jó... és ha jó volt a kód, akkor szimplán csak kimásoltam, aztán meg csak kiegészítettem a php kódokkal.
Aztán a végén már hozzászoksz és ebből nem lesz baj. Meg így fel lehet fogni, hogy mit miért ír ki...Másik, én nem tudom, hogy a többiek hogy vannak vele, de inkább használnék mysqli-t vagy pdo-t. Ha jól láttam anno, ezt a sima mysql-es dolgot a php.net sem ajánlja. Link itt.
-
Soak
veterán
Direkt írtam neked az előbb, hogy a prepared statementeket használj (mondjuk nem reagáltál rá semmit
) , mert így még mindig elfogod felejteni escapelni a dolgokat, plusz ha kezdő vagy akkor legalább a jó módszert tanulod meg és nem kell 2 hónap mulva átállni/átírni mindent . -
Sk8erPeter
nagyúr
Nem ártana, ha a webraktar egy string lenne.
Egyébként hogy elkerüld a parákat, még ezt is javítsd:
mysql_query("DELETE FROM mozgastetel WHERE mozgastetel_id=" . mysql_real_escape_string($_GET['id'])) or die(mysql_error());
erre
mysql_query("DELETE FROM mozgastetel WHERE mozgastetel_id='" . mysql_real_escape_string($_GET['id'])."'") or die(mysql_error());
Gyakorlati példa:
ha a $_GET['id'] egyenlő ezzel: asdasd
DELETE FROM mozgastetel WHERE mozgastetel_id=asdasd
helyett ez lesz:
DELETE FROM mozgastetel WHERE mozgastetel_id='asdasd'Így meg nem fog legalább szintaktikai para miatt sírni a MySQL.
Ahogy a többiek mondták, szokj rá még időben a PDO-ra. (Mármint minimumként, aztán jöhet egy ORM később.)
Szerk:
most látom, Lacces is így escape-elte.
A magyarázat meg itt van, hogy miért jó így. -
Lacces
őstag
mysql_query ("DELETE FROM mozgastetel WHERE mozgastetel_id=". mysql_real_escape_string($_GET['id'])) or die (mysql_error());
én ilyesmivel próbálkoznék: mysql_query("DELETE FROM `mozgastetel` WHERE `mozgastetel_id`='".$_GET['id']."' ");
Csak így szimplán. használva a ` és ' jeleket. Így talán nem zavarodik bele a mysql sem, lehet phpmyadmin-ban is tesztelni kellene a query-t amit írsz hogy ott működik-e...
Ennyit tudok segíteni. -
Lacces
őstag
Szia, Nem tudom, hogy mit használsz (de ha jól láttam mysqli) PDO vagy Mysqli, de írd be azt a keresőbe amit használsz, és egy 'example' szót melléje és nézd meg őket, hátha az úgy jobban segít.
De itt a csatlakozással van a gond. Tudsz az adatbázishoz kapcsolódni (terminál, vagy a Windows parancssoron) keresztül?
De gondolom igen. -
Speeedfire
félisten
Nem tudom milyen programot használsz kódolásra, de valami ide-t felrakhatnál pl netbens. Írja is a gondot.
2 hiba is van:
1. A sztingbe akarod fűzni a php value-t.
2. Nincs eszképelve a get id. Ez így egy elég nagy hiba sql részen.Így valamivel jobb:
<?php
include("inc/connect.php");
mysql_query ("DELETE FROM mozgastetel WHERE mozgastetel_id=". mysql_real_escape_string($_GET['id'])) or die (mysql_error());
?>pl a biztonság is elég érdekes itt, legalább nézd meg, hogy belépett felhasználó-e, meg egy jogkör sem lenne rossz.
-
Soak
veterán
Nem tudom, hogy milyen suliba diploma munka, de ha nem csak az számít, hogy meg legyen akkor esetleg az SQL Injection + Prepared Statement és/vagy Escape-t átnézhetnéd . A kódod abszolut nem biztonságos, itt még el megy, de ha később ezzel akarsz foglalkozni akkor ez életképtelen.
Szerk: Ha pedig kódot szursz be akkor használhatnád a Programkód formázási lehetőséget.
Más : Nem kéne írni egy peticíót, hogy Parciék rakjanak be egy alap syntax highlightert ? Sokat segítene a használhatóságon
. -
PazsitZ
addikt
Ne vedd támadásnak, de érdemes lenne átfutnod egy alap HTML tutorialt.
[link] a name attributumot be kell állítani az input tagnek, hogy megkapd mint post-olt adatot. Esetedben ha jól látom mozgastetel_id kell, hogy a name attributum legyen.
<input type="hidden" value="<?php=$sor['mozgastetel_id']?>" name="mozgastetel_id">De jelen esetben ha listát használsz az azonos input nevek nem fognak működni.
A listád esetében inkább egy törlés linket tudnék elképzelni, ami a legegyszerűbb megoldás lehet. Ekkor viszont GET-el kaphatod meg az id-t. -
Sk8erPeter
nagyúr
Csatlakoztál egyáltalán az adatbázishoz előtte?
Egyébként az egyértelműség érdekében javítsd mysql_fetch_assoc()-ra, ÉS stringszerűen használd, ne úgy, ahogy most csinálod:
echo $row[szallitonev];
HELYETT
echo $row['szallitonev']; -
Lacces
őstag
Valami ilyemsi lekérdezés kell neked:
SELECT sz.szallitonev, t.telephelynev, th.telephelynev, mt.cikkszam, j.jellegnev, m.datum
FROM mozgas_fej as m
LEFT JOIN szallito as sz ON sz.szallito_id=m.szallito_id
LEFT JOIN telephely as t ON t.telephely_id = m.honnan
LEFT JOIN telephely as th ON th.telephely_id = m.hova
LEFT JOIN mozgas_tetel as mt ON mt.bizonylatszam = m.bizonylatszam
LEFT JOIN jelleg as j ON j.jelleg_id = m.jelleg_idHa így nézz ki a táblád, frissítsd, én a honnan, hova mezőket átírnám: kezdohely, veghely vagy valami ehhez hasonló. Ha a lekérdezésben rövidítést szeretnék használni, akkor ott erősen bekavarhat. Plusz a külön tábláknál, mint a szallito, jelleg, stb. lehetne sima 'id' mezők is... Egy ennyire szétszedett adatbázis szerkezetnél felesleges
-
Soak
veterán
Ez inkább adatbázis kérdés, de van több megoldás is, az egyik az, ha listázod (gondolom foreachel probálkozol) akkor a $mozgas_fej->id; nem lesz kiírva vagy eleve úgy kéred le adatbázisból, hogy pl SELECT honnan,hova,szallito_id,jelleg_id,datum FROM mozgas_fej (ez MySQL kód).
Szerk: Most ujra elolvasva a kérdésedet rájöttem, hogy félreértettelek, akkor ezt egy JOIN-al kell megoldanod .
Új hozzászólás Aktív témák
Hirdetés
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Ha Darwinra hallgat az AI, nehéz lesz megállítani
- Fűnyíró topik
- Soundbar, soundplate, hangprojektor
- Nagy aksival és erős hardverrel megjött Magyarországra a Poco X8 Pro és Pro Max
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Gyúrósok ide!
- Autós topik
- További aktív témák...
- Ryzen 7 7800X3D +ASRock X870 PRO RS WIFI +32GB 6000MHz DDR5 kit! GAR/SZÁMLA (a Te nevedre kiállítva)
- 2K Gamer PC - Ryzen 7 5700 / RTX 5060 Ti / B550M / 32GB RAM 3600MHz / 1TB SSD / 650W
- HP EliteBook 850 G6 15,6" i7 -8665u, 16GB RAM, Radeon X550 2GB, 256GB SSD, jó akku, számla, 6 hó gar
- HP ProLiant DL360p Gen8 1U szerver (2x Xeon E5-2667 v2, 32GB RAM) + RACK SÍN!
- MSI RTX 3070 8GB GDDR6 VENTUS 3X OC Eladó!
- BESZÁMÍTÁS! Asus Z370A i7 9700 16GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Adata 600W
- 15,6" Dell Latitude laptopok: E5550, E5570, 5590, 5500, 5501, 5510, 5520 / SZÁMLA + GARANCIA
- Xbox Game Pass Ultimate kedvező áron, egyenesen a Microsoft-tól! - AUTOMATA BOLT
- HIBÁTLAN iPhone 13 128GB Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS4453, 100% Akksi
- Dell Wyse 5470,14",FHD, N4100 CPU,8GB DDR4,128GB SSD,WIN11,IR KAMERA
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


) , mert így még mindig elfogod felejteni escapelni a dolgokat, plusz ha kezdő vagy akkor legalább a jó módszert tanulod meg és nem kell 2 hónap mulva átállni/átírni mindent .


