ich habe ein programm geschrieben oder bin viel mehr noch dabei, dass über eine datenbank(heidisql) eine adressliste erstellen soll.
ich habe ersteinmal nur vor und nachname erstellt...
das ganze soll in einem table sein, der sich in: vorname nachname editbutton delete button aufteilt.
dies habe ich ohne probleme erstellt. um die edit und delete funktion wollte ich mich nur nicht unterhalten, da ich denke das ich diese auch alleine hinkriege.
noch einiges zum programm ist, dass es oop ist. das heißt, dass ich über ein programm nur funktionenen eines anderen programmes abrufe...sodass falls ich etwas in der tabelle ändere wie beispielsweise vorname geändert werden soll in firstname, ich nur in einem programm eine variable ändere.
soviel zum programm... nun komme ich aber zu meinem problem...ich habe einen button zum sortieren erstellt, hier kann man sowohl vor als auch nachname alphabetisch sortieren. dies ist notwendig damit ich den nächsten teil, und nun kommen wir zum problem, erstellen kann. ich wollte buttons erstellen, mit dem man eine seite weiter blättern kann. dazu muss man natürlich festlegen wie viele daten auf eine seite können. dies habe ich mit 2 weiteren buttons getan...
nun kommt aber das problem, dass mir einfach der ansatz fehlt wie ich umblättern könnte... habt ihr vielleicht einen denkansatz für mich?
ich werde mein programm mit versuchtem lösungsansatz hier unten reinschreiben... ich habe den versuch nicht ganz strukturirert und deshalb könnte es den einen oder anderen verwirren, aber vorweg meine idee war es von einem zähler auszugehen, der anfangs =1 ist und wenn man auf einen -> button klickt sich um die anzahl der daten pro seite erhöht... das problem ist nur, dass ich nicht weiß wie ich sage, dass der 3 datensatz anstatt dem ersten angezeigt werden kann...
hat jemand ne idee oder ist mein lösungsweg kompletter mist?
quelltext:
- Code: Select all
<?php//table_test.php
print_r($_POST);
include('connect.php');
include('table_class.php');
$table=new table();
$table->settitle('Adresse');
$table->settable('adresse');
$table->setorder(
array('start'=>'DESC','end'=>'ASC'));
$table->setbutton(
array('text'=>'edit','buttonname'=>'button','img'=>'edit.png'));
$table->setbutton(
array('text'=>'delete','buttonname'=>'button','img'=>'delete.png'));
$table->setpages(
array('direction'=>'back','pagename'=>'page'));
$table->setpages(
array('direction'=>'forward','pagenmame'=>'page'));
$table->setPK(
array(
'PK'=>'adresse_id','PKname'=>'id'));
$table->setfields(
array(
array('header'=>'Vorname','colname'=>'firstname','order'=>'lastname,firstname'),
array('header'=>'Nachname','colname'=>'lastname','order'=>'adresse_id')
)
);
if($_POST['button']=='edit'){
echo'Sie wollen den Datensatz '.$_POST['id'].' bearbeiten';
}
if($_POST['button']=='delete'){
echo'Sie wollen den Datensatz '.$_POST['id'].' löschen';
}
$table->showtable();
?>
und der eigentliche quelltext
<?php//table_class.php
class table
{
private $title='Überschrift fehlt noch!';
private $table;
private $fields;
private $PK;
private $buttons =array();
function __construct(){
}
function settitle($title){
$this -> title = $title;
}
function settable($table){
$this -> table = $table;
}
function setorder($order){
$this -> order = $order;
}
function setfields($fields){
$this -> fields = $fields;
}
function setbutton($button){
$this -> buttons[] = $button;
}
function setpages($page){
$this -> page[] = $page;
}
function setPK($PK){
$this -> PK =$PK;
}
function showtable(){
echo '<form method= "post">';
echo '<form action="select.htm">';
if(!isset($_POST['order_column'])){
$orderer=$this->order['start'];
}
else{
$orderer=$_POST['order_direction'];
if($_POST['order_direction']==$this->order['start']){
$orderer=$this->order['end'];
}
else{
$orderer=$this->order['start'];
}
}
echo '<h2>'.$this -> title.'</h2>';
$str_select_adresse='select ';
foreach($this -> fields as $value)
{
$str_select_adresse.= $value['colname'] . " ,";
}
$str_select_adresse.=' '.$this->PK['PK'].' ';
$str_select_adresse.='from ' . $this -> table;
echo '<table border="1"><tr>';
foreach($this -> fields as $field){
if(isset($_POST['arrowbutton-'.$field["header"]]) || isset($_POST[$button["buttonname"]])){ //nachfragen wie man auf button zugreift
echo'hi';
}
else{
$arrow=' ';
$number=1;
}
if(isset($_POST['arrowbutton-'.$field["header"]])){
if($_POST['order_direction']==$this->order['start']){
$arrow= '↑';
}
elseif($_POST['order_direction']==$this->order['end']){
$arrow= '↓';
}
}
// echo '<form method= "post">';
echo '<th>'.$field["header"];
echo '<input type="submit" name="arrowbutton-'.$field["header"].'" value="'.$arrow.'"></th>';
echo '<input type="hidden" name="order_direction" value="'.$orderer.'">';
echo '<input type="hidden" name="order_column" value="'.$field["header"].'">';
if(isset($_POST['arrowbutton-'.$field["header"]])){
if($_POST['order_direction']==$this->order['start']){
$str_select_adresse.=' order by ' .$field["colname"].' '.$this->order['start'];
}
else{
$str_select_adresse.=' order by ' .$field["colname"].' '.$this->order['end'];
}
}
// echo '</form>';
}
// echo '<form action="select.htm">';
echo '<td>
<select name="data_per_page" size="0">';
for($i=1;$i<=5;$i++){
if($i==$_POST['data_per_page']){
echo '<option selected>'.$i.'</option>';
}
else{
echo '<option >'.$i.'</option>';
}
}
echo '</select>
</td>
<td>
<input type="submit" name="sort" value="sort">
</td>
<td>
<input type="submit" name="pagebackward" value="←">
<input type="submit" name="pageforward" value="→">
<input type="hidden" name="pagenumber" value="number">
</td>';
// echo '</form>';
print_r($_POST);
echo '</tr>';
$zaehler=1;
$summe=$_POST['number'];
if(isset($_POST['pagebackward'])){
if($summe>=$_POST['data_per_page']){
$summe=$summe-$_POST['data_per_page'];
$_POST['pagenumber']=$summe;
}
}
if(isset($_POST['pageforward'])){
$summe=$summe+$_POST['data_per_page'];
$_POST['pagenumber']=$summe;
}
// echo $str_select_adresse;
$query_select_adresse=mysql_query($str_select_adresse);
while($tabelle = mysql_fetch_assoc($query_select_adresse)){
if($zaehler>=$_POST['number'] && $zaehler<=($_POST['number']+$_POST['data_per_page'])){
echo '<tr>';
foreach ($tabelle as $value){
echo '<td>' . $value;
if($value=='')
{
echo ' ' ;
}
echo '</td>';
}
foreach($this->buttons as $button){
echo '<td>';
echo '<input type="submit" name="'.$button["buttonname"].'" value="'.$button["text"].'">';
echo '</td>';
}
echo '<input type="hidden" name="'.$this->PK["PKname"].'" value="'.$tabelle[$this->PK["PK"]].'">';
echo '</tr>';
$zaehler++;
}
}
echo '</table>';
echo '</form>';
// echo "hi".$summe;
}
}
?>