- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Linux - haladóknak
- DIGI internet
- Proxmox VE
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- WLAN, WiFi, vezeték nélküli hálózat
- Milyen NAS-t vegyek?
- Microsoft Excel topic
- Crypto Trade
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
Aktív témák
-
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
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>';
} -
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
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
$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? -
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
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
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] -
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? -
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]Aki hülye, haljon meg!
-
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? -
-
-
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.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.
-
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
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
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.
-
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]import szte.ttk.ptm.*;
-
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 -
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 -
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] -
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 segitsetekIf debugging is a process of removing bug, then programming is a process of putting them in ...
-
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.Jester
-
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.'' -
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>
<?
}
?>Steam: marcias88
Aktív témák
- sziku69: Szólánc.
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- SSD kibeszélő
- Luck Dragon: Asszociációs játék. :)
- Termékoldal buktatta le a Huawei Watch Fit 3-at
- OLED TV topic
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Vezeték nélküli fülhallgatók
- Milyen CPU léghűtést vegyek?
- Milyen billentyűzetet vegyek?
- További aktív témák...