- IGP nélküli processzorokkal készül az Intel és az AMD
- Házimozi belépő szinten
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Külső 3,5'' mobil rack-ek topikja
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Shield TV-t csinált a Shieldből az NVIDIA
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Milyen notebookot vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- OLED TV topic
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
- Starlink
- Genshin Impact (PC, PS4, Android, iOS)
- Vivo X200 Pro - a kétszázát!
- Anglia - élmények, tapasztalatok
- IGP nélküli processzorokkal készül az Intel és az AMD
- Kecskemét és környéke adok-veszek-beszélgetek
- Házimozi belépő szinten
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Külső 3,5'' mobil rack-ek topikja
- Motorola Edge 30 Neo - wake up, Jr...
- További aktív témák...
- Targus Universal USB 3.0 DV1K-2K Compact docking station (DisplayLink)
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- ÁRGARANCIA! Épített KomPhone Ryzen 5 9600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! Gigabyte B450M R7 2700X 16GB DDR4 512GB SSD RX VEGA64 8GB CM 690 III FSP 600W
- AKCIÓ! Gigabyte B85-HD3 B85 chipset alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest