gleich 2 fragen ;-)

helicobacter

Grünschnabel
hallo zusammen,

ich probiere mich gerade im php + mysql und stosse derzeit an meine grenzen.

problem 1: ich möchte gern 10 datensätze auslesen & den rest durch vor oder zurück erreichen können, nur wie macht man des?

problem 2: wie kann ich datensätze in 2 spalten anzeigen? was natürlich die frage 1 mit einbezieht ;-) also ne tabelle 2x5


---- snip ---------


<table cellpadding="1" cellspacing="3" border="1">

<tr>

<td>aaaa</td>

<td>bbbb</td>

<td>ccccc</td>

<td>ddddd</td>

</tr>



<?php

while ($adr = mysql_fetch_array($adressen_query)){

?>

<tr>

<td><?=$adr['ID']?></td>

<td><?=$adr['Title']?></td>

<td><img src="<?=$adr['Img_url']?>" alt=""><b>nur&nbsp;<?=$adr['Display']?><p><?=$adr['Short']?></td>

</tr>

<?php

}

?>

----------------------------------------------

viele grüße

heli


</table>
 
Eventuell kann dir das weiterhelfen. Ich habe den Code aus einem anderen Tool, welches genau diese Pagefunktion hat.

PHP:
function draw_pagenumbers($startpage,$entries,$entries_per_page,$page_uri,$varname) {
	$startpage = intval($startpage);
	$entries   = intval($entries);

	if ($entries_per_page <= 0) $entries_per_page = 25;

	$last = $entries % $entries_per_page;
	$max_page =  (int)($entries / $entries_per_page);
	if ($last > 0) $max_page++;	 // max. Anzahl von Seiten
	$prepages = $startpage-1;
	if ($prepages > 5) $prepages = 5;
	$followpages = 10-1-$prepages;
	if ($followpages > 9) $followpages = 9;
	if (($followpages + $startpage) > $max_page) $followpages = $max_page - $startpage;
	if (($prepages + $followpages + 1) < $max_page) $prepages = 10 - $followpages - 1;
	if ($prepages >= $startpage) $prepages = $startpage - 1; // neu

	$endpage = $startpage+$followpages;
	$urlbind = strpos($page_uri,"?"); // Schauen ob schon Variablen angeh�ngt sind
	if ($urlbind === FALSE) {
		$urlbind = "?";
	} else {
		$urlbind = "&amp;";
	}
	// pagelink generieren
	$page_uri  = str_replace($urlbind.$varname."=".$startpage,"",$page_uri);

	// < und << davorsetzen
	if ((($startpage - 10) <= 0) && ($startpage > 2)) {
		echo "<a class=\"pagelink\" href=\"".$page_uri.$urlbind.$varname."=1\">&lt;&lt;</a>&nbsp;";
	} elseif ((($startpage - 10) > 0)) {
		echo "<a class=\"pagelink\" href=\"".$page_uri.$urlbind.$varname."=".($startpage-10)."\">&lt;&lt;</a>&nbsp;";
	}
	if ($startpage > 1) {
		echo "<a class=\"pagelink\" href=\"".$page_uri.$urlbind.$varname."=".($startpage-1)."\">&lt;</a>&nbsp;";
	}

	// Seitennummern inkl. pagelink ausgeben
	$pagenumber = $startpage - $prepages;
	while ($pagenumber <= $endpage) {
		if ($pagenumber != $startpage) {
			echo "<a class=\"pagelink\" href=\"".$page_uri.$urlbind.$varname."=".$pagenumber."\">$pagenumber</a>&nbsp;";
		} else {
			echo "<span class=\"currentpage\">".$pagenumber."&nbsp;</span>";
		}
		$pagenumber++;
	}

	// > und >> dahintersetzen
	if ($startpage < $max_page) {
		echo "<a class=\"pagelink\" href=\"".$page_uri.$urlbind.$varname."=".($startpage+1)."\">&gt;</a>&nbsp;";
	}
	if ((($startpage + 10) >= $max_page) && ($startpage+1 < $max_page)) {
		echo "<a class=\"pagelink\" href=\"".$page_uri.$urlbind.$varname."=".$max_page."\">&gt;&gt;</a>&nbsp;";
	} elseif ((($startpage + 10) < $max_page)) {
		echo "<a class=\"pagelink\" href=\"".$page_uri.$urlbind.$varname."=".($startpage+10)."\">&gt;&gt;</a>&nbsp;";
	}


}
 
hab was nettes gefunden....

PHP:
/**
 * Pagination
 *
 * @param   string   $url            URL for HREF attributes in sprintf() format
 * @param   int      $itemCount      number of items
 * @param   int      $itemsPerPage   number of items per page
 * @param   int      $currentPage    number of current page
 * @param   int      $displayRange
 * @return  string                   generated unordered list (UL element)
 */
function generatePagination($url, $itemCount, $itemsPerPage, $currentPage, $displayRange=5)
{
    $pageCount = ceil($itemCount/$itemsPerPage);
    $pagePadding = floor($displayRange/2) >= 1 ? floor($displayRange/2) : 1;

    $retVal = '';

    $retVal .= '<ul id="pagination">';
    $retVal .= '<li id="leader">Seite '.$currentPage.' von '.$pageCount.'</li>';
    if( $currentPage == 1 ) {
        $retVal .= '<li id="first-page">&amp;#8676;&nbsp;erste&nbsp;Seite</li>';
    } else {
        $retVal .= '<li id="first-page"><a href="'.sprintf($url, 1).'">&amp;#8676;&nbsp;erste&nbsp;Seite</a></li>';        
    }
    if( $currentPage - 1 <= 0 ) {
        $retVal .= '<li id="prev-page">&amp;#8592;&nbsp;vorherige&nbsp;Seite</li>';
    } else {
        $retVal .= '<li id="prev-page"><a href="'.sprintf($url, $currentPage-1).'">&amp;#8592;&nbsp;vorherige&nbsp;Seite</a></li>';
    }
    for( $i=1; $i<=$pageCount; $i++ ) {
        if( $i > $displayRange && $i < $currentPage - $pagePadding ) {
            $retVal .= '<li>&hellip;</li>';
            $i = $currentPage - $pagePadding - 1;
            continue;
        }
        if( $i > $currentPage + $pagePadding && $i <= $pageCount - $displayRange ) {
            $retVal .= '<li>&hellip;</li>';
            $i = $pageCount - $displayRange;
            continue;
        }
        if( $currentPage == $i ) {
            $retVal .= '<li id="current-page"><span title="aktuelle Seite">'.$i.'</span></li>';
        } else {
            $retVal .= '<li><a href="'.sprintf($url, $i).'" title="Seite '.$i.'">'.$i.'</a></li>';
        }
    }
    if( $currentPage + 1 > $pageCount ) {
        $retVal .= '<li id="next-page">nächste&nbsp;Seite&nbsp;&amp;#8594;</li>';
    } else {
        $retVal .= '<li id="next-page"><a href="'.sprintf($url, $currentPage+1).'">nächste&nbsp;Seite&nbsp;&amp;#8594;</a></li>';
    }
    if( $currentPage == $pageCount ) {
        $retVal .= '<li id="last-page">letzte&nbsp;Seite&nbsp;&amp;#8677;</li>';
    } else {
        $retVal .= '<li id="last-page"><a href="'.sprintf($url, $pageCount).'">letzte&nbsp;Seite&nbsp;&amp;#8677;</a></li>';
    }
    $retVal .= '</ul>';
    return $retVal;

nur weiss ich nicht genau an welcher stelle ich das einsetzten muss...

PHP:
<font face="Verdana" size="8" color="#000000">
<table bgcolor="#FFFFFF" bordercolorlight="#FFFFFF" style="border-collapse: collapse">

    <tr>

        <td>Artikelnummer</td>

        <td>Kategorie</td>

        <td>Beschreibung</td>

    </tr>



<?php

while ($adr = mysql_fetch_array($adressen_query)){




?>

    <tr>
        <td><?=$adr['ArtNumber']?></td>

        <td><img src="<?=$adr['Img_url']?>" alt=""width=75% height=75%>
        <br>nur&nbsp;<font face="Verdana" color="#FF0000"><b><?=$adr['DisplayPrice']?></font></b></td>

        <td width=350><?=$adr['Description_short']?></td>

    </tr></font>

<?php

}


?>


</table>
 
@Allytools danke für die schnelle antwort, ich werd´s morgen mal testen & berichte dann!!
(jetzt hau ich mich auf die couch ;-) )




jo, den befehl kenn ich... nur wie blättert man zu den nächsten 10 weiter ;-)


Da verstehen über das verwenden von Tools geht ,) hier noch eine antwort darauf..

LIMIT 0,10

0 - Der erste Datensatz der ausgegeben wird, 0 ist der erste
10 - Die anzahl der Datensätze

Daraus ergibt sich:
Seite 1: LIMIT 0,10
Seite 2: LIMIT 10,10
Seite 3: LIMIT 20,10

so blätterst du durch dein Suchergebniss. Nun musst du halt nur Parameter übergebenanhand du die erste Zahl berechnen kannst. z.B. Seite=1 Seite=2 und dann
$seite * 10 - 10

Die 2. Frage die du gestellt hattest war wie du es in 2 Spalten bekommst. Hier die antwort:
Man arbeitet mit dem Modulo Opperator (%), er gibt den Divisionsrest zurück. So findest du heraus ob du am anfang / ende einer Zeile bist, oder ob noch Elemente zu füllen sind.
PHP:
$spalten = 2;
$i = 0;

// Tabelle Zeichnen
while($row=mysql_fetch_assoc()){
  if($i%$spalten==0) echo "<tr>";
  echo "<td>{$row['datenbankfeld']}</td>";
  if($i%$spalten == $spalten-1) echo "</tr>";
  $i++;
}

// Reihe beenden
if($i%$spalten != $spalten -1){
  for(;$i%$spalten!=$spalten-1;$i++){
    echo "<td>&nbsp;</td>";  
  }
  echo "</tr>";
}
 
Zurück