phpbar.de logo

Mailinglisten-Archive

[dbs] Nachbarelemente ueber 2 Tabellen

[dbs] Nachbarelemente ueber 2 Tabellen

Dario Nuevo php at xbe.ch
Don Jul 14 16:27:43 CEST 2005


hallo susanne..

>Gesucht werden soll jetzt jeweils das vorhergehende/nächste Fest, wenn
>nach Ort und Festname sortiert wird.
>
also erstmals verwundert es mich doch, dass du mit festen usw hantierst 
und "nächste" erwähnst (also ne zeitachse hättest)  - aber dann keine 
veranstaltungszeiten in der datenbank zu haben scheinst.. hättest du 
nämlich irgendwo ein timestamp, könntest du auf dieses feld problemlos 
mit <= >= operatoren vergleichen ;-)

>WHERE ortsname >= '$ortsName' AND festname > '$festName'
>  
>
ich hab die mysql-doku mal durchforstet, jedoch nichts über solche 
stringvergleiche gefunden. ich denk nicht, dass so ein where viel hergibt ;)
schau dir mal diese seite an, sie geht über string-vergleiche
http://dev.mysql.com/doc/mysql/en/string-comparison-functions.html

punkt ist, dass strings nur binär verglichen werden sollten, also kannst 
du noch die binary-angabe setzen. ob aber jedoch dann "grösser 
als"/"kleiner als" gleich verstanden wird wie es sortiert wird - keine 
ahnung ;-) sowieso so eine unsaubere sache..

meine annahme: du hast 1 php-seite welche immer 1 fest anzeigt und du 
willst "next"/"prev"-links anzeigen und dann den "nächsten" eintrag 
anzeigen. seh ich das richtig? ;-)
wenn ja: führ doch einfach jedes mal das ganze query aus und lies alle 
einträge aus (ich nehm nicht an, dass es sehr viele sind). dann machst 
du einen array mit all diesen einträgen. dann benutzt du einfach diesen 
array als recordset und gibts den array-index weiter.
also wär der index am anfang 0, dann 1 usw..

so machst du dann einfach immer
<snip>
<?
$index = $_GET["num"];
$aktueller_event = $alle_events[ $index};
?>
<a href="events.php?num=<?= $index+1; ?>">next</a>
</snip>

usw.. natürlich musste noch paar sachen abfangen (zb kein next link wenn 
$index < 1 usw.. ;-)

ein alternativer denkweg wär auch, dass dir mysql eine eigene laufnummer 
(quasi ein feld mehr mitgibt und alle records durchnummeriert wenn du 
sie ausliest). ich glaub es gibt da ne funktion, hab sie aber nicht mehr 
gefunden..

so, da haste mal paar inputs ;)
gruss
dario


php::bar PHP Wiki   -   Listenarchive