- Kormányok / autós szimulátorok topikja
- Melyik tápegységet vegyem?
- Mini-ITX
- Gaming notebook topik
- Milyen notebookot vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Apple asztali gépek
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- UHD filmek lejátszása
Aktív témák
-
faster
nagyúr
Eleve timestampet kell tárolni az adatbázisban, és akkor kiírásnál úgy formázod a dátumodat, azt a részét iratod ki, amelyikre szükséged van, nem kényszerülsz str_replace-es hackekre.
Vagy, ha datetime típusú a mező,. és mysql -ről van szó, akkor timestampként kell kiolvasni:
SELECT UNIX_TIMESTAMP(datum) AS datum FROM ...
[Szerkesztve] -
faster
nagyúr
A substr-vel az a gond,hogy a szó közepén is darabol. Én erre a szövegkivonatolásra ezt a függvény használom:
function truncate($content,$max) {
if(strlen($content)>$max) {
$content = substr($content,0,$max);
for($xx=strlen($content);$xx>0;$xx--) {
if(!ctype_space($content{$xx-1}) and !ctype_punct($content{$xx-1})) {
$content = substr($content,0,strlen($content)-1);
}
else {
$content .= '' ...'';
break;
}
}
}
return $content;
} -
faster
nagyúr
válasz
Briganti #303 üzenetére
Header előtt nem lehet kiírás. Egyébként nem értem, miért így vizsgálod meg a password helyességét, azt ugyanúgy belerakhatod a select WHERE részébe.
$sel=mysql_query(''SELECT * FROM users WHERE username='$user' AND pasw='$pasw''');
if(mysql_num_rows($sel)) {
// beléphet
}
else {
// név vagy jelszó nem stimmel
}
[Szerkesztve] -
-
faster
nagyúr
list($hirek_szama) = mysql_fetch_row(mysql_query('SELECT count(*) FROM emberek'));
A hírek számának lekérdezése, ugyanazt írtam, amit Tyrael, csak egy sorba belesűrítettem az egészet.
if(!$page) $page = 1;
Ha nincs oldalszám, akkor az első oldal az aktuális.
echo '<table cellpadding=''3''><tr>';
...
echo '</tr></table>';
Ez egy HTML táblázat a táblázat celláiba kerülnek az oldalszámok.
for($i=1;$i<=ceil($hirek_szama/$darabperlap);$i++) {
Ez a ciklus írja ki az oldalak számait, egytől a maximális oldal számáig. A max. oldal száma attól függ, hány elem kerül egy oldalra ($darabperlap), és összesen hány elem van ($hirek_szama), ezt kell elosztani egymással, és felfelé kerekíteni, hogy ne törtszámot kapjunk (ceil).
if($i == $page) echo '<td><b>'.$i.'</b></td>';
Ha épp az aktuális oldal számát írjuk ki, akkor csak kiírjuk a számjegyet, jelen esetben bold formázással.
else echo '<td><a href='.$_SERVER['SCRIPT_NAME'].'?page='.$i.'>'.$i.'</a></td>';
Minden más oldalnál az oldal számát kattintható hivatkozásként írjuk ki, a hivatkozás linkjébe kerül a futtató program neve ($_SERVER['SCRIPT_NAME']), a page nevű paraméterbe kerül az aktuális oldal száma.
Röviden ennyi.
[Szerkesztve] -
faster
nagyúr
Arra a részre, ahova az oldalszámok mennek:
oldalak:
<?
list($hirek_szama) = mysql_fetch_row(mysql_query('SELECT count(*) FROM emberek'));
if(!$page) $page = 1;
echo '<table cellpadding=''3''><tr>';
for($i=1;$i<=ceil($hirek_szama/$darabperlap);$i++) {
if($i == $page) echo '<td><b>'.$i.'</b></td>';
else echo '<td><a href='.$_SERVER['SCRIPT_NAME'].'?page='.$i.'>'.$i.'</a></td>';
}
echo '</tr></table>';
?>
Remélem, nem gépeltem el semmit. -
faster
nagyúr
$hirek=mysql_query(''SELECT * FROM emberek ORDER BY nev DESC LIMIT $offset,$darabperlap'');
while ($sor = mysql_fetch_array($hirek))
{
$sorok[]=$sor;
}
$hirek=$sorok;
foreach ( $hirek as $sorok => $ertek )
{
print ''$sorok = $ertek<br>'';
}
Ezt a részt nem értem, nem oldalszámokat akarsz megjeleníteni? -
faster
nagyúr
szal csak a sorokat tombbe pakolas a legjobb modszer szerintem a SELECT lekerdezes eredmenyenek tarolasara.
Szerintem meg teljesen felesleges select eredményét tárolni tömbben. Egy while(...fetch_assoc) sor semmivel sem bonyolultabb, mint egy foreach, viszont kevesebb memóriát eszik. -
faster
nagyúr
Háááát, nem tudom, egy adatbázis rekordjainak kilistázása még osztály nélkül sem olyan bonyolult (legfőbb hátrány, hogy adatbázisszerver függő)
$res = mysql_query(''SELECT id, cim,bevezeto FROM tablanev WHERE ...'');
while($row = mysql_fetch_assoc($res)) {
echo '<a href="hir.php?id='.$row['id'].'">'.$row['bevezeto'].'</a><br>';
} -
faster
nagyúr
Ahh, értem, háááát, szokatlan megoldás. :)
Én a saját db, db_res osztályomat használom, és az sem bonyolultabb, mint a tömbkezelés.
pl:
$query = ''SELECT id,leadpic,title,lead,UNIX_TIMESTAMP(public_date) AS public_date FROM news ''.$where.'' ORDER BY public_date DESC LIMIT ''.$f.'',''.PERPAGE;
$res = $db->query($query);
if($res->num_rows()) {
while($row = $res->fetch()) {
echo $row[''mezonev''];
}
}
else {
echo ''ez töküres'';
}
[Szerkesztve] -
-
-
faster
nagyúr
Ha nem tartalmaz titkos részeket, akkor próbáld meg beilleszteni a forrást, hátha kiderül. Az index.php és az includeoltat is.
Szerk: elméletben mindenképpen mködnie kellene, sőt a gyakorlatban is, mivel és is egy include fájlt használok a adatbázis kapcsolódáshoz, adatbázis kiválasztáshoz, de mivel csak egyetlen adatbázist használok egyetlen kapcsolattal, ezért a mysql connection linket nem rakom ki változóba, kábé így néz ki a dolog:
include.php:
mysql_connection(''localhost'',USER_NAME,PASSWORD);
mysql_select_db(DATABASE);
akarmi.php:
require_once(''include.php'');
...
$res = mysql_query(''SELECT * FROM kertitorpe ORDER BY magassag'');
...
[Szerkesztve] -
faster
nagyúr
Nekem az a gyanúm, hogy a cim fölösleges, ki lehet szedni.
Szerk: hozzaszolas.nick AS nick, mert a kapott result setben a PHP nyelvi sajátosságai miatt pont nem lehet (tehát nem tudod úgy elérni, hogy $row[''hozzaszolas.nick'' ]), ezért az AS-sal át kell nevezni.
[Szerkesztve] -
faster
nagyúr
Hu hu hú, de bonyolult.
Mindkét táblában van egy ''tema_id'' nevű mező, ezért helyette a ''táblaneve.tema_id'' jelölést kell használni.
select tema_id, cim, count(hozzaszolas_id) as hozzaszolas from tema left outer join hozzaszolas on tema.tema_id=hozzaszolas.tema_id group by tema_id,cim
helyett
SELECT hozzaszolas.tema_id AS tema_id, cim, count(hozzaszolas_id) AS hozzaszolas FROM tema LEFT OUTER JOIN hozzaszolas ON tema.tema_id=hozzaszolas.tema_id GROUP BY hozzaszolas.tema_id
Remélem, ez jó lesz. -
faster
nagyúr
-
faster
nagyúr
Valami ilyesmit kell, hogy kapjál a resultset-ben:
+----+---------------------------------+-------+
| id | cim | darab |
+----+---------------------------------+-------+
| 3 | egyéb | 0 |
| 1 | Az élet nagy kérdései | 2 |
| 2 | Az élet nem olyan nagy kérdései | 3 |
+----+---------------------------------+-------+
Szerk: Az oszlopok elcsúsztak, remélem, a lényeg azért látszik.
[Szerkesztve] -
faster
nagyúr
Aktív témák
Hirdetés
- Eladó Makulátlan 16" MacBook Pro M1 Pro 16/1TB (10/16) Dobozában, ajándék tokkal.
- Logitech G923 Racing Wheel and Pedals Xbox One/PC Kormány És Pedálsor
- eladó 4db 2TB NASware WD red (WD20EFAX)
- Xiaomi Redmi Note 13 Pro+ 5G 512GB 12GB RAM - 2027. FRBRUÁRIG GARANCIÁS / akár beszámítással is
- ÚJ Lenovo LOQ 15ARP9 - 15.6" FullHD IPS 144Hz - Ryzen 7 7435HS - 24GB - 512GB - RTX 4050 - 2 év gari
- GYÖNYÖRŰ iPhone 13 512GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3077, 100% Akkumulátor
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 5060 Ti 16GB GAMER termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- Azonnali kézbesítés az év bármely pillanatában
- HIBÁTLAN iPhone 14 Pro 128GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3102
Állásajánlatok
Cég: FOTC
Város: Budapest