Utolsó sorok lekérdezése MySQL-ben
Lenne nekem egy kérdésem:
Egy adatbázisban van x adat, amit azzel a kóddal kérdezek le:
$eredmeny = mysql_query( "SELECT * FROM $adatbazis");
print "<table border=1>\n";
print "<tr>\n";
while ( $egy_sor = mysql_fetch_array( $eredmeny ) )
{
print "<td><center>".$egy_sor["cim"]."<br><img src='".$egy_sor["borito"]."'></center></td>\n";
}
print "</tr>\n";
print "</table>\n";
Hogy tudnám azt megoldani, hogy csak az utolsó x (mondjuk 7) rekordot kérdezzem le?
■ Egy adatbázisban van x adat, amit azzel a kóddal kérdezek le:
$eredmeny = mysql_query( "SELECT * FROM $adatbazis");
print "<table border=1>\n";
print "<tr>\n";
while ( $egy_sor = mysql_fetch_array( $eredmeny ) )
{
print "<td><center>".$egy_sor["cim"]."<br><img src='".$egy_sor["borito"]."'></center></td>\n";
}
print "</tr>\n";
print "</table>\n";
Hogy tudnám azt megoldani, hogy csak az utolsó x (mondjuk 7) rekordot kérdezzem le?
utolsok
ORDER BY
klauzula. Bár eleinte ez nem tűnik fel - főleg egyszerű lekérdezések esetén -, az SQL lekérdezések végeredményében a rekordok sorrendje tetszőleges lehet, ha nem használunk rendezési feltételt.Ha legutolsó 7-et akarod, akkor célszerű fordított sorrendben rendezni az adatokat (
DESC
kulcsszó a rendezés alapjául szolgáló mező neve után), és így a legelső 7-et lekérni:Te ez nagyon jó! Kösz
Lenne még1 kérdésem:
Amit elsőnek betettem kódot, az kilistázza szépen új cellába az adatokat, de több 1000 adatnál már ez nem fog működni. Hogy tudnám megcsinálni, hogy a ciklus 7 rekordonként új sor kezdjen a táblázatban?
Ez már PHP
Örök hála.
Megcsináltam ezzel, de így
Itt a kód:
A for ciklust a while ciklus
Aha. Köszi.
Üres sor
print "</tr>\n<tr>\n";
}
}
print "</tr>\n";
...
Nem próbáltam ki a kódot élesben, de sztem ezzel a megoldással előfordulhat, hogy a lekérdezés végén lesz egy üres <tr></tr> , ami mondjuk enni nem kér - de mégis... Aztán az is lehet, hogy tévedek...
P][G
nem megy :(
doksi
Maat
Ez ilyen 1xű?Pedig már
Pedig már írtam egy ilyen kódot:
$cim1_p = mysql_query("SELECT cim FROM $adatbazis WHERE azonosito = 1");
$cim1= mysql_fetch_row ($cim1_p);
$cim2_p = mysql_query("SELECT cim FROM $adatbazis WHERE azonosito = 2");
$cim2= mysql_fetch_row ($cim2_p);
$cim3_p = mysql_query("SELECT cim FROM $adatbazis WHERE azonosito = 3");
$cim3= mysql_fetch_row ($cim3_p);
$cim4_p = mysql_query("SELECT cim FROM $adatbazis WHERE azonosito = 4");
$cim4= mysql_fetch_row ($cim4_p);
$cim5_p = mysql_query("SELECT cim FROM $adatbazis WHERE azonosito = 5");
$cim5= mysql_fetch_row ($cim5_p);
foreach ( $cim1 as $mezo1 )
foreach ( $cim2 as $mezo2 )
foreach ( $cim3 as $mezo3 )
foreach ( $cim4 as $mezo4 )
foreach ( $cim5 as $mezo5 )
print "<table border=1>\n";
print "<tr>\n";
print "<td><center>$mezo1</center></td>\n";
print "<td><center>$mezo2</center></td>\n";
print "<td><center>$mezo3</center></td>\n";
print "<td><center>$mezo4</center></td>\n";
print "<td><center>$mezo5</center></td>\n";
print "</tr>\n";
print "</table>\n";
Még 1 kérdés:Minden php
Minden php fájlban, amiben mysql-hez kapcsolódok, benne van a kövtkező pár sor:
$felhasznalo = "root"; //mySQL felhasználó
$jelszo = ""; //mySQL jelszó
$adatbazis = "video"; //mySQL adatbázis neve
$hoszt = "localhost"; //mySQL szerver
Ezt nem lehetne úgy megoldani, hogy egy egy külön - mondjuk sql.php - fájlba teszem, sé a többi helyen csak hivatkozok rá?
include
include('sql.php');
Egyébként ha ennyire nem vagy tisztában a php és a mysql legalapvetőbb kérdéseivel, akkor mindenképpen hasznos lenne a dokumentációkat forgatnod.
Gyulus
1 hete kezdtem. És amúgy
Sorry, hogy kérdeztem
Sorry?
Az, hogy ilyesmi választ kapsz, azt jelenti, hogy olyasmit kérdeztél, amit csekély utánaolvasással magad is megválaszolhattál volna.
Gyulus
Olvason szépen sorban a
hehe
P][G
Egy tábla x sorát ($id)
POST, GET
Ha a 24 órás könyvet olvasod, akkor biztos hogy találkoznod kell lassan olyanokkal hogy $HTTP_POST_VARS, és $HTTP_GET_VARS (9. óra, 155p.)
Ezek helyett, mondjuk már $_POST, $_GET -et illik használni.
POST egyszerűbben
extract
parancsot szoktam használni:Pl.:
Ha a $_POST elemei pl.: $_POST['cim'], $_POST['kategoria'],$_POST['leiras'], akkor a fenti parancs létrehozza a $dvd_cim, $dvd_kategoria, $dvd_leiras változókat, melyeket a későbbiekben valamivel egyszerűbb begépelgetni.
Pesze működik a $_GET illetve bármilyen tömb esetében.
Figyelem: az aláhúzás jelet (_) az extract függvény "magától" adja a változó nevéhez, ha vmilyen PREFIX-et használunk!
Bővebb info: http://hu.php.net/manual/en/function.extract.php
Sziasztok:
P][G
HTML Editor
(És akkor a textarea tartalmát kimenteném egy fájlba php-vel, és egy másik oldaon ki tudom majd listázni)
Tudunk :)
Sziasztok!
Hogyan lehet egy hosszab szövegből mondjuk csak az első 50 karaktert lekérdezni? Mert nem szeretném hogy az összes szöveg megjelenjen a cikkből, csak a továbbkattintás után.
substring
SELECT SUBSTRING(mezo,0,50) FROM tabla
de jobb ha inkább egész szavakat irsz ki:
SELECT SUBSTRING_INDEX(mezo,' ',20) FROM tabla
és mégjobb ha mondatot :) (space helyett '.' legyen a második paraméter)
Ez mind szép és jó. Meg
Így néz ki a kiválasztásom:
SELECT SUBSTRING( text , 0 , 50 ) FROM 'news'
megvan
Na így már működik.
Na jó, ezt már nem
$tabla=mysql_query("SELECT n_id, title, time, SUBSTRING( text, 1, 50 ) FROM `news`");
while ($adat=mysql_fetch_object($tabla)) {
echo('
<tr>
<td class="update">'.$adat->time.'</td>
<td class="update">'.$adat->title.'</td>
<td class="update">'.$adat->text.'...</td>
<td class="update"><a href="/update.php?id='.$adat->n_id.'">Módosít</a></td>
</tr>
');
}
echo '</table>';
A text mező tartalmát még mindig nem kapom vissza. Pedig elvileg már jól van megírva.
mo
Na így már jó.
php mysql
"select * from table where name='$name' LIMIT 0,1"
az első oldalt még ki is hozza de mihent lapozni akarok már nem érti a $name -t és elszáll.
ha valaki tudna segíteni írjon pls vagy itt vagy emailben peter.csanyi21[kukac]gmail
konkrétumok?