ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
1124
1124
EMPFEHLEN
-
Hallo ich habe folgendes Problem. Ich habe schon mir die Finger wund gegoogelt aber nichts gefunden was mir weiterhilft.
Überall wo ich lese sind Beispiele mit mysql Datenbanken.
Also mein Problem wie folgt:
Ich möchte eine bestimmte Anzahl von Daten aus einer .csv Datei in php importieren und anzeigen lassen (Anzahl= 3 pro Seite).
Ich habe mir ein script gebastelt was einigermaßen gut funktioniert. Es werden jedoch alle "gewünschten" Daten angezeigt.
Ich möchte jedoch nicht alle daten anzeigen lassen sondern nur 3 pro Seite, wo man alle anderen Seiten blättern kann.
Es werden jedoch alle Daten angezeigt . So sieht das ganze aus:
PHP-Code:<?php
// Welche Felder ausgegeben werden sollen...
$wantedCells[] = "Hersteller";
$wantedCells[] = "Herst.-Artikelnummer";
$wantedCells[] = "Artikelbeschreibung";
$dataperpage = 3;
$cellFormat["Hersteller"] = "<b>##text##</b><br>";
$row = 1; // Anzahl der Arrays
$handle = fopen ("produkte.csv","r"); // Datei zum Lesen öffnen
// Die erste Zeile mit den Spaltennamen auslesen
$data = fgetcsv ($handle, 1000, ";");
if(is_array($data)) {
foreach($data AS $cellNr => $cellName) {
$cellNamesArray[$cellNr] = $cellName;
}
}
while ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ) { // Daten werden aus der Datei
// in ein Array $data gelesen
$num = count ($data); // Felder im Array $data
// werden gezählt
$maxpage = ceil($num / $dataperpage); // Summe aller Seiten berechnen
$itemfrom = ($pagenum-1) * $dataperpage;
print "<hr><br>";
$row++; // Anzahl der Arrays wird
// inkrementiert
for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder des Arrays auszugeben
// Es werden nur die Felder ausgegeben die im Array $wantedCells steht...
if(in_array($cellNamesArray[$c], $wantedCells)) {
if($cellFormat[$cellNamesArray[$c]]) print str_replace("##text##", $data[$c], $cellFormat[$cellNamesArray[$c]]);
else print $data[$c] . "<br><br>";
}
}
}
fclose ($handle);
if ($_GET['page'] != "") $page = $_GET['page'];
else $page = 1;
require_once('numlinkfunctions.php');
numlinks($page, 25, 11, '', 'demoparam=useless');
?>
numlinkfunctions.php
Ich würde mich sehr freuen wenn Ihr mir weiterhelfen könnt.PHP-Code:<?php
/* Function numlinks
* Description: This function displays a page enumeration as you know it from google results
*
* Parameters: $pagenum -> Number of the current page
* $maxpage -> Number of all pages
* $pages_visible -> Maximum number of pages to be displayed (usually a odd number)
* $scriptname -> Optional - File to which a number links
* $get -> Optional - to deliver custom GET parameters (e.g. foo=bar&email=bla@hotmail.com)
* Return Value: NONE
*/
function numlinks($pagenum, $maxpage, $pages_visible, $scriptname="", $get="") {
echo '<table border="0" cellspacing="0" cellpadding="0" class="t-border"><tr>';
if ($pagenum > 1) {
echo '<td class="td-border"><a href="'.page_name(1, $scriptname, $get).'" class="numlinks">«</a></td>'; // first page
echo '<td class="td-border"><a href="'.page_name(($pagenum-1), $scriptname, $get).'" class="numlinks">Previous</a></td>'; // prev page
} else {
echo '<td class="td-border numlinks-inactive">«</td>'; // first page
echo '<td class="td-border numlinks-inactive">Previous</td>'; // prev page
}
$i=1;
while ($i <= $pages_visible){
if ($pagenum-ceil($pages_visible/2) < 0) { //wenn unterer Bereich
if ($i == $pagenum) echo '<td class="td-border numhighlight">'.($pagenum).'</td>';
else echo '<td class="td-border"><a href="'.page_name($i, $scriptname, $get).'" class="numlinks">'.($i).'</a></td>';
} else if ($pagenum+floor($pages_visible/2) > $maxpage) { // wenn oberer bereich
if($maxpage > $pages_visible) $j = $maxpage-$pages_visible+$i;
else $j = $i;
if ($j == $pagenum) echo '<td class="td-border numhighlight">'.($pagenum).'</td>';
else echo '<td class="td-border"><a href="'.page_name($j, $scriptname, $get).'" class="numlinks">'.$j.'</a></td>';
} else { // wenn mittlerer bereich
if ($i == ceil($pages_visible/2)) echo '<td class="td-border numhighlight">'.($pagenum).'</td>';
else {
$j = $pagenum-ceil($pages_visible/2)+$i;
echo '<td class="td-border"><a href="'.page_name($j, $scriptname, $get).'" class="numlinks">'.$j.'</a></td>';
}
}
if ($i == $maxpage) break;
$i++;
}
if ($pagenum < $maxpage){
echo '<td class="td-border"><a href="'.page_name(($pagenum+1), $scriptname, $get).'" class="numlinks">Next</a></td>'; // next page
echo '<td class="td-border"><a href="'.page_name($maxpage, $scriptname, $get).'" class="numlinks">»</a></td>'; // last page
} else {
echo '<td class="td-border numlinks-inactive">Next</td>'; // first page
echo '<td class="td-border numlinks-inactive">»</td>'; // prev page
}
echo '</tr></table>';
}
function page_name($nr, $scriptname, $get="") {
$scriptname.='?page='.$nr;
if ($get != '') $scriptname.='&'.$get;
return $scriptname;
}
?>
-
Ne Idee:
Also ich blick in deinem Skript nicht ganz durch, aber prinzipiell würd ich es mit Hilfe der Schleifenvariable in der Ausgabe-Schleife lösen.
Grüße, FrezlPHP-Code:
<?php
// [...]
$dataperpage = 3;
$firstonpage = trim(htmlspecialchars($_GET['firstonpage'])); // hier kannst du auch etwas sauberer darauf prüfen, ob $firstonpage numerischen Inhalt hat
for($i = $firstonpage; $i < $firstonpage+$dataperpage; $i++) {
// Ausgabe
echo $deinarray[$i];
}
echo '<a href="'.$PHP_SELF.'?firstonpage='.$firstonpage+$dataperpage.'">nächste Seite</a>';
// [...]
?>Geändert von Frezl (25.02.10 um 22:22 Uhr)
Wenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!
-
öhm, du willst nur die ersten 3 Zeilen?
Warum liest du alle ein?
Wie wäre es mitPHP-Code:while ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ){
...
}
PHP-Code:$data = fgetcsv ($handle, 1000, ";"));
for ($i=0; $i<3; $i++){
...
$data = fgetcsv ($handle, 1000, ";"));
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Nein ich will nicht nur die ersten drei Zeilen .... also nochmal von Anfang ich glaube ich habe mich nicht verständlich genug ausgedrückt :
Mein Ziel ist es zwar alle Zeilen aus der .csv Datei einzulesen jedoch nur 3 Zeilen pro Seite anzeigen zu lassen.
Alle anderen Zeilen sollen auf weiteren Seiten verteilt werden. Also immer wieder 3 pro Seite. Ich möchte diesen "Blättereffekt" haben.
Soll jetzt keine aufwendige Javascript Effekt sein denn dazu habe ich die vorgefertigte numlinkfunctions.php (Eine schöne Pagebar) die ich lediglich in funktion bringen will. Diese wird wie schon im Ausgangsscript zu sehen durch require_once('numlinkfunctions.php'); eingebunden.
Diese Pagebar soll in Verbindung mit meinen Datensätzen aus der .csv Datei funktionieren, das ist alles. Aber ich bekomme es nicht hin. Ich muss allerdings dazu sagen, dass ich ein "fortgeschrittener" Anfänger bin was php angeht. Ich verstehe viele Zusammenhänge und bin fleißig am lernen jedoch versteh ich nicht alles. Kurz gesagt ich bin kein Profi in diesem Gebiet. Deswegen wäre ich euch sehr verbunden wenn mir jemand sagen kann wie ich die numlinkfunctions.php zum laufen bekomme.
Geändert von Willi42 (26.02.10 um 12:43 Uhr)
-
Ah, sowas
http://wiki.yaslaw.info/wikka/PhpJumpNavigator
Und hier als Demo
http://yaslaw.info/example/navigator.php
Du musst nur noch das ganze verknüpfen....---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Ich werde mal schauen wie ich das ganze verknüpfen kann. Danke erstmal für die Hilfe.
Geändert von Willi42 (27.02.10 um 00:58 Uhr)
Ähnliche Themen
-
Viele Tipps: 5 pro Seite anzeigen und unten Seitenzahlen zum Blättern
Von Dustin84 im Forum PHPAntworten: 5Letzter Beitrag: 21.08.09, 13:15 -
nur bestimmte daten herausfiltern und anzeigen
Von Compane im Forum XML TechnologienAntworten: 19Letzter Beitrag: 14.07.08, 19:04 -
Bestimmte Seite je nach Anzahl der ausgewählten Radio-Buttons anzeigen?!
Von altox-de im Forum PHPAntworten: 22Letzter Beitrag: 08.05.06, 15:29 -
Nur bestimmte Datei-Formen in Filelistbox anzeigen[VB6]
Von Aarisch im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 02.07.03, 21:53 -
Nur bestimmte Daten anzeigen
Von Soccertipp im Forum PHPAntworten: 1Letzter Beitrag: 18.08.02, 03:36





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren