| 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! |
 |

19-10-2009, 14:26
|
|
someRookie
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 50
|
|
Reihenfolge von Einträgen steuern
Hallo Lieber php-resoucer..
ich hab da mal eine frage, vielleicht für viele banal, aber ich komm nicht mal zu einem vernünftigen Ansatz und hoffe auf einen "schubs" in die richtige Richtung.
ich hab ein script, dass mir die Menüeinträge aus mySql ausliest und kann diese bisher nur über die "order by" klausel steuern. Ich würde mir aber gern ein script schreiben, womit ich die Reihenfolge der Menüeinträge selbst bestimmen kann, so wie ich das z.B unter Joomla usw als Möglichkeit habe..
Bisher muss ich immer die "positions-Id" aller einträge manuell ändern, wenn ich die reihenfolge abändern möchte. Könnte mir jemand verraten, wie man sowas scriptseitig erledigt?
gruss
Rene´
|

19-10-2009, 14:52
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Hallo,
vielleicht hilft dir dieser Thread schon weiter: Array Sortieren mal anders... [Archiv] - PHP script resource
Combie hatte darin Statements erwähnt, die auf das Vertauschen zweier Datensätze optimiert sind ( 17-08-2009, 23:50):
5, 2, 3, 1, 4
1, 2, 3, 5, 4
1, 2, 3, 4, 5
Ich hatte einen Code gepostet, der darauf optimiert ist, einen Datensatz direkt an eine bestimmte Stelle zu schieben ( 18-08-2009, 15:29):
5, 2, 3, 1, 4
2, 3, 1, 4, 5
1, 2, 3, 4, 5
Gruß,
Amica
Geändert von AmicaNoctis (19-10-2009 um 15:51 Uhr)
Grund: Beiträge verlinkt
|

19-10-2009, 15:15
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.769
|
|
OffTopic: Du kannst übrigens mit den Permalinks oben Rechts in den Beiträgen, direkt auf eben solche Verlinken.
|

19-10-2009, 15:19
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
OffTopic:
Zitat:
Zitat von unset
Du kannst übrigens mit den Permalinks oben Rechts in den Beiträgen, direkt auf eben solche Verlinken.
|
Ja, ich weiß, aber ich glaub im Archiv geht das nicht mehr.
|

19-10-2009, 15:28
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.865
|
|
Zitat:
|
Combie hatte darin Statements erwähnt, die auf das Vertauschen benachbarter Datensätze optimiert sind
|
Nicht unbedingt "benachbart" sondern einfach nur vertauschen.
|

19-10-2009, 15:31
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Zitat:
Zitat von combie
Nicht unbedingt "benachbart" sondern einfach nur vertauschen.
|
Stimmt, sorry  Hab's in dem Beitrag geändert.
Geändert von AmicaNoctis (19-10-2009 um 15:47 Uhr)
|

19-10-2009, 15:46
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.455
|
|
OffTopic:
Zitat:
Zitat von AmicaNoctis
Ja, ich weiß, aber ich glaub im Archiv geht das nicht mehr.
|
Oben hinter "Archiv verlassen und diese Seite im Standarddesign anzeigen :" befindet sich jeweils der Link zur "normalen" Ansicht.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

19-10-2009, 15:52
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
OffTopic:
Zitat:
Zitat von wahsaga
Oben hinter "Archiv verlassen und diese Seite im Standarddesign anzeigen :" befindet sich jeweils der Link zur "normalen" Ansicht.
|
Danke!
OT bitte abtrennen.
|

19-10-2009, 16:01
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.769
|
|
Zitat:
Zitat von AmicaNoctis
OffTopic:
Ja, ich weiß, aber ich glaub im Archiv geht das nicht mehr.
|
OffTopic: Die Archive sind nur aufbereitete Versionen für Suchmaschinen. Oben ist immer ein Link zum eigentlichen Thread.
|

21-10-2009, 14:58
|
|
someRookie
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 50
|
|
http://www.php-resource.de/forum/newreply.php?do=postreply&t=97834
Zitat:
Zitat von AmicaNoctis
|
DANKESCHÖN !
Der Codeschnipsel von Combie war ja wirklich total klasse!
Nur ein paar kleinigkeiten für den ersten und letzten Eintrag berücksichtigen und schon läufts super.
hat vielliecht jemand lust und zeit mir zu sagen, ob und wo ich diesen code ode Datenbankteil optimieren kann ?
PHP-Code:
// $x = aktuelle Position // $y = +/- eine Position
// Eintrag Reihenfolge verändern if($update==true) { $sql = mysql_query("UPDATE entries SET position = $x + $y - position WHERE position IN ($x, $y)"); }
// Ausgabe $sql = mysql_query("SELECT * FROM entries ORDER BY position ASC"); $max = mysql_num_rows($sql); while($row=mysql_fetch_array($sql)) { if(($row['position']-1)==0) {$go_up=1;} else { $go_up=($row['position']-1);} // Damit der erste Eintrag keine Null wird if($row['position']+1>$max) {$go_down = $max;} else {$go_down = $row['position']+1;}
echo $row['name'].' '.' <a href="file.php?update=true&x='.$row['position'].'&y='.$go_up.'"> + </a>'.''.' <a href="file.php?update=true&x='.$row['position'].'&y='.$go_down.'"> - </a>'; echo '<br />'; }
/* CREATE TABLE IF NOT EXISTS `entries` ( `id` int(11) NOT NULL AUTO_INCREMENT, `position` int(11) NOT NULL, `name` varchar(100) NOT NULL, PRIMARY KEY (`id`), KEY `position` (`position`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
-- -- Daten für Tabelle `entries` --
INSERT INTO `entries` (`id`, `position`, `name`) VALUES (1, 1, 'Menü1'), (2, 2, 'Menü2'), (3, 3, 'Menü3'), (4, 4, 'Menü4'), (5, 5, 'Menü5'), (6, 6, 'Menü6'), (7, 7, 'menü7'); */
Geändert von someRookie (21-10-2009 um 16:48 Uhr)
|

21-10-2009, 15:23
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Du machst zweimal die selbe Abfrage, um $max zu erhalten.
|

21-10-2009, 16:50
|
|
someRookie
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 50
|
|
wow... der fehler muss mir hier beim editieren passiert sein!
in meinem scipt kommt das nämlich so nicht vor.
habs nun auch hier abgeändert..
danke schon mal für diesen Hinweis!
|
|
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
|