PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sortieren nach :


masteryoda
02.02.2004, 10:38:17
http://www.sourcecode.no/pastebin/en/index.php?page=show&id=7124&key=9jk9a36xvh

problem ist:
ich habe 3 buttons, je nach dem welcher button gedrüückt wird soll er eine tabelle entweder nach id, name oder zn sortieren.
er machts aber nur immer nach id O_O

feuervogel
02.02.2004, 14:30:02
tut mir leid, aber wenn ich deinen code kopiere, kopier ich die line-numbers automatisch mit.

kannst du mal vom prinzip her beschreiben, wie bei dir die überprüfung stattfindet?

Yzerman
02.02.2004, 14:38:14
Scheint mir hier eher ein HTML- als ein MySQL-Problem zu sein.

Probier's mal so:

Den Formular-Teil mit den Buttons durch folgenden Code erstezen:

<form action='admin.php' method='post'>
<td>
<input type='submit' name='sort' value='Sortiere nach ID'>
</td>
<td>
<input type='submit' name='sort' value='Sortiere nach Name'>
</td>
<td>
<input type='submit' name='sort' value='Sortiere nach ZN'>
</td>
</form>


und im PHP-Teil:

if ($_POST['sort'] == 'Sortiere nach ID')
$sortierung="ORDER BY mitarbeiter.id";
else if ($_POST['sort'] == 'Sortiere nach Name')
$sortierung="ORDER BY mitarbeiter.name";
else if ($_POST['sort'] == 'Sortiere nach ZN')
$sortierung="ORDER BY mitarbeiter.zn_id";

feuervogel
02.02.2004, 14:52:51
sowas in der art hab ich mir auch schon gedacht...wie hast dus denn bisher gemacht?

masteryoda
02.02.2004, 19:53:36
ok es funktioniert jetzt, habe ein method="post" in die jeweilige form eingepackt.

mal ne andere Frage: kann ich per Button auch einen neuen Satz in die Datenbank einfügen? Ich möchte, das beim Drücken auf "Datensatz einfügen" die SQL Query (also die ausgelesenen Datensätze) durch eine Eingabemaske ID, Nachname, Vorname, ZN ersetzt wird. Da gibt man das dann ein und drückt auf OK. dann sollen diese Eingaben in die Datenbank übernommen werden.

Leider hab ich keinen Plan wie das in PHP Realisiert werden kann.
SQL String ??? SELECT <tablename> where mitarbeiter.id, mitarbeiter.name, mitarbeiter.vorname = <variable1>,variable2,variable3,variable4 INSERT INTO <tablename>

das ist 100% falsch :)

und wie kann man doppelte IDs vermeiden (Primärschlüssel) ?

Gruß

Yzerman
03.02.2004, 08:28:44
Das funktioniert so natürlich nicht in einem Rutsch. Du musst die Seite schon zweimal neu laden.

Beim ersten Mal wird das Formular erzeugt, das beim Absenden die Daten an ein anderes Script zur Verarbeitung und zum Schreiben in die Datenbank weitergibt.

Dies kannst Du entweder mit zwei extra Scripten realisieren oder so genannte 'integrierte Formulare' benutzen. Dabei schreibst Du ein Script, das alle Arbeitsschritte enthält, sorgst aber durch if-Abfragen nach gesetzten Variablen (z.B. Submit-Button) dafür, dass jeweils nur der in Frage kommende Teil ausgeführt wird. Als Action in dem Formular ruft sich die Datei dann selbst auf.

Ich hoffe, das war einigermaßen verständlich erklärt.

Doppelte ID's vermeidest Du ganz einfach, indem Du dem Feld die Attribute PRIMARY KEY und AUTO_INCREMENT mitgibst. Kannst Du mit phpMyAdmin bspw. ganz einfach einstellen.

feuervogel
03.02.2004, 10:53:25
mach dir mal die grundlagen klar.

lesen bildet.

edit:
öhm, hier mal ne sql-kurzreferenz:

http://www.julianmoritz.de/mysql.pdf

Thomapyrien
03.02.2004, 16:10:38
Hallo zusammen,

ich habe ein ähnliches Problem, ich will nicht mittels Auswahl Buttons die Srtierreihenfolge bestimmen, sondern mit der jeweiligen Spalten-Überschrift !
Angenommen, ich habe ne Tabelle mit den 2 Spalten "Mitlgieder" und "Punkte", so will ich beim Aufruf der Tabelle, zuerst nach Mitglieder sortiert haben.
Wenn ich nun auf die Überschrift Punkte klicke, soll sich die Sortierung nach der Spalte Punkte richten !
Wenn ich dann wieder auf Mitglieder klicke, soll die Sortierung wieder nach Mitgliedern erfolgen !

Wie stell ich das denn an ???

Ich bräuchte also ein Script, daß mir zuerst die Tabelle nach Mitgliedern sortiert ausgibt, soweit so gut, das hab ich schon !
Ich kann nun auch schon aus einem anderen Script die Sortierung der Tabelle bestimmen, auch ok, aber wie verlinke ich die Spalten-Überschriften, damit ich bei Anklicken den ORDER BY Wert ändern kann und das gleiche Script sich selbst wieder aufruft ohne ein 2. Script zu benutzen ??

Vielen Dank schonmal im Voraus
Thomas

Yzerman
03.02.2004, 16:15:28
Das Script werde ich Dir nicht schreiben, aber vom Prinzip her funktioniert es genauso.
Du hinterlegst die Spaltenüberschriften einfach mit einem Link und übergibst das Sortier-Flag per GET.
Ansonsten wie gesagt, haargenau das Gleiche in grün...

Thomapyrien
03.02.2004, 16:24:21
Danke, immerhin schonmal ein Ansatz zur Lösung !!
Ich werds mal versuchen !

Danke & Gruß
Thomas