ugrás a tartalomhoz

Keresés - Találatok kilistázása

fmateka · 2011. Jún. 9. (Cs), 18.36
Sziasztok!
Volna egy problémám. Van egy weboldal, amin lehetősége van a látogatóknak nyelvtan szabályok, irodalmi fogalmak között keresni. (Erről a weboldalról lenne szó) A találatok kilistázását így oldottam meg:

// ELSŐ OLDAL
if (($_GET['oldal'] == "") || ($_GET['oldal'] == "1")) {
	$elso_sql = "SELECT * FROM tartalmak WHERE tartalom LIKE '%{$_GET[kif]}%' LIMIT 0,6";
	$elso_eredm = mysql_query($elso_sql,$ossz) or die(mysql_error());
	while ($list = mysql_fetch_array($elso_eredm)) {
	    $talalatok .= "<tr><td id='myObject".$list['id']."' valign='top'>".$list['tartalom']."</td></tr>";
	}
	$talalatok .= "</table>";
}
Ez csak az első oldal, a többi oldalt ugyanígy oldottam meg, csak persze apró eltérések a számoknál... Tulajdonképpen működik a dolog, csak nem túl praktikus. Tud valaki valamilyen egyszerűbb megoldást erre?
 
1

Ilyesmi

Poetro · 2011. Jún. 9. (Cs), 18.50
<table>
  <tbody>

<?php
$oldal = max(1, isset($_GET['oldal']) ? intval($_GET['oldal']) : 1);
$sql = sprintf(
  "SELECT * FROM tartalmak WHERE tartalom LIKE '%%%s%%' LIMIT %d, 6",
  mysql_real_escape_string($_GET['kif']), ($oldal - 1) * 6
);
$eredm = mysql_query($sql);
while ($list = mysql_fetch_array($eredm)):
?>

    <tr>
      <td id="myObject<?php echo $list['id'] ?>" valign="top">
        <?php echo $list['tartalom']; ?>
      </td>
    </tr>

<?php endwhile; ?>
  </tbody>
</table>
2

Nem működik

fmateka · 2011. Jún. 9. (Cs), 19.01
Még most sem működik sajnos. A max() függvényt és a mysql_real_escape_string() függvényt nem ismerem. Mit is csinálnak?

Biztos jó amit írtál, csak az én tudásom nem elég jó hozzá...
3

Elolvasod

Poetro · 2011. Jún. 9. (Cs), 19.10
Gondolom nem esik nehezedre elolvasni, mit csinál a max, és a mysql_real_escape_string.
Olyat pedig nem írunk egy szakmai fórumon, hogy nem működik. Kötelező olvasmány: Hogyan kérdezzünk okosan.
4

Igaz

fmateka · 2011. Jún. 9. (Cs), 19.25
Igazad van. Megpróbálom bővebben kifejteni: kilistázza a találatokat, csak nem oldalszámhoz mérten. Kicsit átszabtam, most így néz ki:
<?php  
$tartalom = "<table>";
$oldal = max(1, isset($_GET['oldal']) ? intval($_GET['oldal']) : 1);  
$sql = sprintf(  
  "SELECT * FROM tartalmak WHERE tartalom LIKE '%%%s%%' LIMIT %d",  
  mysql_real_escape_string($_GET['kif']), ($oldal - 1) * 6  
);  
$eredm = mysql_query($sql);  
while ($list = mysql_fetch_array($eredm)) {
  $tartalom .= "
    <tr>  
      <td id='myObject".$list['id']."' valign='top'>  
        ".$list['tartalom']."
      </td>  
    </tr>";  
}
$tartalom .= "</table>";
print $tartalom;
?>
És ha az oldal értékét 1-nél nagyobbra írom át és úgy próbálom meg, akkor sem csinál semmit azon kívül, hogy visszaugrik arra az URL-re, aminek az oldal értéke egy.

Amúgy köszi szépen az eddigi segítségeid! :)
5

Visszaugrik?

Poetro · 2011. Jún. 9. (Cs), 19.36
A fenti kódban semmi féle visszaugrás nincsen, úgyhogy az a kódod valamely más részében lesz.