Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
turnamo
Threadersteller
Dabei seit: 30.10.2007
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 05.02.2008 11:11
Titel PHP Null Durchblick |
|
|
Hey Leute,
ich habe ein riesen Problem. Es ist ein stupides Beispiel. Es wurde eine Datenbank mit mehreren Datensätzen angelegt. Der Benutzer soll im Frontend immer nur einen Datensatz davon (Eine Zeile) sehen. Weitere soll er mit Pfeiltasten einsehen können. Soll eine einfache Übung für mich sein und ich schaffe keinen Ansatz. Das Ergebnis soll eine Extension für Typo3 sein.
Das hier habe ich bis jetzt (Nur Ausgabe):
Code: | function bookshelf() {
$select_fields='*';
$from_table = 'tx_bookshelf_rack';
$where_clause="1 = 1 ";
$groupBy='';
$limit='9999';
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy,$limit);
while ($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$Output.= $row['book_title']." \n";
$Output.= $row['author']." \n";
$Output.= $row['isbn']." \n";
$Output.= $row['place']." <br /> \n";
}
return $Output;
} |
Wäre schön, wenn mir jemand erklären könnte, wie ich sowas programmieren könnte. Beispielprogrammcode wäre auch hilfreich. Tipps erwünscht!
Vielen Dank!
Zuletzt bearbeitet von turnamo am Di 05.02.2008 11:13, insgesamt 1-mal bearbeitet
|
|
|
|
|
Snifferdog
Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht:
|
Verfasst Di 05.02.2008 13:01
Titel
|
|
|
Hey ... ich bin mir nicht sicher ob ich dich ganz richtig verstanden habe ...
falls ja .. wie wäre es denn mit JavaScript ein OnKey Event zu erstellen und damit jeweils die
Seite quasi neu zu laden allerdings per GET eine Variable jeweils um 1 zu erhöht oder verkleinert
zu übergeben.
Code: |
<!--
function changepage(){
var down = window.event.keyCode;
if(druck == 75){location.href="seite.php?start=1&limit=1"}
if(druck == 77){location.href="seite.php?start=3&limit=1"}
}
//-->
</script>
|
Start gibt dann an wo mit der Suche begonnen werden soll
und Limit begrenzt auf 1 Datensatz.
Und das Script würde dann immer nur den Datensatz auslesen den du brauchst bzw der angezeigt werden soll.
Gruß
PS: Konntes jetzt leider nicht testen da ich hier in der Schule sitze.
|
|
|
|
|
Anzeige
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 05.02.2008 13:09
Titel
|
|
|
Snifferdog hat geschrieben: | PS: Konntes jetzt leider nicht testen da ich hier in der Schule sitze. |
Ja und so wird es auch nicht funktionieren. "druck" wird nirgends deklariert und sowieso wird
es so nicht funktionieren.
Zuletzt bearbeitet von m am Di 05.02.2008 13:12, insgesamt 1-mal bearbeitet
|
|
|
|
|
turnamo
Threadersteller
Dabei seit: 30.10.2007
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 05.02.2008 14:23
Titel
|
|
|
Das Problem soll mit PHP gelöst werden.
vielleicht helfen die Begriffe pi_getLL, pi_linkTP_keepPIvars und substituteMarkerArrayCached.
Ich bin nun hier:
Code: | function main($content,$conf) {
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
$this->templateCode = $this->cObj->fileResource($this->conf['templateFile']);
$this->bookshelf = $this->cObj->getSubpart($this->templateCode, "###CONTENT###");
$content.= $this->bookshelf();
return $this->pi_wrapInBaseClass($content);
}
/********************************************************
bookshelf()
Displays books of the shelf
********************************************************/
function bookshelf() {
$select_fields='*';
$from_table = 'tx_bookshelf_rack';
$where_clause="1 = 1 ";
$groupBy='';
$limit='9999';
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy,$limit);
$row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
$next_button=$this->pi_getLL($next);
$prev_button=$this->pi_getLL($last);
$overrulePIvars['next']['id']=$row['uid'];
$marker['###NEXT_BUTTON###']=$this->pi_linkTP_keepPIvars($next_button,$overrulePIvars,$cache=0,$clearAnyway=0,$altPageId=0);
unset($overrulePIvars);
$overrulePIvars['last']['id']=$row['uid'];
$marker['###PREV_BUTTON###']=$this->pi_linkTP_keepPIvars($prev_button,$overrulePIvars,$cache=0,$clearAnyway=0,$altPageId=0);
unset($overrulePIvars);
$Output.= $row['book_title']." \n";
$Output.= $row['author']." \n";
$Output.= $row['isbn']." \n";
$Output.= $row['place']." <br /> \n";
$content.=$this->cObj->substituteMarkerArrayCached($this->bookshelf,$marker,array(),array());
return $Output;
return $content;
}
} |
Vielleicht hilft das ja, um zu wissen, worauf ich hinaus will.
Zuletzt bearbeitet von turnamo am Di 05.02.2008 14:28, insgesamt 1-mal bearbeitet
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Di 05.02.2008 14:25
Titel
|
|
|
dann schmeiss ich mal ein paar worte zum googeln in den raum: limit, offset, blätterskript
Zuletzt bearbeitet von Pixelpole am Di 05.02.2008 14:26, insgesamt 1-mal bearbeitet
|
|
|
|
|
Snifferdog
Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht:
|
Verfasst Di 05.02.2008 15:26
Titel
|
|
|
m hat geschrieben: | Snifferdog hat geschrieben: | PS: Konntes jetzt leider nicht testen da ich hier in der Schule sitze. |
Ja und so wird es auch nicht funktionieren. "druck" wird nirgends deklariert und sowieso wird
es so nicht funktionieren. |
Oh, druck sollte natürlich durch down ersetzt werden .. sorry ... hatte es aus nem alten Script von mir rausgesucht und dann wohl übersehen.
turnamo hat geschrieben: |
Das Problem soll mit PHP gelöst werden.
|
Wenn es ausschließlich mit PHP gelöst werden soll, dann ist es meines Wissens nach aber nicht möglich per
Pfeiltasten quasi "weiter zu zappen". Man möge mich korrigieren ^^
turnamo hat geschrieben: |
dann schmeiss ich mal ein paar worte zum googeln in den raum: limit, offset, blätterskript
|
Wäre ja das was ich oben auch versucht hatte zu erklären ^^ Nur eben ohne Pfeiltasten
Gruß
|
|
|
|
|
turnamo
Threadersteller
Dabei seit: 30.10.2007
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 06.02.2008 08:34
Titel
|
|
|
Mit Typo3 und einer locallang.xml geht es !
In der locallang.xml werden Keys angegeben, die über die in der Class einem im HTML Template befindlichen Marker zugewiesen wird.
Der Code in der class sieht dann so aus:
Code: | $next_button=$this->pi_getLL("next");
$prev_button=$this->pi_getLL("last");
$marker['###NEXT_BUTTON###']=$this->pi_linkTP_keepPIvars($next_button,$overrulePIvars,$cache=0,$clearAnyway=0,$altPageId=0);
$marker['###PREV_BUTTON###']=$this->pi_linkTP_keepPIvars($prev_button,$overrulePIvars,$cache=0,$clearAnyway=0,$altPageId=0); |
So, ich hab nun die Links über die Stings bekommen, aber irgendwie funktionieren Sie noch nicht. Gibts hier wirklich niemanden, der sich damit auskennt oder sowas schonmal gemacht hat?
|
|
|
|
|
|
|
|
Ähnliche Themen |
swf to fla Konverter für null Mark
MySQL: time auf NULL setzen
Programmieren lernen - Anfang bei Null
Navigation mit Pfeiltasten: is null Fehler und Exception
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|