mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 20:42 Benutzername: Passwort: Auto-Login

Thema: PHP Null Durchblick vom 05.02.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP Null Durchblick
Autor Nachricht
turnamo
Threadersteller

Dabei seit: 30.10.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 05.02.2008 11:11
Titel

PHP Null Durchblick

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Snifferdog

Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht: Männlich
Verfasst Di 05.02.2008 13:01
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 05.02.2008 13:09
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
turnamo
Threadersteller

Dabei seit: 30.10.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 05.02.2008 14:23
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Di 05.02.2008 14:25
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Snifferdog

Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht: Männlich
Verfasst Di 05.02.2008 15:26
Titel

Antworten mit Zitat Zum Seitenanfang

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ß
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
turnamo
Threadersteller

Dabei seit: 30.10.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 06.02.2008 08:34
Titel

Antworten mit Zitat Zum Seitenanfang

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?
  View user's profile Private Nachricht senden
 
Ähnliche Themen swf to fla Konverter für null Mark
Programmieren lernen - Anfang bei Null
MySQL: time auf NULL setzen
Navigation mit Pfeiltasten: is null Fehler und Exception
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


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.