| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

20-07-2005, 12:45
|
|
chefkochbln
Junior Member
|
|
Registriert seit: Feb 2005
Beiträge: 53
|
|
Komische Sache
...die ich da machen will? Ich versuchs mal, zu erklären:
Ich hab einen Anfang einer Tabelle. Diese wird statisch generiert, weil die Tabellenüberschriften immer gleich sind. Hier mal der Quellcode:
PHP-Code:
<?php
echo "<table width=\"100%\" height=\"50%\"border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td width=\"15%\"><div align=\"center\"><b>Name</div></td>
<td width=\"18%\"><div align=\"center\"><b>Strasse</div></td>
<td width=\"3%\"><div align=\"center\"><b>Postfach</div></td>
<td width=\"15%\"><div align=\"center\"><b>Ort</div></td>
<td width=\"15%\"><div align=\"center\"><b>Telefon</div></td>
<td width=\"20%\"><div align=\"center\"><b>Telefax</div></td>
<td width=\"6%\"><div align=\"center\"><b>E-Mail</div></td>
<td width=\"8%\"><div align=\"center\"><b>Internet</b></div></td>
</tr>";
$ResultPointer = mysql_query("SELECT * FROM T_Kundendaten");
show($ResultPointer);
?>
So. Dann wird der Rumpf der Tabelle dynamisch generiert, weil die Inhalte aus der DB kommen und dort eingefügt werden. Hierfür habe ich das Ganze aus Modularisierungsgründen in eine Funktion show($ResultPointer) geschrieben.
Nun soll aber folgendes passieren:
Wenn ich auf Name klicke (oder einer kleinen Grafik rechts neben "Name"), dann soll der dynamisch generierte Teil nach dem Namen sortiert werden.
Wenn ich auf Strasse klicke, dann soll das Ganze nach Strasse sortiert werden.
Hört sich ganz üblich an, mir fehlt aber das Tüpfelchen auf dem "i" zum Umsetzen. Ich wollte das Ganze mit einer switch...case-Anweisung umsetzen, bei der dann ausgewählt wird, nach welcher Spalte sortiert werden kann. Dabei müssen ja unterschiedliche SQL-Anweisungen ausgeführt werden.
Weiß da jemand Rat?
__________________
Geht nich, gibts nich!
God is real...unless declared as integer!
|

20-07-2005, 12:50
|
 |
schmalle
  Ich Root, Du nix
|
|
Registriert seit: Jun 2001
Ort: Egelsbach FFM
Beiträge: 9.170
|
|
Du hast die Lösung doch selbst schon geschreiben :-) Wo ist jetzt das Problem?
|

20-07-2005, 12:52
|
|
chefkochbln
Junior Member
|
|
Registriert seit: Feb 2005
Beiträge: 53
|
|
Die Umsetzung. Ich weiß leider nicht genau, wie man das Ganze umsetzt.
Also wenn ich eine bestimmte Variable habe und dann mittels 'ner switch...case-Anweisung auswerten will, dann ist es ja einfach.
Aber hier klicke ich ja sozusagen auf einen Link, der dann ausgewertet wird, das ist meiner Meinung nach ja was anderes, da weiß ich nicht wie's geht
__________________
Geht nich, gibts nich!
God is real...unless declared as integer!
|

20-07-2005, 13:01
|
 |
schmalle
  Ich Root, Du nix
|
|
Registriert seit: Jun 2001
Ort: Egelsbach FFM
Beiträge: 9.170
|
|
PHP-Code:
switch (trim($_GET['link']))
{
case "name": $sql = 'NAME';
break;
case "Wasanderes": $sql = 'Wasanderes';
break;
default: $sql = "";
}
if(!empty$sql))
$query = " select * from tabelle order by ".$sql;
else
$query = "select * from tabelle";
|

20-07-2005, 13:02
|
|
aimbot
PHP Junior
|
|
Registriert seit: Feb 2004
Ort: Lahr - Germany
Beiträge: 779
|
|
wie wärs mit parameter übergeben?
klick auf "name" => blabla.php?sortby=name
klick auf "straße" => blabla.php?sortby=strasse
und dann per switch($_GET['sortby']) auswerten? wo ist das problem?
auserdem frag ich mich wieso du jeden feldnamen in ein div setzt Oo. das geht doch auch anderst.
EDIT: och schmalle *grml*
haha kropf! 
__________________
MfG
aim
Lies mich jetzt!
- OT-Tags-Liebhaber und BB-Code-Einrücker -
|

20-07-2005, 13:02
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
übergibt doch einfach einen parameter
PHP-Code:
echo '<a href="'.$_SERVER['PHP_SELF'].'¶m='.$param.'">';
und dann per
verarbeiten.
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

20-07-2005, 13:05
|
|
chefkochbln
Junior Member
|
|
Registriert seit: Feb 2005
Beiträge: 53
|
|
Dieses "$_GET["link"]" kommt aber nicht in der Datenbank vor als Feldname.
Hm, wobei ich glaube ich den PHP-Teil verstanden habe, weiß ich immer noch nicht, wie ich denn den Link mache...
Code:
<td........><a href=und dann??>Name</a></td>
Oder müsste es:
<td....><a href="#name">Name</a></td> heißen?
Oh man ich bin komplett verwirrt.....
__________________
Geht nich, gibts nich!
God is real...unless declared as integer!
|

20-07-2005, 13:07
|
|
chefkochbln
Junior Member
|
|
Registriert seit: Feb 2005
Beiträge: 53
|
|
Hmm, okay...danke schonmal! Ich glaub, damit kann ich was anfangen! 
DANKE!!!!!!!!
__________________
Geht nich, gibts nich!
God is real...unless declared as integer!
|

20-07-2005, 13:40
|
|
chefkochbln
Junior Member
|
|
Registriert seit: Feb 2005
Beiträge: 53
|
|
Hm, also ich hab mir eure Beispiele zu Herzen genommen und das mal ausprobiert. Rausgekommen ist dabei folgendes:
PHP-Code:
<?php
echo "<table width=\"100%\" height=\"50%\"border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td width=\"15%\"><div align=\"center\"><b><a href='".$_SERVER['PHP_SELF']."¶m=".$param."'>Name</a></div></td>
<td width=\"18%\"><div align=\"center\"><b>Strasse</div></td>
<td width=\"3%\"><div align=\"center\"><b>Postfach</div></td>
<td width=\"15%\"><div align=\"center\"><b>Ort</div></td>
<td width=\"15%\"><div align=\"center\"><b>Telefon</div></td>
<td width=\"20%\"><div align=\"center\"><b>Telefax</div></td>
<td width=\"6%\"><div align=\"center\"><b>E-Mail</div></td>
<td width=\"8%\"><div align=\"center\"><b>Internet</b></div></td>
</tr>";
switch ($_GET['param'])
{
case "Name":
{ $sql = 'Name';
break;
}
default:
{
$ResultPointer="";
}
}
if(!empty ($sql))
$ResultPointer = mysql_query("SELECT * FROM T_Kundendaten ORDER BY ".$sql."");
else $ResultPointer = mysql_query("SELECT * FROM T_Kundendaten");
show($ResultPointer);
?>
Tatsächlich passiert da aber nix, wenn ich mir die Tabelle anschaue und auf "Name" klicke. Wo könnte denn der Fehler liegen, ich kann den leider nicht finden....
__________________
Geht nich, gibts nich!
God is real...unless declared as integer!
|

20-07-2005, 13:49
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
|
Tatsächlich passiert da aber nix
|
das ist nicht möglich.
kannst du selbstständig debuggen?
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

20-07-2005, 13:49
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
$param wird leer sein, wenn du den Link damit ausgibst.
Btw: Was soll das im default{} und wie baust du denn die Query zusammen (...$sql."")?
|

20-07-2005, 13:52
|
|
chefkochbln
Junior Member
|
|
Registriert seit: Feb 2005
Beiträge: 53
|
|
Selbständig debuggen? Wie denn das? - Aber das impliziert schon ein "nein".
Wenn ich dann auf "Name" klicke, wird die URL http://............/../data.php?param=Name aufgerufen
Diese Datei data.php ist die Datei in der sich alles abspielt, die Tabelle also drin ist etc. Wenn die URL aufgerufen wird, so kommt eine 404-error-Seite.
__________________
Geht nich, gibts nich!
God is real...unless declared as integer!
|

20-07-2005, 13:54
|
|
chefkochbln
Junior Member
|
|
Registriert seit: Feb 2005
Beiträge: 53
|
|
Zitat:
Original geschrieben von onemorenerd
$param wird leer sein, wenn du den Link damit ausgibst.
Btw: Was soll das im default{} und wie baust du denn die Query zusammen (...$sql."")?
|
Sorry, ihr wart schneller, hab inzwischen ein paar kleine Veränderungen durchgeführt, das Ergebnis ist aber das gleiche:
PHP-Code:
<?php
echo "<table width=\"100%\" height=\"50%\"border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td width=\"15%\"><div align=\"center\"><b><a href='".$_SERVER['PHP_SELF']."¶m=Name'>Name</a></div></td>
<td width=\"18%\"><div align=\"center\"><b>Strasse</div></td>
.
.
.
}
default:
{
$sql="";
}
}
if(!empty ($sql))
$ResultPointer = mysql_query("SELECT * FROM T_Kundendaten ORDER BY ".$sql."");
else $ResultPointer = mysql_query("SELECT * FROM T_Kundendaten");
show($ResultPointer);
?>
So siehts jetzt aus. "param" ist nicht mehr leer, aber geändert hat sich leider nix
Btw: In der Funktion show, welche die Variable $ResultPointer übergibt, werden die Tabelleninhalte dynamisch ausgelesen...
__________________
Geht nich, gibts nich!
God is real...unless declared as integer!
|

20-07-2005, 14:11
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
PHP-Code:
<?php
echo "...<a href='{$_SERVER['PHP_SELF']}?param=Name'>Name</a>...";
echo "...<a href='{$_SERVER['PHP_SELF']}?param=Strasse'>Strasse</a>...";
$sql = 'SELECT * FROM T_Kundendaten';
switch ($_GET['param']) {
case 'Name': {
$sql .= ' ORDER BY Name';
break;
}
case 'Strasse': {
$sql .= ' ORDER BY Strasse';
break;
}
}
$ResultPointer = mysql_query($sql);
show($ResultPointer);
Wenn es die Spalten Name und Strasse tatsächlich gibt, dann sollte das gehen.
|

20-07-2005, 14:18
|
|
chefkochbln
Junior Member
|
|
Registriert seit: Feb 2005
Beiträge: 53
|
|
__________________
Geht nich, gibts nich!
God is real...unless declared as integer!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|