- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- VR topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- ZIDOO médialejátszók
- Gaming notebook topik
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Melyik tápegységet vegyem?
- Micro Four Thirds
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
Aktív témák
-
alitak
senior tag
válasz
Benmartin #1257 üzenetére
Ez kéne nekem:
Van egy dátum (date). Ezt visszakapva kéne a dátum + 1 év, valamint, hogy addig hány nap van még hátra. Próbáltam úgyis, hogy nem szám karakter nélkül kapjam vissza a dátumot adatbázisból (date_format(nKiadva,'%Y%m%d')), meg úgy is, hogy kivágom a nem kívánatos karaktereket. Utána már ez nem ment: $lejar += 10000
Az előbb off-ban küldött részletnek ez volt a dolga:
a mai dátumból kivonta az adatbázisból kapott érték csíkmentes értékét. Akkor működött. Most nem. Ezt nem értem. -
-
alitak
senior tag
válasz
Benmartin #1251 üzenetére
Próbáltam úgy is, hogy simán lekérem a dátumot mysql-ből, majd a kötőjeleket kivágva dolgozom vele.
Ez a művelet simán működik:
date(''Ymd''))-(substr($sor[''tUtolsod''],0,4) . substr($sor[''tUtolsod''],5,2) . substr($sor[''tUtolsod''],8,2)
ahol a tUtolsod formátuma date.
Most arra lenne szükségem, hogy a visszakapott dátumhoz hozzáadjon egy évet, valamint hogy a kapott dátumig mennyi nap van még hátra. Minden ki van már találva, csak nem tudok dolgozni az értékkel.
Úgy tudtam, hogy a php átalakítja a formátumokat az optimálisra, vagyis arra, ami kell.
mod: smile...
[Szerkesztve] -
alitak
senior tag
Mysql-ből egy date típusú mezőből kérek be adatot ezzel: date_format(nKiadva,'%Y%m%d')
Kapok egy stringet, amiben csak szám van. Ezzel mért nem tudok dolgozni? (mat. műveleteket végezni) -
alitak
senior tag
datetime típusú mezőből vissza lehet valahogy kapni az értéket nem dátum formában? (tehát nem xxxx-xx-xx xx:xx:xx alakban, hanem ömlesztve, egy 14-jegyű számként)
Vagy marad a trimmelgetés... -
alitak
senior tag
válasz
mandrake83 #1172 üzenetére
Örülök, hogy megoldódott a probléma, de a smile nem sormintának van.
-
alitak
senior tag
válasz
mandrake83 #1168 üzenetére
connect, és select_db után:
$par = ''set names 'latin2''';
mysql_query($par);
$par = ''set character set 'latin2''';
mysql_query($par); -
alitak
senior tag
-
alitak
senior tag
Egy táblából egy sort át lehet másolni egy ugyanolyan szerkezetű táblába egyszerűbben, minthogy beolvasom, utána beíratom a másikba?
-
alitak
senior tag
válasz
Forest_roby #1009 üzenetére
PHPMyAdmin?
Vagy a parancs kéne? -
alitak
senior tag
Egy tábla egyik cellájának értékét szeretném növelni 1-gyel. Így néz ki:
$par = ''select szav from sz$id where id=$szavid'';
$adatb = mysql_query($par);
$sor = mysql_fetch_row($adatb);
$ertek = $sor[0] + 1;
$par = ''update sz$id set szav=$ertek where id=$szavid'';
mysql_query($par);
Ennél rövidebb módszer nincs? Minden ilyen esetben ezt végig kell járni? -
alitak
senior tag
Milyen paranccsal lehet megállapítani, hogy egy táblában hány darab sor van? Id azért nem jó, mert ha sort törlök, már nem lesz pontos.
-
alitak
senior tag
Milyen paranccsal lehet azt megmondani, hogy pl a táblából olvasson be 10 sort, az id=5 -től kezdve?
a limit 10 az megvan, a másik felét a kérdésnek nem tudom -
alitak
senior tag
válasz
Forest_roby #907 üzenetére
Hát a beolvasás, az ugye a ''select * from hirek order by id desc'', ami azt jelenti, hogy kiválasztja az összes mező értékés a hirek táblából, és sorba rakja az id szerint visszafelé. Ezáltal a kiírás könnyebb. A * helyére írhatsz mást is, pl így: select user,id,comment from... , ami csak az adott három oszlopot olvassa be. Ezt én így szoktam írni:
$par = ''select * from hirek order by id desc'';
$adatb = mysql_query($par);
Ezután jön a while ciklus:
while ($sor = mysql_fetch_array($adatb))
{
}
A while az elöltesztelős ciklus. Amíg a zaŕójelben levő bármi igazat ad, lefut a { } közötti rész. Tehát ez történik: beolvassa az egész adatbázist, majd a $sor tömbbe kerül az egész tábla utolsó sora (mivelhogy order by id desc). Ezután így hivatkozhatsz rá: $sor[''user''], $sor[''id'']...
Miután végzett a { } közti résszel, ismét jön a $sor = mysql_fetch_array($adatb). Ha van még sor, amit nem olvasott be a táblából, akkor igazat ad vissza, tehát a ciklusmag lefut, ha az utolsó sor után jön megint az előbb említett parancs, akkor már hamisat ad--> nem fut le a ciklusmag.
A { }-ek közé meg én táblázatokba íratom ki a hsz-eket, ugyanis css-hez nem értek, máshogy meg nem tom hogyan lehet még az egész fórumnak pofát adni. :)
Remélem érthető voltam.
mod: smile off
[Szerkesztve] -
alitak
senior tag
Hát a sztorihoz tartozik, hogy a tanár kémiát tanított, baromira unalmasan. Viszont volt egy-két jó beköpése. Hát ez az egyik.
A másik nagy kedvenc az az, hogy régi, talán '84-es tankönyvünk volt, és a tananyagot mindig diktálta, persze a könyvből. Aztán mikor már nem figyeltünk rá, akkor mindig azt mondta, hogy ő föladhatja jegyzetre, a könyvben ott található gyönyörűen elrejtve a lényeg. -
alitak
senior tag
válasz
Forest_roby #899 üzenetére
Hát nem tudom, nem látok hibát. Idézőjelek nem tudom, hogy jól vannak-e, azt nézd át. Meg szerintem a dátumot is el kellene menteni, valamint a $text változón a parancsbeállítás előtt hajtsd végre az nl2br() függvényt. Próbáld beírni ezt:
$text = nl2br($text);
$datum = date(''YmdHis'');
$query = ''insert into comments (user,date,comment) values ('admin','$datum','$text')'';
if (mysql_query($query)) echo ''OK'';
else echo mysql_error;
[Szerkesztve] -
alitak
senior tag
válasz
Forest_roby #894 üzenetére
Amikor csinálja a táblát, szerinterm feleslegesen bonyolítod túl.
$query = ''CREATE TABLE users (
user_id int(10) unsigned NOT NULL auto_increment,
loginName VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL,
email VARCHAR(20) NOT NULL,
authorization int NOT NULL default '1',
PRIMARY KEY (`user_id`) )'';
A hibajelentésben meg minden le van írva:
Unknown MySQL server host 'forest_roby.extra.sql'
Nincs olyan host. hogy 'forest_roby.extra.sql' -
alitak
senior tag
válasz
Forest_roby #874 üzenetére
A parancs jó, de szerintem char helyett varchar -t használj.
A komment táblában nem tudom mit akarsz eltárolni. Ebben el tárolhatod a post küldőjét, idejét, valamit a szöveget.
create table comment (
komment_id bigint(10) not null auto_increment,
user varchar(30) not null,
datum datetime not null,
komment text not null,
primary key (`komment_id`),
key `datum` (`datum`)
);
A foreign key-re meg itt van leírás: [link] -
alitak
senior tag
válasz
Forest_roby #868 üzenetére
Felhasználókhoz szerintem kell: usernév, pass, mail, jogok. Esetleg ha számít hsz szám, vagy rang.
Hírekhez szerintem elég: user, dátum, komment (de ezt írtam asszem)
Kiíratásnál lehet megcsinálni, hogy a user nevére van egy mailto függvény.
Nekem a jogok számmal vannak jelölve. Alap az 1, átlaguser. Hozzászólhat, nyithat új témát. A 2 a moderátor, zárhat topicot, törölheti azt, hsz-ekkel ugyanezt. Van a 3, ami az admin (én), összes többi, tehát pl. userek listázása. Úgy van benne a php-ban, hogy if (session_is_registered(''jog'') && $_SESSION[''jog''
>1) ...
Ja, és a 0 a ban. Loginnál beolvasom a jogot, és session-nal küldöm állandóan.
A nemkívánatos részek szűrését írtam előbb. A feldolgoz.php megkapja a user nevét (session), a kommentet (post), és a dátumot meg date() függvénnyel. Aztán ezt az egészet berakod egy mysql táblába
insert into `táblanév` (mező1,mező2,mező3,...) values ('érték1','érték2','érték2',...)
Az id-t tábla létrehozásakor tedd auto_increment -re, azzal nem lesz akkor több gond.
Beolvasás meg select * from hirek order by id desc
Így idő szerint lesz sorba, a legutolsó hír legfelül.
Aztán jön egy while ciklus, mysql_fetch_array() függvényében. Én a hsz-eket táblázatba raktam. Ha be van jelentkezve (if session_is_registered.....), akkor lesz ott egy link az adott hsz-nél, ami pl ilyen: modosit.php?id=5 jelezvén azt, hogy az 5. hsz-ben akarsz változtatni.
Remélem érthető vagyok
mod: mindig olyanokon bukik az egész, amire nem is gondolnál. Kis köcsög hiba, hogy pl. valahol elakad a változó értéke, aztán fél órát keresed a hibát, már minden szart kiíratsz, végül rájösz, hogy nem jó helyen kerested, és 10 mp alatt tudod javítani az egészet. Ez a tapasztalat
Kéz- és lábtörést!
[Szerkesztve] -
alitak
senior tag
válasz
Forest_roby #863 üzenetére
Re!
Először is kell egy html oldal, amiben ugye <form> van. Nem tudom, hogy az oldal beléptetős-e, tehát van-e session. Ha igen, akkor ez az oldal php lesz, és az elején le kell ellenőrizni, hogy jogosult-e írni vagy nem. Ha nem, akkor visszadobod header-rel a főoldalra.
Én most írok fórumot. Minden topic 1 tábla, és egy hsz, az egy sor. Ott eltárolom a hozzászóló nevét (user), a hsz idejét, és a kommentet. A dátum az datetime, a komment az text.
A textareába írt html kódok közül nem tudom, mi az amit nem akarsz hogy működjön. Nekem az így van:
$komment = str_replace(''<'',''<'',$komment);
$komment = str_replace(''|'',''|'',$komment);
$komment = str_replace(''>'',''>'',$komment);
$komment = str_replace(''''',''''',$komment);
$komment = str_replace('''',''"'',$komment);
$komment = str_replace(''&'',''&'',$komment);
htmlspecialchars($komment);
$komment = nl2br($komment);
Ezáltal a sortörés megoldva, idézőjelekkel nem tud kombinálni.
Kiíratni meg asszem menni fog.
Módosítani lehet úgy, hogy ha az illető adminnak van belépve (session ellenőrzés), akkor kiíratsz egy linket az adott hsz-nél, pl modosit.php -ra, ahol ott van még a hsz id-je. Tehát kb. így: modosit.php?id=$id
Ott megint lesz egy form, ami ilyen kb.:
<textarea>$komment</textarea>
Persze a kommentet először ki kell olvasni táblából. Utána jön egy update mysql parancs, és header vissza a főoldalra.
Remélem érthető voltam.
Tök jó, pont ma írtam a fórumomra a hsz módosítását, meg a moderátor jogok kiosztását :) -
alitak
senior tag
OK, köszi mindkettőtöknek a segítséget. Úgy néz ki, hogy müködik a bejelentkezés, kijelentkezés. Mostmár csak foltozni kell majd folyamatosan
-
alitak
senior tag
Akkor session id az mire van? Továbbá minek akkor a session-okhoz mysql tábla? PHP black book-ban volt ilyesmi írva, viszont akkor már tényleg nem értem
-
alitak
senior tag
Az a nehéz, hogy még kezdő vagyok, és talán kicsit nagy fába vágtam a fejszém így az elején.
pl. eszembe sem jutott, hogy mysql parancsban használjam az and utasítást is. Az ilyen jellegű problémákat oldja majd meg a gyakorlat remélem
Belépés után csak sessionid-t, a user nevét és a jogokat tárolom el egy mysql táblában, és csak az id-t küldöm session-nal. -
alitak
senior tag
mysql_fetch_array eddig is terítéken volt már nálam, tudom, hogy asszociatív tömböt ad vissza. Viszont így utólag nézve a $sor === '''' -nek tényleg nincs túl sok értelme
Az lenne a cél, hogy miután vki megad egy olyan user nevet, ami nincs regisztrálva még, akkor header-rel visszadobja őt a login ablakba. Viszont az előbb írt kóddal ez nem megy. A 'felh' nevű táblában csak alitak nevű user van, és ha azt írom usernak, hogy 'a', akkor is tovább enged.
Viszont ha van ilyen sor:
if (!$sor = mysql_fetch_array($adatb)) ...;
akkor a ... helyén levő parancsok lefutnak, ha nem létező user nevet adott meg vki, nem?
A fórum, amin dolgozok nagyon kezdőcipőben van még, és mostanság túl sok időm nincs is, idén érettségiznem kéne. Lesz kódolás is, meg minden finomság, de PHP-ban is még aránylag új vagyok. -
alitak
senior tag
Re!
Van egy php kódom, ami nem megy:
$user = $_POST[''user'';
$pass = $_POST[''pass'';
$par = ''select * from felh where user='$user''';
$adatb = mysql_query($par);
$sor = mysql_fetch_array($adatb);
if ($sor==='''') echo ''V'';
Alapvetően az lenne a feladat, hogy ha vki beírja a usernevét+jelszót, akkor mysql-ből az $adatb nevű változóba kerül az a sor, ahol a user mező értéke a beírt usernév. Hogyan lehet azt megoldani, hogy ha nincs a táblában a megadott user, akkor pl. átdobja az oldalt egy másikra (gondolok itt a header megoldásra)? -
alitak
senior tag
Az, hogy az előző egyszerű php-mysql oldal nem fut le hiba nélkül, az nem túl jó.
Ennek az oldalnak az eleje jól néz ki. Viszont szerintem ez a die() nem nyerő. Próbáld meg if-fel csinálni, ahogy én is csináltam.
<?php
if ($kapcs = mysql_connect(''localhost'',''root'','''')) echo ''Kapcsolat OK<br>'';
else echo mysql_error() . ''<br>;
if (mysql_select_db(''filmek'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error() . ''<br>'';
?>
<font size=''5''>filmek</font><br>
<table border=1 cellpadding=''3'' cellspacing=''3''>
<tr>
<td>cim</td>
<td>nyelv</td>
<td>felirat</td>
<td>hossz</td>
</tr>
<?php
$par = ''select * from dvd_filmek'';
if ($adatb = mysql_query($par)) echo ''Adatbázis beolvasás OK<br>'';
else echo mysql_error();
while ($sor = mysql_fetch_array($adatb))
{
?>
<tr>
<td><?= $sor[''cim'']?></td>
<td><?= $sor[''nyelv'']?> </td>
<td><?= $sor[''felirat'']?></td>
<td><?= $sor[''hossz'']?></td>
</tr>
<?php } ?>
</table>
<?php
mysql_close($kapcs);
?>
Figyelj rá, hogy a ph motor a kettős idézőjelből két darab szimpla idézőjelet rak! '' => ' '
[Szerkesztve]
[Szerkesztve] -
alitak
senior tag
Hát én ezt futattam le:
<html>
<head>
<title>Teszt</title>
</head>
<body>
<?php
if ($kapcs = mysql_connect(''localhost'',''proba'',''proba'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''forum'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
És ezt adta:
Connect OK
Select OK
Persze a localhost-on van a mysql telepítve, proba a usernév és proba a pass, valamint van egy forum adatbázisom. Ha ez már sehogy sem fut le, akkor szerintem nem jól van/nincs mysql telepítve. -
alitak
senior tag
válasz
Jester01 #708 üzenetére
Jujj, erre nem is gondoltam.
Az előző példa helyesen:
<html>
<head>
<title>Teszt</title>
</head>
<body>
<?php
if ($kapcs = mysql_connect(''localhost'',''user'',''pass'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''atadb'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
mod: tkazmer: Azt csak simán írd át <title>Teszt</title> -ra
[Szerkesztve] -
alitak
senior tag
Ez lefut?
<html>
<head>
<title><?= ''Teszt''?></title>
</head>
<body>
<?
if ($kapcs = mysql_connect(''localhost'',''user'',''pass'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''atadb'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
mod: Figyelj oda az idézőjelekre: a PH! motor átírja ezt: '' erre: ' '
[Szerkesztve] -
alitak
senior tag
Próbáld meg így átírni minden parancsot:
<html>
<head>
</head>
<body>
<?
if ($kapcs = mysql_connect(''localhost'',''user'',''pass'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''atadb'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
.
.
.
if (mysql_query($sql)) $eredmeny = mysql_query($sql);
else echo mysql_error();
if ($kiir = mysql_num_rows($eredmeny)) echo $kiir;
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
[Szerkesztve] -
alitak
senior tag
Szerintem arra gondol, hogy egy mezőből ki kell íratni az azonos értékűeket.
Én így csinálnám:
Beolvasom az első értéket (select), majd megnézem az egész adatbázist, hogy van-e még olyan. Ha van, akkor kiiratom. Aztán beolvasom a második értéket...
Bár ez nagy db esetén elég hosszadalmas szerintem -
alitak
senior tag
Kiadok egy ilyen parancsot php-ból:
$hsz = mysql_query(select hsz from topic where tema='masodik')
A topic táblában a tema=''masodik'' sorban a hsz értéke 2, és ennek ellenére ezt az értéket adja vissza a $hsz változóban: Resource id #2
Mi a probléma? Sql parancsként jó értéked ad vissza. -
alitak
senior tag
válasz
Jester01 #645 üzenetére
Igazad volt, más a probléma:
Hiba a kiválasztáskor: Access denied for user 'alitak'@'%' to database 'fajlok'
Viszont nem értem a problémát, mert az uw oldalán ez van írva:
kapcsolódás: <? $sql = mysql_connect(''SQL1.ULTRAWEB.HU'', ''alitak'', ''*''); ?>
Ezt bemásoltam, és nem enged be ezzel. -
alitak
senior tag
Van egy php oldal, ami egy mysql adatbázisból kilistáz. Ez az oldal:
<?
$kapcs = mysql_connect(''SQL1.ULTRAWEB.HU'',''...'',''...'');
mysql_select_db(''fajlok'',$kapcs);
?>
<font size=''5''>A feltöltött fájlok listája:</font><br>
<table border=1 cellpadding=''3'' cellspacing=''3''>
<tr>
<td>Név</td>
<td>Dátum</td>
<td>Fájl neve</td>
<td>Típus</td>
<td>Link</td>
<td>Komment</td>
</tr>
<?
$par = ''select * from fajlok order by datum,time desc'';
$adatb = mysql_query($par);
while ($sor = mysql_fetch_array($adatb))
{
?>
<tr>
<td><?= $sor[''nev'']?></td>
<td><?= $sor[''datum'']?> - <?= $sor[''time'']?></td>
<td><?= $sor[''fajlnev'']?></td>
<td><?= $sor[''tipus'']?></td>
<td><?= $sor[''link'']?></td>
<td><?= $sor[''komment'']?></td>
</tr>
<? } ?>
</table>
<?
mysql_close($kapcs);
?>
Itthon localhost-ról müködik, de uw-ról nem tom elérni, ezt a hibát adja:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...
Mi a probléma azzal a paranccsal? Mit lehetne helyette használni? -
alitak
senior tag
Kérdés: Van olyan függvény php-ban, ami csak a dátumot adja vissza (tehát pl. 2006-11-12), és olyan, ami csak az időt adja vissza(tehát pl. 22:15)?
Kéne mysql-hez, a timestamp típusú adat nem tetszik, szívesebben használnám a date, time típust, csak ahhoz kéne a fent említett függvény.
Aktív témák
Hirdetés
- iGO Primo
- One otthoni szolgáltatások (TV, internet, telefon)
- Robotporszívók
- Építő/felújító topik
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- GTA V
- PlayStation 5
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Kicsomagolták a Vivo X Fold 5-öt (videó és fotók)
- Autós topik
- További aktív témák...
- BESZÁMÍTÁS! ASUS ProArt Z790-CREATOR WIFI alaplap garanciával hibátlan működéssel
- Beszámítás! Apple Mac mini 2023 M2 Pro 16GB 512GB SSD számítógép garanciával, hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- HP 200W (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm töltők + tápkábel, 928429-002
- BESZÁMÍTÁS! Microsoft XBOX Series X 1TB SSD fekete játékkonzol extra kontrollerrel dokkolóval
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest