php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.11.2004, 21:33  
Gast
 
Beiträge: n/a
Standard order frage php & mysql

hallo zusammen,
ich hoffe, dass mir einer von Euch hier helfen kann, ich bin nämlich der absolute Anfänger.

Folgendes:

Ich gebe Datensätze einer mysql datenbank über php aus. Angezeigt wird das ganze dann als Liste. Über dieser Liste stehen dann Überschriften, was darunter angezeigt wird, in meinem Fall: Datum, Name, Headline, Agentur, Bewertung

Diese Punkte sind anklickbar und sortieren dann die Liste immer nach dem jeweiligen Kriterium. Jetzt zu meiner Frage:

Ist es möglich, dass wenn ich z.B. den Link "Name" einmal anklicke, die Ergebnisse absteigend (DESC) angezeigt weden, und bei erneutem Klick auf den Link "Name" absteigend (DESC)?

Momentan sieht das Script so aus:

Code:
$sql="select * from absagen ORDER BY ".$order." ASC limit $Anfangsposition,$Zeilen_pro_Seite";
$result=mysql_query($sql);
$result1=mysql_query("select id from absagen where id");

$Anzahl=mysql_num_rows($result1);
Danach erfolgt die Ausgabe der Textlinks, ich nehme der Übersichtlichkeit halber mal nur einen, nämlich Datum:

Code:
echo "<tr align=\"left\" valign=\"top\" bgcolor=\"#FFFFFF\">
		 <td></td>
				<td><a href=\"index.php?Anfangsposition=0&order=datum\" class=\"text\">Datum</a></td>
Wie müsste dieser Link aussehen, bzw. was für eine Schleife muss ich einbauen, dass er zuerst ASC anzeigt, bei zweitem Klick DESC, bei drittem Klick wieder ASC usw.

Ich hoffe Ihr könnt mir helfen, das brauche ich nämlich ganz unbedingt

Vielen Dank für Eure Mühe

P.S.: Anfangswert ist die Anzahl, wie viele Elemente aus der mysql Tabelle geholt werden, ist hier aber uninteressant
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.11.2004, 22:34  
Gast
 
Beiträge: n/a
Standard

<a href=\"index.php?Anfangsposition=0&order=datum=>DE SC\"

bei klick:
$orderArray = explode('=>', $_GET['order']);
$order = $orderArray[0];
$by = $orderArray[1];
....
sqlabfrage
....

neugenerierung des links:
if($by = 'DESC')
{
$by = 'ASC';
}
if($by == 'ASC')
{
$by = 'DESC';
}

<a href=\"index.php?Anfangsposition=0&order=datum=>$b y\"


so als einfacher denkansatz

mfg
 
Alt 03.11.2004, 23:16  
Gast
 
Beiträge: n/a
Standard Danke...aber

wie gesagt, ich bin halt ein waschechter Anfänger.

was ich jetzt nicht ganz verstanden habe:

ich soll also den link zweimal anlegen, einmal vor und einmal nach der sql abfrage?

dann habe ich ja aber auch zwei reihen mit dem Link "datum" untereinander.

Meintest du das dann so?:

Code:
echo "<a href=\"index.php?Anfangsposition=0&order=datum=>DESC\" class=\"text\">Datum</a>";

$orderArray = explode('=>', $_GET['order']); 
$order = $orderArray[0]; 
$by = $orderArray[1]; 


$sql="select * from absagen ORDER BY ".$order." ASC limit $Anfangsposition,$Zeilen_pro_Seite";
$result=mysql_query($sql);
$result1=mysql_query("select id from absagen where id");

$Anzahl=mysql_num_rows($result1);

if($by = 'DESC') 
{ 
$by = 'ASC'; 
} 
if($by == 'ASC') 
{ 
$by = 'DESC'; 
} 

echo "<a href=\"index.php?Anfangsposition=0&order=datum=>$by\"";
Oder habe ich da was falsch verstanden?

wie gesagt dann wird der link "datum" zweimal angezeigt untereinander. und die funktionalität geht auch nicht

verzeih mir, aber ich stelle mich wahrscheinlich äusserst blöd an.

hoffe du kannst mir nochmal helfen

danke
 
Alt 04.11.2004, 00:45  
Gast
 
Beiträge: n/a
Standard

du gibst ja deinen link aus und möchtest das, wenn man nocheinmal darauf klickt die order by Methode
entweder von ASC nach DESC wechselt oder von DESC nach ASC
also klicken wir mal auf den link der in etwa so aussehen sollte:
( "<a href=\"index.php?Anfangsposition=0&order=datum=>AS C\"" )

jetzt ruft dieser link die index.php auf mit den zugehörigen GET variablen
unter anderem mit der GET variablen order, welche wir in der index.php abfragen und auswerten

if(!empty($_GET['order']))
{
$orderArray = explode('=>', $_GET['order']);
$order = $orderArray[0];
$by = $orderArray[1];
}

Nun beinhaltet die variable $order demzufolge (datum) und die variable $by gleich ( na, naaa na was wohl ASC natürlich )
nun können wir damit die SQL Abfrage gestalten

$sql = mysql_query("SELECT * FROM absagen ORDER BY $order $by LIMIT $Anfangsposition,$Zeilen_pro_Seite");

da der link dynamisch gestaltet werden muss mssen wir diesen link demzufolge verändern und neu generieren
wenn vorher $by ASC beinhaltete soll nun das Gegenstck DESC drankommen

if($by == 'DESC')
{
$by = 'ASC';
}else
{
$by = 'DESC';
}
und Ausgabe des Links

echo "<a href=\"index.php?Anfangsposition=0&order=datum=>$b y\"";

ganz einfach zum testen auf dem localen system

Datei index.php

<?php
if(!empty($_GET['order']))
{
$orderArray = explode('=>', $_GET['order']);
$order = $orderArray[0];
$by = $orderArray[1];
}

if($by == 'DESC')
{
$by = 'ASC';
}else
{
$by = 'DESC';
}

echo "<a href=\"x.php?order=datum=>$by\">link order method = $by</a>";

?>

auf ein einbringen der sqlabfrage hab ich gerade verzichtet das sollte aber null prob bereiten

mfg
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Frage zu einer MySQL Datenbank Datenbanken 3 10.09.2005 12:24
Frage zu Mysql JanM PHP Tipps 2005-2 1 03.09.2005 19:35
[Erledigt] MYSQL PHP Frage Datenbanken 9 02.06.2005 20:40
PHP MySql Frage PHP Tipps 2005 7 01.06.2005 18:54
PHP MySql Frage PHP Tipps 2005 2 01.06.2005 18:21
allgemeine frage | mysql und htaccess notyyy Datenbanken 13 18.05.2005 21:01
Frage zum Auslesen aus einer Mysql DB djma PHP Tipps 2005 3 18.05.2005 12:35
System mit Mysql (weit läufige Frage) Beitragsarchiv 1 03.05.2005 15:53
MYSQL - ORDER BY freitz Datenbanken 3 30.12.2004 00:41
Frage - JS ausführen -&amp;amp;amp;amp;amp;gt; neuer Eintrag in MySQL vorhanden. HTML, Usability und Barrierefreiheit 2 27.11.2004 22:11
Frage: Mysql... Ente PHP Tipps 2004 15 27.09.2004 22:49
[Erledigt] PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a m p; MySQL Datenbanken 5 01.08.2004 05:47
mysql frage PHP Tipps 2004 2 17.07.2004 23:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
headlineagentur, order=\datum\, order in php ganz am anfang

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.