Ú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
- Bomba ár! HP ProBook 450 G7 - i5-10GEN I 16GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Gar
- BESZÁMÍTÁS! MSI B550 R7 5700X 32GB DDR4 500GB SSD RTX 3070 8GB ZALMAN Z1 Plus Be quiet! 650W
- LG 32GQ850-B - 32" NANO IPS ATW / 2560x1440 / 260Hz 1ms / NVIDIA G-Sync / AMD FreeSync / HDR 600
- Apple iPhone 14 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Lenovo ThinkPad E550 - i5-5GEN I 8GB I 256SSD I DVDRW I 15,6" HD I CAM I W10 I Garancia
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest