3Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
289
289
EMPFEHLEN
-
Guten Morgen,
ich arbeite immer noch an meiner Benutzerliste.
Ich hab eine Tabelle erstellt mit Datensätze aus der Datenbank. Oben in der Tabelle stehen die Bezeichnugen der einzelnen Spalten, zB: Vorname.
Wie mache ich es, damit ich auf Vorname einmal klicke und die Vornamen aufsteigend sortiert sind und wenn ich nochmal auf Vorname klicke, die Vornamen dann absteigend sortiert sind. Bestimmt muss man da 'if' anwenden, aber wie das ist hier die Frage.
Muss ich da auch SQL-Abfragen machen also wie DESC oder ASC?
Hier der Code für die Tabelle:
PHP-Code:echo "<form action='benutzerliste.php' method='post'>";
echo "<input type='submit' name='submit' style= 'display:none;' />";
echo "<table class = 'user_tabelle' border= '1'>";
echo "<tr>";
echo "<th>".'Vorname'."</th>";
echo "<th>".'Nachname'."</th>";
echo "<th>".'Login'."</th>";
echo "</tr>";
echo "<tr>
-
26.01.12 11:20 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
So in etwa sollte es klappen:
Der Wert für die Sortierfolge ($art) wird einfach immer umgekehrt und das Feld nach welchem sortiert werden soll, wird dem Link mitgegeben.PHP-Code:<?php
$art = (@$_GET["art"] == "ASC") ? "DESC" : "ASC";
if (isset($_GET["order"])) {
$order = "ORDER BY " .$_GET['order'] ." " .$art;
} else {
$order = "ORDER BY nummer " .$art;
}
$sql = "SELECT * FROM tabelle " .$order;
echo $sql;
echo "<br />";
?>
<a href="benutzerliste.php?order=vorname&art=<?php echo $art;?>">Vorname</a>
<br />
<a href="benutzerliste.php?order=nachname&art=<?php echo $art;?>">Nachname</a>
Wir die Seite "direkt" aufgerufen, tritt der ELSE-Abschnitt in Kraft (wobei du diese Sortierung natürlich anpassen musst).Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Danke schon mal für die Antwort!
Wie mache ich es, das die Vornamen sich auch sortieren.
Also ich hab zB drunter 'Anke, Markus, Ralf' da stehen, die heißen in der Datenbank user_vorname.
Ich poste mal meine SQL- Abfrage (Bei SELECT):
Code :1 2 3 4 5
" SELECT * FROM benutzerliste WHERE user_vorname LIKE '%{$_REQUEST['user_vorname']}%' AND user_nachname LIKE '%{$_REQUEST['user_nachname']}%' AND user_login LIKE '%{$_REQUEST['user_login']}%' ");
(Die anderen Daten muss man nicht beachten, die mache ich später dazu)
-
Fast so wie tombe schreibt - aber:
Wenn nach Vorname aufsteigens sortiert ist und ich nachher auf Nachname klicke, wird nach Nachname absteigend sortiert. Die Sortierreihenfolge sollte mMn nur geändert werden wenn man auf die gleiche Spalte klickt. Bei einer Anderen Spalte sollte wieder der die Standartrichtung eingestellt werden.
Ich habe da mal ein etwas komplexeres Beispiel, dafür ists schön generisch *g*.
Hier die AusgabePHP-Code://Standarts defineren
define('C_DEFAULT_ORDER_BY', 'vorname');
define('C_DEFAULT_DIRECTION', SORT_ASC);
//Spalten definieren
$columns['vorname'] = array('direction' => C_DEFAULT_DIRECTION, 'title' => 'Vorname');
$columns['ort'] = array('direction' => C_DEFAULT_DIRECTION, 'title' => 'Ort');
//Die Eingaben auswerten und ggf. Standarts setzen
$orderBy = isset($_GET['orderBy']) ? $_GET['orderBy'] : C_DEFAULT_ORDER_BY;
if(!array_key_exists($orderBy, $columns)) $orderBy = C_DEFAULT_ORDER_BY;
$direction = (int) (isset($_GET['direction']) ? $_GET['direction'] : C_DEFAULT_DIRECTION);
/**
* --- Der folgende Codel kann auch aus der DB gemacht werden. Inkl. des Sortings
* Hier der zu Testzwecken nicht genutzte Code für die DB-Daten:
* $sqlDirection = ($direction == SORT_DESC) ? 'DESC' : '';
* $sql = "SELECT vorname, nachname FROM myTable ORDER BY {$orderBy} {$sqlDirection};";
* $result = mysql_query($sql);
* $data = array()
* foreach($row = mysql_fetch_assoc($result)) $data[] = $row;
*/
// --- Ich simuliere hier die DB-Daten
//Daten
$data[] = array('vorname' => 'Hans', 'ort' => 'Zürich');
$data[] = array('vorname' => 'Peter', 'ort' => 'Bern');
$data[] = array('vorname' => 'Thomas', 'ort' => 'Basel');
$data[] = array('vorname' => 'Stefan', 'ort' => 'Genf');
//Daten sortieren --- array_sort_by_subarray_item(): http://wiki.yaslaw.info/wikka/PhpArraySortBySubarrayItem
array_sort_by_subarray_item($data, $orderBy, $direction);
// -- Ende DB-Simulations-Teil
//Die Direction für den Link auf aktuelle Spalte anpassen.
if(($direction == SORT_ASC)) $columns[$orderBy]['direction'] = SORT_DESC;
//Tabelle ausgeben
echo "<table>\n";
echo " <tr>\n";
//Titelzeilen
foreach($columns as $key => $col){
echo " <th><a href = '?orderBy={$key}&direction={$col['direction']}'>{$col['title']}</a></th>\n";
}
echo " </tr>\n";
//Datenzeilen
foreach($data as $item){
echo " <tr>\n";
//Datenfleder
foreach(array_keys($columns) as $colName){
echo " <td>{$item[$colName]}</td>\n";
}
echo " </tr>\n";
}
echo '</table>';
HTML-Code:<table> <tr> <th><a href = '?orderBy=vorname&direction=3'>Vorname</a></th> <th><a href = '?orderBy=ort&direction=4'>Ort</a></th> </tr> <tr> <td>Hans</td> <td>Zürich</td> </tr> <tr> <td>Peter</td> <td>Bern</td> </tr> <tr> <td>Stefan</td> <td>Genf</td> </tr> <tr> <td>Thomas</td> <td>Basel</td> </tr> </table>
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hey hab das etwas anders gelöst, so in etwa wie tombe!
Und halt unten verlinkt!PHP-Code:$sortorder = (isset($_REQUEST['sortorder']) && $_REQUEST['sortorder'] == "asc") ? "desc" : "asc";
$sqlOrder = "user_vorname ASC, user_nachname ASC, user_login ASC";
if(isset($_REQUEST['sort'])) {
$sqlOrder = "{$_REQUEST['sort']} {$sortorder}";
}
So jetzt noch eine Frage:
Ich habe ja ein Formular erstellt, da kann man auch neuen User anlegen.
Wie kann man machen, wenn der User nichts in die Felder eingibt und dann auf abspeichern klickt, das eine Meldung kommt,
"Bitte ausfüllen". Wie würde das mit IF aussehen?
-
26.01.12 16:30 #6
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Wenn ein Feld nicht ausgefüllt wird, dann wird es beim Abschicken auch nichts übertragen.
Prüfe also einfach ob die entsprechende $_POST-Variable existiert und einen gültigen Wert hat.
PHP-Code:if (isset($_POST['nachname']) {
echo "Dein Name ist " .$_POST['nachname'];
} else {
echo "Es wurde kein Name angegeben";
}
if (!isset($_POST['Postleitzahl'] or !is_numeric($_POST['postleitzahl'])) {
echo "Es wurde entweder keine oder eine gültige Postleitzahl angegeben";
}
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Hey danke für die Hilfe!! Jetzt geht alles!
So hab noch eine Frage:
Wie kann den Namen von den angemeldeten User anzeigen? Mit $_SESSION oder? Also bei mir ist so '$_SESSION['user']'.
Was muss ich noch übergeben, das da nicht nur "Array" steht?
Danke!!
-
Die Session starten
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Die ist schon gestartet!!
-
Und der User wird in der Session registriert?
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
also ich hab ja ein 'header.php'- Bereich und 'login.php' Bereich.
Ich zeige dir mal, was dadrin steht:
login.php
header.phpPHP-Code:<?php
if(isset($_SESSION['user'])) {
header("Location: startseite.php");
}
if($_POST && $_POST['user_login'] && $_POST['user_passwort']) {
$user = $db->getQueryData(" SELECT *
FROM benutzerliste
WHERE user_login = '{$_POST['user_login']}'
AND user_passwort = '".md5($_POST['user_passwort'])."'
LIMIT 1");
if($user && $user[0]['user_login']) {
$_SESSION['user'] = $user[0];
header('Location: startseite.php');
} else {
$messages= "Login fehlgeschlagen";
}
}
?>
So im header-Bereich will ich das einfügen!Danke!PHP-Code:session_start();
$messages = "";
if(isset($_REQUEST['action']) && $_REQUEST['action'] == 'logout') {
unset($_SESSION['user']);
$messages = "Sie wurden erfolgreich ausgeloggt!";
}
if(empty($_SESSION['user']) && basename($_SERVER['SCRIPT_NAME']) != "login.php") {
header("Location: login.php");
}
?>
Ähnliche Themen
-
[Illustrator] Griffpunkt bei Pfeilen
Von Rofi im Forum Vektor-ProgrammeAntworten: 0Letzter Beitrag: 21.07.06, 08:13 -
ID aufsteigend zu absteigend ändern
Von 3ul3-daniel im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 29.05.06, 21:19 -
Stapelverarbeitung >> Bilder Aufsteigend Nummerieren
Von kirchel im Forum PhotoshopAntworten: 2Letzter Beitrag: 01.06.05, 20:22 -
Zahlen aufsteigend ausgeben aus der DB
Von than im Forum PHPAntworten: 2Letzter Beitrag: 21.02.05, 23:39 -
Fireworks: Gerade Linie 1px breit mit Pfeilen?
Von fourns im Forum Sonstige Grafik-ProgrammeAntworten: 0Letzter Beitrag: 09.01.05, 22:50





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren