Mit PHP CSV auslesen und als Tabelle ausgeben mit Blättern und suchfunktion
Hallo
Ich habe eine HTML Seite die an sich schon funktioniert aber die Einbindung einer CSV Datei mit einer Songliste a 3 Spalten (etwa 40000 Songs) bekomme ich nicht hin. Ich kann die Daten anzeigen aber nicht blättern oder suchen. Hat jemand PHP beispiele oder einen PHP Script der die Verbindung und Darstellung zu diesem herstellt. Und wenn möglich auch "stylebar".
Der HTML Code der Seite sieht so aus und sollte funktionieren. Die Datenübernahme und Ansteuerung der PHP übernimmt hier der Javascript.
Ich habe eine HTML Seite die an sich schon funktioniert aber die Einbindung einer CSV Datei mit einer Songliste a 3 Spalten (etwa 40000 Songs) bekomme ich nicht hin. Ich kann die Daten anzeigen aber nicht blättern oder suchen. Hat jemand PHP beispiele oder einen PHP Script der die Verbindung und Darstellung zu diesem herstellt. Und wenn möglich auch "stylebar".
Der HTML Code der Seite sieht so aus und sollte funktionieren. Die Datenübernahme und Ansteuerung der PHP übernimmt hier der Javascript.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width = 320" />
<title>Songbook</title>
<LINK REL="SHORTCUT ICON" HREF="favicon.ico" />
<link rel="stylesheet" type="text/css" href="style.css" media="all and (min-width:750px)"/>
<link rel="stylesheet" type="text/css" href="style_mobile.css" media="all and (max-width: 750px)"/>
<script>
function checkEntries(page){
var xmlhttp;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("songList").innerHTML=xmlhttp.responseText;
}
}
query="title=" + document.getElementById("title").value + "&artist=" + escape(document.getElementById("artist").value) + "&lang="+ escape(document.getElementById("lang").value) + "&page=" + page;
xmlhttp.open("POST","ajax_song_result.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(query);
fade();
}
function searchArtist(artist){
document.getElementById("artist").value=artist;
document.getElementById("title").value='';
document.getElementById("lang").selectedIndex=0;
checkEntries(1);
}
function reset(obj) {
document.getElementById(obj).value='';
checkEntries(1);
}
function fade(){
var objs = document.getElementById("results").style;
objs.opacity = (0.1);
objs.MozOpacity = (0.1);
objs.KhtmlOpacity = (0.1);
objs.filter = "alpha(opacity=100)";
}
</script>
<style type="text/css">
.auto-style1 {
font-size: large;
}
.auto-style2 {
font-size: x-large;
}
.auto-style3 {
font-size: xx-large;
}
.auto-style4 {
margin-top: 12px;
}
.auto-style7 {
font-size: 36pt;
}
.auto-style8 {
margin-top: 0px;
}
.auto-style10 {
margin-left: 1px;
}
.auto-style11 {
margin-left: 2px;
}
.auto-style12 {
margin-top: 57px;
}
</style>
</head>
<body onload="javascript:checkEntries(1)" style="background-color: #009900">
<div class="bg">
<div class="auto-style8" style="height: 87px">
<strong><span class="auto-style3"> </span><div id="layer1" style="position: absolute; width: 239px; height: 59px; z-index: 1; left: 12px; top: 21px">
<strong>
<span class="auto-style7">Songbook<br><br></span></strong></div>
</strong><div class="auto-style12" style="height: 93px">
<span class="auto-style2">
Language</span><span class="auto-style1"> </span> <select onchange="checkEntries()" id="lang" size="1" style="height: 23px; width: 88px;" name="D1" class="auto-style10">
<option selected value="All">All</option">
<option value="German">german</option>
<option value="English">english</option>
<option value="Italian">italian</option>
</select> <span class="auto-style1">
</span><span class="auto-style2">
<br>Artist</span><span class="auto-style1">
</span>
<input type="text" onkeyup="checkEntries()" id="artist" style="height: 23px">
<img src="images/pass.png" onClick="javascript:reset('artist');" height="22" width="23"> <span class="auto-style1"> </span><span class="auto-style2">
<br>Title </span><input type="text" onkeyup="checkEntries()" id="title" style="height: 24px" class="auto-style11">
<img src="images/hover.png" onClick="javascript:reset('title');" height="23" width="21" class="auto-style10"><strong><span class="auto-style3">
</span></strong></div>
<div id="songList">
<h2 class="auto-style4"> </h2>
<h2 class="auto-style4">Start typing...</h2></div>
</div>
</div>
</body>
</html>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 203831
Url: https://administrator.de/forum/mit-php-csv-auslesen-und-als-tabelle-ausgeben-mit-blaettern-und-suchfunktion-203831.html
Ausgedruckt am: 04.04.2025 um 12:04 Uhr
7 Kommentare
Neuester Kommentar
Du kannst doch ohne jede Probleme mit PHP CSV auslesen und dann z.B. als HTML abspeichern. Ich würde dir empfehlen einen Cronjob zu machen, der die Datei zweimal am Tag neu generiert. jQuery ist viel zu langsam für solche Anwendungen.
Die Datenbanklösung wäre von der Performance her am besten, lohnt aber nur bei relativ vielen Aktualisierungen.
Die Datenbanklösung wäre von der Performance her am besten, lohnt aber nur bei relativ vielen Aktualisierungen.
Ich weiß ehrlich gesagt nicht was du willst.
Du hast eine CSV Datei mit 40000 Zeilen. Du hast gerade selbst gesagt, dass es mit Javascript langsam läuft. Lass die Finger von Ajax. Setz dich hin und code dir ein PHP Skript, welches die Ausgabe macht. Das ist ein 5-Zeiler! PHP bringt selbst Funktionen mit, die das Auslesen machen. Die Ausgabe machst du mit einer Tabelle oder mit dl.
Wenn du wenig Erfahrung hast, lasse doch bitte die Finger von Plugins oder Frameworks, deren Arbeitsweise du nicht verstehst. Da ist der Lerneffekt nämlich gering.
P.S. Inline Styles sind Mist.
Du hast eine CSV Datei mit 40000 Zeilen. Du hast gerade selbst gesagt, dass es mit Javascript langsam läuft. Lass die Finger von Ajax. Setz dich hin und code dir ein PHP Skript, welches die Ausgabe macht. Das ist ein 5-Zeiler! PHP bringt selbst Funktionen mit, die das Auslesen machen. Die Ausgabe machst du mit einer Tabelle oder mit dl.
Wenn du wenig Erfahrung hast, lasse doch bitte die Finger von Plugins oder Frameworks, deren Arbeitsweise du nicht verstehst. Da ist der Lerneffekt nämlich gering.
P.S. Inline Styles sind Mist.
Mir war allerdings nicht klar, dass du eine Suchfunktion hast. Wenn das so ist, dann wäre eine Datenbank eine erheblich bessere Lösung als ne CSV. Kannst dir ja nen Cronjob schreiben, der die Daten in der DB ggfs. aktualisiert. Wie man eine Suche mit CSV effizient realisieren könnte, wüßte ich jetzt echt nicht.
Die Suche (und nur die) machst du mit Ajax/JSON. Dann brauchst du nur ein wenig JS, welches das Suchergebnis aktualisiert. Suchen solltest du ab 3 eingetippten Zeichen.
Die Suche (und nur die) machst du mit Ajax/JSON. Dann brauchst du nur ein wenig JS, welches das Suchergebnis aktualisiert. Suchen solltest du ab 3 eingetippten Zeichen.