Ennek semmi köze ahhoz, hogy a teljes resultsetet átpakolni soronként egy nagy tömbbe.
Aki hülye, haljon meg!

Ennek semmi köze ahhoz, hogy a teljes resultsetet átpakolni soronként egy nagy tömbbe.
Aki hülye, haljon meg!

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
Core i7 HTPC, mint a piros hetes ;)

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>';
}

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

Én is csak az odbc-s megfelelőjét használtam. (Ott sajnos kénytelen voltam.)
Aki hülye, haljon meg!

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.

$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? 

Dehogynem de nem tudom hogyan... 
Core i7 HTPC, mint a piros hetes ;)

ha ott abban a pillanatban EGYETLEN EGYSZER kell kiirni a rekordokat, akkor igen.
ellenkezo esetben tarolni kell.
Tyrael

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

Legtöbbször egyszer kell. Az esetek 95%-ban biztosan.

es a hirek alatt voltak a linkek a tobbi oldalra.
Én pontosan ezt a részt másoltam be, csak azt nem értem, miért kérdezi le ismét a híreket, és tölti egy tömbbe.

jah, a srac mar kicsi modositott a kodon.
ott egy count(*) lenne
Tyrael

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.

Király; frankó!

Köszönöm a segítségeteket! 
mostmár csak meg kellene értenem mit írtál... 
Core i7 HTPC, mint a piros hetes ;)

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]

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?
Core i7 HTPC, mint a piros hetes ;)

marmint hogy submit nelkul?
Tyrael

Aha, hogy csak a lapok számára kattintok és változik az oldal mint itt a PH-en.
Core i7 HTPC, mint a piros hetes ;)

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]
Aki hülye, haljon meg!

ne post-ba irasd ki, hanem linkkent
es akkor a $page-t ne $_POST, hanem $_GET tombbol szedd.
echo ''<a href=''hirek.php?id=$id''>[$id]</a>'';
feldolgozasnal pedig:
$id=$_GET['id'
;
Tyrael

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? 
Core i7 HTPC, mint a piros hetes ;)

nalam ugy volt.
lehetne 1tol is kezdeni, de akkor php oldalon bele kene nyulni a matematikai muveletbe (1-et kivonni a LIMIT elso valtozojabol asszem, mert kulonben az elso oldalt nem listazna ki)
Tyrael

Jah igen, mivel a $page 1-től indul, ezért a program elején le kell vonni egyet, mikor az offsetet számolod.
$darabperlap=25;
if(!$page) $page = 1;
$offset=($page-1)*$darabperlap;
$parancs = ''SELECT * FROM emberek ORDER BY nev LIMIT $offset, $darabperlap'';

Kössz szépen mostmár az első oldal az első.
most ezzel próbálkozom:
echo '<a href=''lista.php?page='.$page.'''>vissza</a> ';
ezt vhogy úgy kellene megoldanom, hogy a $page értéke mindíg 1-el kevessebb legyen az aktuális értéknél.
Ja ez már off topic.
Core i7 HTPC, mint a piros hetes ;)

echo $page-1;
?
Tyrael

Ez tök 1szerű!!!!
<?$vissza=$page-1;
$elore=$page+1;
echo '<a href=''lista.php?page='.$vissza.'''>vissza</a>�';
echo '<a href=''lista.php?page='.$elore.'''>előre</a>�';
?>
Frankó!!!
Core i7 HTPC, mint a piros hetes ;)

arra majd figyelj, hogy az elso lapon ne irj ki vissza linket, az utolso oldalon meg eloret
Tyrael

Ahhaaa!
Lapoz tovább ha elérte az utsót visszafele 0-át akar de visszatér az első oldalra.
Core i7 HTPC, mint a piros hetes ;)
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. 
A nucleus arcuatus (infundibularis) kapillárisaiból összeszedődő vénák a hypophysisnyélen keresztül lejutnak a hypopisis elülső lebenyébe - az adeno-hypopisisbe, és ott újra kapillárisokká oszlanak.
(#281) paramparya válasza supesz (#280) üzenetére

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! 
(#282) supesz válasza paramparya (#281) üzenetére
köszönöm kiprobálom, de majd csak holnap tudok választ adni. technikai okok miatt
köszi 
A nucleus arcuatus (infundibularis) kapillárisaiból összeszedődő vénák a hypophysisnyélen keresztül lejutnak a hypopisis elülső lebenyébe - az adeno-hypopisisbe, és ott újra kapillárisokká oszlanak.
(#283) skera válasza 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]
import szte.ttk.ptm.*;
(#284) paramparya válasza skera (#283) üzenetére

Én akárhányszor használtam így, sosem kaptam hibaüzenetet... 
(#285) Tyrael válasza 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

Meg esetleg azért, hogy ha szimultán több adatbáziskapcsolatod van, akkor különbséget tudj tenni közöttük? Meg egy rakás függvény is kéri a kapcsolatazonosítót. rtfm.

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

Ha szimultan vannak a kapcsolatok, akkor logikus, hogy kulon azonositoba pakolod oket, de masreszt szerintem nem indokolt. Mellesleg egy kapcsolat eseten tudtommal semmilyen fuggveny nem ker semmifele azonositot, hasznalja azt az egyet, ami van.

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]

akkor azt sem fogja tudni, hogy miert kell odairni. 
mas fuggvenynek is vannak elhagyhato parameterei, azokat megsem irjuk mindig oda.
szerintem
Tyrael

De az már az ő tapasztalatlansága miatt lesz, nem miattad, így moshatod kezeidet 

Tudtommal a kapcsolat azonosító minden mysql függvénynél opcionális paraméter, tehát elhagyható.

Azt hittem, ezen már túlvagyunk.

chopnak válaszoltam, a többi nem érdekel.
[Szerkesztve]

Igen, en is ezt irtam.

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
If debugging is a process of removing bug, then programming is a process of putting them in ...

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.
Jester
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.''
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>
<?
}
?>
Steam: marcias88