- Nyaralás előtti hardverszemle
- Azonnali processzoros kérdések órája
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Nvidia GPU-k jövője - amit tudni vélünk
- Fujifilm X
- Milyen videókártyát?
- Több tucat gyorsító összeköthetőségét kínálja az Instinct MI400 sorozat
- Utólag szállít kábelt az MSI az újabb tápjaihoz
- Házi hangfal építés
- Azonnali alaplapos kérdések órája
Aktív témák
-
marcias
őstag
Nem rég kezdtem el php-t tanulni, és beleütköztem egy problémába, amit csak nem tudok megoldani. Készítettem egy táblázatot, ahová egy abadbázis táblájából hívom meg az adatokat, de az egyik oszlop tartalmát másik táblából hívom meg. Ebben a másik táblában tároltam el az adott filmekre leadott 1-10-ig terjedő szavazatokat, az ''ertek'' mezőbe, és elmentettem mellé a film nevét is ''mcim''. Azt akarom megcsinálni, hogy a táblázat egyik mezőjében lássam a filmre leadott voksok átlagát, de csak odáig jutottam el, hogy az összes leadott voks átlagát teszi be minden film mellé, hiszen a parancs2 után ''WHERE''-rel nem tudok változóra hivatkozni, mert az egy tömbben van, és nemtom kiszedni onnan, hogy a php meg tudja állapítani hogy mely értékeknek kell az átlagát venni (ha konkrétan beírok egy filmcímet, akkor működik, de minden filmhez annak a filmnek az átlagát írja ki ) Köszi előre is!
<?
$parancs = ''SELECT * from filmek ORDER by mcim'';
$eredmeny = mysql_query($parancs);
$parancs2 = ''SELECT AVG(ertek) as jo FROM ertekel WHERE mcim='$igen''';
$eredmeny2 = mysql_query($parancs2);
$sor2 = mysql_fetch_array($eredmeny2);
$szin = ''#D8EFFA'';
while ($sor = mysql_fetch_array($eredmeny)) {
if ($szin==''#D8EFFA'') {
$szin = ''white'';
}
else {
$szin = ''#D8EFFA'';
}
?>
<tr bgcolor=''<?= $szin?>''>
<td align=center><font size=''<?= $font1?>''><img src=''images/<?= $sor[''kat'' ]?>'' alt=''''></font></td>
<td align=center><font size=''<?= $font1?>''><a href=''<?= $sor[''imdb'' ]?>'' target=''blank''><?= $sor[''mcim'' ]?></a></td>
<td align=center><font size=''<?= $font1?>''><?= $sor[''acim'' ]?></td>
<td align=center><font size=''<?= $font1?>''><?= strtoupper($sor[''qu'' ])?></td>
<td align=center><font size=''<?= $font1?>''><?= $sor[''mlc'' ]?></td>
<td align=center><font size=''<?= $font1?>''><?= $sor[''hang'' ]?></td>
<td align=center><font size=''<?= $font1?>''><?= $sor[''ertek'' ]?> (<?=$sor2[''jo'' ]?>)</td>
[...]
</td>
</tr>
<?
}
?> -
cucka
addikt
válasz
Briganti #296 üzenetére
egyrészt id számolásához használj auto increment-et, mint ahogy már említették
másrészt ez a query így nem valószínű, hogy jó lesz. ugye a $query az egy string, a stringbe pedig szeretnél behelyettesíteni értékeket. ezt kétféleképpen tudod:
- konkatenálás. $query=''insert into...''.$_POST[first_name].''query többi része, stb.''
- változókat {} közé rakod a string-ben. $query=''insert into...{$_POST[first_name]}query többi része, stb.'' -
Jester01
veterán
válasz
Briganti #296 üzenetére
Sajnos nem tudtam kibogozni, hogy mit is csináltál pontosan, mindenesetre
mysqlben van AUTO_INCREMENT, ami pont azt csinálja amit szeretnél:
CREATE TABLE T ( id bigint NOT NULL PRIMARY KEY AUTO_INCREMENT, ...)
Az id értékét innentől kezdve nem kell beadni az insertben, azt az adatbáziskezelő automatikusan generálja. -
Briganti
tag
Hellosztok, elore szolok hogy nagyon kezdo vagyok, es lehet hogy hulyeseget fogok kerdezni
a lenyeg az, hogy most kzdtem php-val, es mysql -l foglalkozni, es szerettem volna egy oan regizos oldalt csinalni ... megcisnaltam az urlapot, es jott az a resze, hogy adatbazisba kellene irni, es itt elakadtam ... leirom (bena) alkotasomat:
van egy index html, es abba egy form:
<form method=''post'' name=''reg'' action=''reg.php''>
(azthiszem nem itt van a baj, hanem tovabb ...)
a reg.php-m ugy nez ki hogy:
connectalodok a serverhez, kivalasztom az adatbazist, meg minden es kene bele irni ... en ezt igy oldottam meg:
$query=''INSERT INTO users (id,first_name,last_name,location,email,username,pasw)
VALUES ('$id','$_POST[first_name]','$_POST[last_name]','$_POST[location]','$_POST[email]','$_POST[username]','$_POST[pasw]')'';
ja, es persze az $id-be szamozni szeretnem a sorokat s annal igy probalkoztam:
$id=(mysql_query(''SELECT COUNT(*) FROM users''))+1;)) (ezt a reszt mondjuk kihagyjuk, vagyis a +1-t, es siman kiiratom az $id)
nekem kiad egy ilyent hogy:
Connection OK!
Selection OK!
Resource id #4
success in database entry.(persze itt nezi hogy van e error ...)
na de ha meg egyszer futtatom, csakugyan 4-t ir ki ... hol a hiba, mgkerlek segitsetek -
xea
csendes tag
Szerintem éppen elég indok a szép, rendezett és olvasható kód, ahol adott esetben nem kell azon gondolkodni, hogy ezt a változót oda is lehet képzelni. Persze hangsúlyozom, ez csak egy vélemény a sok közül.
Update: arról nem beszélve, hogy ha olyannak magyarázod, aki viszont nem tudja pontosan, hogy mit miért hagysz el. Ha tudná, nem biztos, hogy segítséget kérne.
[Szerkesztve] -
Tyrael
senior tag
igen, ez valoban igy van, de sehol sem kotelezo megadni a kapcsolatazonositot, sot, ha nincs letrehozva kapcsolat, akkor megprobal magatol is letrehozni.
ha egyszerre tobb kulonbozo adatbazisszervert akar menedzselni, akkor valoban erdemes eltarolni a kapcsolatazonositot.
egyebkent nem.
es ha hiszed ha nem, olvastam a manualt.
Tyrael -
Tyrael
senior tag
válasz
paramparya #284 üzenetére
nem is kell.
a valtozo csak azert kell/jo, hogy tudjuk vizsgalni a fuggveny visszateresi erteket.
de a mysql_connect OR die siman jo.
Tyrael -
skera
tag
válasz
paramparya #281 üzenetére
Potosabban így:
// Kiszolgalohoz csatlakozas
$connect=mysql_connect(''szerver'',''felhasznalo'',''pass'');
...
Az elején található változónév nélkül hibaüzenet lenne.
[Szerkesztve] -
supesz
aktív tag
válasz
paramparya #281 üzenetére
köszönöm kiprobálom, de majd csak holnap tudok választ adni. technikai okok miatt
köszi
-
paramparya
őstag
Olyan nincs, hogy phpMyAdmin felületű mysql szerver, a phpmyadmin csak egy ''dinamikus weblap'', amit a mysql-től független emberek azért írtak, hogy weben keresztül tudd konfigurálni, felügyelni a szervered
Csatlakozni az adatbázishoz a következőképpen kell:
mysql_connect(''server neve'', ''felhasználónév'', ''jelszó'') or die(mysql_error());
Az or die(mysql_error()) rész azért kell, hogy ha nem sikerül a csatlakozás, akkor kiírja, hogy miért
Ha nem sikerül, oszd meg velünk a hibaüzenetet! -
supesz
aktív tag
sziasztok,
Nem tudok csatlakozni az általam létrehozott adattáblához.
Igazából az adadtbáziszerverhez sem tudok.
Pontosabban. Php programmal szeretnék csatlakozni egy phpMyAdmin felületű mySQL szerverhez. Hogyan kell. Engem a kód érdekelne. Hol tudok ennek utánnanézni? Van nálam egy PHP könyv (A fekete könyv), abban van egy kódrészlet, de nekem nem működik. Nem tudom miért. Van valami különbség, ha phpMyAdminos az adatbázis? Ehhez nem nagyon értek.(a könyv egyébként a mysql_connect() fg.-t javasolja, de nekem sehogysem működik és nemtudom miért
)
Akkor is írjatok, ha nem világos a probélma. -
-
-
zeix
senior tag
Ja igen majdnem elfelejtettem az első oldal nem az első, ha először kattintok az első oldalra akkor a második oldal jelenik meg ha mégegyszer rákattintok akkor bejön az első oldal...
kellne egy 0-ik oldal is? -
L3zl13
nagyúr
PH-n is submitol. Vagy arra gondolsz, hogy ne kelljen külön gombot nyomni?
Ahhoz a select boxnál be kell állítani az onChange eseményre a submit-ot. (vagy egy átirányítást, és GET-es értékátadást, mint itt a PH esetében)
Mellesleg nem gondoltál még olyanra, hogy esetleg megnézd az oldal forrását, és egy kis önszorgalommal kilogikázd saját magad?
Ez már régen nem PHP+MySQL kérdés...
[Szerkesztve] -
zeix
senior tag
Hali!
Tegnap átírtam a kódot nézzétek meg!
Biztosan lehetne javítani rajta de müxik. :-)
<?
list($hirek_szama) = mysql_fetch_row(mysql_query('SELECT count(*) FROM emberek'));
if(!$page) $page = 1;
echo '<form action=''?page='' ><select size=''1'' name=''page''>';
for($i=1;$i<=ceil($hirek_szama/$darabperlap);$i++)
{
if($i == $page)
echo '<option value=''''></option>';
else
echo '<option value='''.$i.'''><a href='.$_SERVER['SCRIPT_NAME'].'?page='.$i.'>'.$i.'</a></option>';
}
echo '</select><input type=''submit'' value=''OK''></form>';
echo '<font color=''red'' size=''4''><b>'.$page.'</b></font>';?>
Na milyen?
Azt, hogyan lehet megoldani, hogy submit nélkül küldja az adatokat? -
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. -
Tyrael
senior tag
nem.
ez a script azt csinalna (illetve nalam csinalja/csinalta), hogy lekerdezte az adott oldalhoz tartozo hireket (laponkent $darabperlap darabot), es a hirek alatt voltak a linkek a tobbi oldalra.
attol fuggoen, hogy hany oldalnyi hir van, kell kiirni a linkeket, es az epp aktualis oldal inaktiv.
Tyrael -
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. -
Tyrael
senior tag
Nem is emlekeztem, hogy ilyen is van.
de:
''Amikor nagy eredményhalmazokkal dolgozol, akkor mérlegelned kell az olyan függvyének használatát, amelyek az egész eredménysort betöltik. Mivel ezek több cella tartalmát olvassák be egy függvényhívással, így ezek SOKKAL gyorsabbak, mint a mysql_result() függvény hívogatása. Említést érdemel még, hogy a numerikus index használata jóval gyorsabb, mint a mezőnév vagy a táblanév.mezőnév forma használata.''
szal csak a sorokat tombbe pakolas a legjobb modszer szerintem a SELECT lekerdezes eredmenyenek tarolasara.
osztalyok szintjen meg tenyleg nem allok.
Tyrael -
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>';
} -
zeix
senior tag
Beillesztem az egész kódot:
<? include(''dbconn.php'') ?>
<HTML>
<BODY>
<table width=50%>
<tr bgcolor=''navy''>
<td width=40%><font color=white><b>Név</td>
<td width=20% align=center><font color=white><b>Életkor</td>
<td width=40%> </td>
</tr>
<?
$darabperlap=25;
$offset=$page*$darabperlap;
$parancs = ''SELECT * FROM emberek ORDER BY nev LIMIT $offset, $darabperlap'';
$eredmeny = mysql_query($parancs);
$szin = ''lightgrey'';
while ($sor = mysql_fetch_array($eredmeny)) {
if ($szin==''lightgrey'') {
$szin = ''white'';
}
else {
$szin = ''lightgrey'';
}
?>
<tr bgcolor=''<?= $szin?>''>
<td><?= $sor[''nev''] ?></td>
<td align=center><?= $sor[''kart''] ?></td>
<td align=center>
<a href=''mod_urlap.php?mit=<?= $sor[''id''] ?>&nev=<?= urlencode($sor[''nev'']) ?>&eletkor=<?= $sor[''eletkor''] ?>''>módosítás</a>
<a href=''torol.php?mit=<?= $sor[''id''] ?>''>törlés</a>
</td>
</tr>
<?
}
?>
</table>
<form action=''felv_urlap.htm''>
<input type=''submit'' value=''Felvétel''>
</form>
oldalak:�
<?
$hirek_szama=mysql_query(''SELECT count(*) FROM emberek'');
$hirek_szama=mysql_fetch_array($hirek_szama);
$hirek_szama=$hirek_szama[0];
$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>'';
}
?>
</BODY>
</HTML>
<?
mysql_close($kapcsolat);
?>
Ezzel ezt az eredményt kapom:
oldalak: 0 = Array
1 = Array
2 = Array
3 = Array
stb.....24-ig -
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] -
Tyrael
senior tag
ez is 1 megoldas.
en irtam egy sajat function-t, a mysql lekerdezesekhez.
mysql_lekerdezes();
nyit db kapcsolatot, kivalasztja a tablat, vegrehajt egy SET NAMES latin2 parancsot, majd elvegzi a parameterkent kapott lekerdezest, lezarja a kapcsolatot, a visszakapott eredmenyt bepakolja valtozoba, es visszater azzal a valtozoval.
szal igy nem kell minden egyes lekerdezeshez 20 sort irnom.
ebbol adodoan en mindig valtozoval/tombokkel vegzek muveletet, nem mysql eroforrasokkal.
sajat peldambol masoltam neki be par sort, de o esetben meg lehetne irni ugy is, hogy azonnal kiirja.
Tyrael -
zeix
senior tag
Most ezt a hibaüzit kaptam:
Fatal error: Cannot use [] for reading in c:\appserv\www\06\lista.php on line 61
hirek=mysql_query(''SELECT * FROM emberek ORDER BY nev DESC LIMIT $offset,$darabperlap'');
while ($sor = mysql_fetch_array($hirek))
{
$sorok[]=$sor[]; 61. sor
}
$hirek=$sorok; -
Tyrael
senior tag
megvan a megoldas.
te nem is nyerted vissza a hirekbol a sorokat.
nekem kulon fuggvenyem van ra, lenyeg az, hogy mysql_query altal nem tombot, vagy ilyesmi fogsz visszakapni, hanem egy resource-ot (eroforrast), ezt fel kell dolgoznod a mysql_fetch_ fuggvenyek valamelyikevel.
te esetedben mysql_fetch_array kellene
tehat pl:
$hirek_szama=mysql_query(''SELECT count(*) FROM emberek'');
$hirek_szama=mysql_fetch_array($hirek_szama);
$hirek_szama=$hirek_szama[0];
ha minden igaz, akkor itt mar meglesz a hirek szama, szamkent a $hirek_szama valtozoban.
ezutan:
$hirek=mysql_query(''SELECT * FROM emberek ORDER BY nev DESC LIMIT $offset,$darabperlap'');
while ($sor = mysql_fetch_array($hirek))
{
$sorok[]=$sor[];
}
$hirek=$sorok;
ha minden igaz, ezek utan benne lenne a $hirek tombben az x darab hir.
Tyrael -
zeix
senior tag
$hirek_szama=mysql_query(''SELECT count(*) FROM emberek'');
$hirek=mysql_query(''SELECT * FROM emberek ORDER BY nev DESC LIMIT $offset,$darabperlap'');
$i=0;
while(($hirek_szama)>0)
{
if ($page==$i)
{
echo '' [$i] ''; nálam (szerintem) csak ezt a változót írja ki a lap aljára
}
else
{
echo ''<a href='lista.php?page=$i'>[$i]</a>''; ezzel nem tudom mi van...itt csak akkor lesz link ha $i=nagyobb nullánál ; ha nem nincs link.
}
$i++;
$hirek_szama=$hirek_szama-$darabperlap;
}
?>
sajnos nem értek hozzá eléggé ezért kérem a ti segítségeteket
nálam nem listázza ki a linkeket, hogy oldal [1] [2] [3] stb.
[Szerkesztve] -
zeix
senior tag
OK!
ezt írja ki a lap aljára
oldalak: [0]
és csak az első 20-at látom a 2400-ból
<?
$hirek_szama=mysql_query(''SELECT count(*) FROM emberek'');
$hirek=mysql_query(''SELECT * FROM emberek ORDER BY nev DESC LIMIT $offset,$darabperlap'');
$i=0; -------ha itt az értéket növelem pl. 1-re akkor [1] linkelve lesz a lap alján de semmi több
while(($hirek_szama)>0)
{
if ($page==$i)
{
echo '' [$i] '';
}
else
{
echo ''<a href='lista.php?page=$i'>[$i]</a>'';
}
$i++;
$hirek_szama=$hirek_szama-$darabperlap;
}
?> -
Tyrael
senior tag
$parancs = ''SELECT * FROM emberek ORDER BY NEV LIMIT 0,20'';
kivalasztja az osszes embert az emberek mezobol, nev szerint rendezi, majd az elso 20 talalatot visszaadja.
mi ezzel a baj?
ami a lenyeg:
LIMIT honnan, mennyit
honnan. szamu sor NEM LESZ BENNE A TALALATOKBAN
ergo ha LIMIT 1, 20 lenne a lekerdezes, akkor a 2-21 kozti tartomanyt adna neked vissza a szerver.
neked pedig ezek az intervallumok kellenek:
1-20
21-40
stb.
jo az a lekerdezes.
Tyrael
[Szerkesztve] -
zeix
senior tag
Yo reggelt!
Otthon átnéztem a dolgokat. Az jó hogyha a $page-nek nincsen értéke?
ezálltal a $offset is = 0
ez ugyanaz mintha azt írnám, hogy
$parancs = ''SELECT * FROM emberek ORDER BY NEV LIMIT 0,20'';
$darabperlap=20;
$offset=$page*$darabperlap;
$parancs = ''SELECT * FROM emberek ORDER BY NEV LIMIT $offset,$darabperlap'';
$eredmeny = mysql_query($parancs);
kiirás:
$hirek_szama=mysql_query(''SELECT count(*) FROM emberek'');
$hirek=mysql_query(''SELECT * FROM emberek ORDER BY nev DESC LIMIT $offset,$darabperlap'');
$i=0;
while(($hirek_szama)>2320)
{
if ($page==$i)
{
echo '' [$i] '';
}
else
{
echo ''<a href='lista.php?page=$i'>[$i]</a>'';
}
$i++;
$hirek_szama=$hirek_szama-$darabperlap;
}
?> -
Tyrael
senior tag
gondolom kevesebb hired van, mint amennyi a $darabperlap erteke.
nalam 1 lapra 5 hir kerult, ha adatbazisban 5, vagy annal kevesebb hir volt, akkor csak 1 lap kellett, ha tobb, akkor tobb.
es az aktualis lapra nem lehet ranyomni, ugy csinaltam meg (igy ha sok lap kozott navigal, akkor lehet tudni, melyiken van epp most)
Tyrael -
zeix
senior tag
lassan mennem kell a köv vonathoz ezt nem szeretném lekésni...
ha valakinek van ötlete az küldje be pls
[Szerkesztve] -
zeix
senior tag
Ezen már csak nevetni tudok!....
<?
$hirek_szama=mysql_query(''SELECT count(*) FROM emberek'');
$hirek=mysql_query(''SELECT * FROM emberek ORDER BY nev DESC LIMIT $offset,$darabperlap'')
$i=0;
while(($hirek_szama)>0) 57.sor
{
if ($page==$i)
{
echo '' [$i] '';
}
else
{
echo ''<a href='lista.php?page=$i'>[$i]</a>'';
}
$i++;
$hirek_szama=$hirek_szama-$darabperlap;
}
?>
most ezt írja ki:
Parse error: syntax error, unexpected T_VARIABLE in c:\appserv\www\06\lista.php on line 57
[Szerkesztve] -
zeix
senior tag
Visszatértem lekéstem a vonatot!
-
Tyrael
senior tag
megkerestem otthon:
$darabperlap=5;
$offset=$page*$darabperlap;
$hirek_szama=mysql_lekerdezes(''SELECT count(*) FROM news'');
$hirek=mysql_lekerdezes(''SELECT * FROM news ORDER BY news_id DESC LIMIT $offset,$darabperlap'')
kiiras:
$i=0;
while(($hirek_szama)>0)
{
if ($page==$i)
{
echo '' [$i] '';
}
else
{
echo ''<a href='news.php?page=$i'>[$i]</a>'';
}
$i++;
$hirek_szama=$hirek_szama-$darabperlap;
}
Tyrael -
zeix
senior tag
Kössz de most lépek, otthon még probálkozom!
Itt van az eleje:
$oldal=(int) $_GET[''oldal''];
$dbperlap=30;
$mettol=$oldal*$dbperlap;
$parancs = ''SELECT * FROM emberek ORDER BY nev LIMIT $mettol, $dbperlap'';
$eredmeny = mysql_query($parancs);
$hirek_szama=mysql_query(''SELECT count (*) FROM emberek'');
$lapok_szama=$hirek_szama/$oldal;
for($i=0;$i<=$lapok_szama;$i++)
{
$sorszam=$i+1;
echo ''<a href='lista.php?oldal=$sorszam'>$sorszam</a>'';
} -
darabka
tag
-
zeix
senior tag
Ittvan még1szer:
$oldal=(int) $_GET[''oldal''];
$dbperlap=30;
$mettol=$oldal*$dbperlap;
$parancs = ''SELECT * FROM search ORDER BY nev LIMIT $mettol, $dbperlap'';
$eredmeny = mysql_query($parancs);
<?
$hirek_szama=mysql_query(SELECT count (*) FROM emberek);
$lapok_szama=$hirek_szama/$oldal; Ez az 56. sor:
for($i=0;$i<=$lapok_szama;$i++)
{
$sorszam=$i+1;
echo ''<a href='lista.php?oldal=$sorszam'>$sorszam</a>'';
}
?>
Ugyanaz a hiba. -
zeix
senior tag
OK!
Az eleje müxik de a linkiiratás nem :(
<?
$hirek_szama=mysql_query(SELECT count(*) FROM emberek);
$lapok_szama=$hirek_szama/$oldal;
for($i=0,$i<=$lapok_szama,$i++)
{
$sorszam=$i+1;
echo ''<a href=''lista.php?oldal=$sorszam''>$sorszam</a>'';
}
?>
hiba:
Parse error: syntax error, unexpected T_STRING in c:\appserv\www\06\lista.php on line 56 -
Tyrael
senior tag
en igy oldottam meg magamnak phpval (hirek listazasat oldalankent 10 hirrel):
$oldal=(int) $_GET['oldal';
$dbperlap=10;
$mettol=$oldal*$dbperlap;
mysql_lekerdezes(SELECT * FROM tabla WHERE feltetel LIMIT $mettol, $dbperlap);
es a hirek ala kiraktam linkeket az osszes oldalra
$hirek_szama=mysql_lekerdezes(SELECT count(*) FROM tabla);
$lapok_szama=$hirek_szama/$oldal;
for($i=0,$i<=$lapok_szama,$i++)
{
$sorszam=$i+1;
echo ''<a href='hirek.php?oldal=$sorszam'>$sorszam</a>'';
}
vagy valami hasonlot (fejbol irtam, biztos bugos)
Tyrael -
zeix
senior tag
Frankó!
Csináltam pár db változót:
$parancs = ''SELECT * FROM emberek ORDER BY nev LIMIT 0, 100'';
$parancs2 = ''SELECT * FROM emberek ORDER BY nev LIMIT 101, 200'';
$parancs3 = ''SELECT * FROM emberek ORDER BY nev LIMIT 201, 300'';
$eredmeny = mysql_query($parancs);
Egy formot amit még nem tudok, hogy fog működni:
<form method='''' action=''''>
<select size=''1'' name=''oldalak'' size=''1''>
<option value=''<?$eredmeny = ''mysql_query($parancs)'';?>''>1-100</option>
<option value=''<?$eredmeny = ''mysql_query($parancs2)'';?>''>101-200</option>
<option value=''<?$eredmeny = ''mysql_query($parancs3)'';?>''>201-300</option>
</select>
<input type=''submit'' value=''Tovább''>
</form>
Hogyan tudom összerakni?
[Szerkesztve] -
-
zeix
senior tag
Hi!
Van egy 1szerű script ami kilistázza az adatbázisban szereplő adatokat,
de nekem 2400 rekordom van a táblában, hogyan tudok olyat csinálni, hogy oldalanként listázza ki az adatokat. Gondolok itt olyanra, hogy 20 rekord per oldal előző-következő oldal linkek...
itt van a script:
<? include(''dbconn.php'') ?>
<HTML>
<BODY>
<table width=50%>
<tr bgcolor=''navy''>
<td width=40%><font color=white><b>Név</td>
<td width=20% align=center><font color=white><b>Életkor</td>
<td width=40%> </td>
</tr>
<?
$parancs = ''SELECT * FROM emberek ORDER BY nev'';
$eredmeny = mysql_query($parancs);
$szin = ''lightgrey'';
while ($sor = mysql_fetch_array($eredmeny)) {
if ($szin==''lightgrey'') {
$szin = ''white'';
}
else {
$szin = ''lightgrey'';
}
?>
<tr bgcolor=''<?= $szin?>''>
<td><?= $sor[''nev''] ?></td>
<td align=center><?= $sor[''eletkor''] ?></td>
</tr>
<?
}
?>
</table>
</BODY>
</HTML>
<?
mysql_close($kapcsolat);
?> -
supi0070
tag
Mindenkinek köszönöm szépen a segítséget.
Most akkor eltűnök és elolvasom amit küldtetek, ha kérdésem merülne fel, akkor tudom hova kell jönnöm.
Mégegyszer köszönöm.
Aktív témák
Hirdetés
- One mobilszolgáltatások
- hdanesz: Elektromos autózás - első élmények
- Goddess of Victory:Nikke
- Otthoni hálózat és internet megosztás
- GTA V
- Miért vezet mindenki úgy, mint egy állat?
- Okos Otthon / Smart Home
- Google Pixel 9 Pro XL - hét szűk esztendő
- Tőzsde és gazdaság
- Nyaralás előtti hardverszemle
- További aktív témák...
- Steam, EA, Ubisoft és GoG játékkulcsok, illetve Game Pass kedvező áron, egyenesen a kiadóktól!
- Billentyűzet magyarosítás magyarítás lézerrel is! 10-15ezer közötti áron! Óriási betűkészeletünk van
- BESZÁMÍTÁS! Asus Rog Zephyrus G14 notebook - R9 4900HS 16GB RAM 512GB SSD RTX 2060 6GB Max-Q WIN10
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 XT GAMER PC termékbeszámítással
- Bomba ár! HP EliteBook 830 G5 - i5-8G I 8GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged