php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2005, 19:39  
Neuer Benutzer
 
Registriert seit: 26.12.2003
Beiträge: 12
denax
denax eine Nachricht über ICQ schicken
Standard need help: <prev | next> bei viewpic...

hab schon gesucht hier im forum, aber nix gefunden dazu, das mir weiter hilft..

mein problem ist, dass ich das nächste und vorherige bild aus der PICS tabelle (mysql) auslesen will, welches album_id=$album_id hat

das LETZTE und das ERSTE bild herauszulesen war kein problem:
$query = mysql_query("SELECT * FROM pics where album_id='$album_id' order by id asc limit 1");
$array=mysql_fetch_array($query);
$firstpic = $array['id']; bzw. order by id desc -> lastpic

es ist eben so, dass die pic id's zu einem album nicht aufeinander folgen (müssen), sprich z.b.: [1, 2, 3, 10, 27, 190, 191, 192, 193]

wenn ich jetzt bei ?show=pic&id=27 bin, will ich dass $next=190 und $prev=10 ist...

hoff ihr versteht was mein problem ist? (dazwischen sind die ID's vielleicht gelöscht worden oder auch noch vorhanden, einfach mit einer anderen ALBUM_ID)...

BITTE HELFT MIR *sniff*
denax ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.01.2005, 20:08  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Tipp:
Limit hat 2 Parameter. Der erste gibt an ab welchem Datensatz gelesen werden soll und der zweite wieviele.
Du übergibst also nicht mehr die ID sondern einfach das wievielte Bild angeschaut werden soll...

(Tipp 2: id's gibt es nicht. Du schreibst ja auch nicht Auto's und Büche'r. Hoffe ich.)
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 14.01.2005, 20:17  
Neuer Benutzer
 
Registriert seit: 26.12.2003
Beiträge: 12
denax
denax eine Nachricht über ICQ schicken
Standard

tipp2: hehe

tipp: auch schon gelesen/gehört.. verstehe aber nicht ganz, was genau das bewirkt und v.a. wie mir das weiterhelfen soll..
__________________
www.denax.ch
denax ist offline  
Alt 14.01.2005, 20:28  
Neuer Benutzer
 
Registriert seit: 26.12.2003
Beiträge: 12
denax
denax eine Nachricht über ICQ schicken
Standard

hm, oke... abr ich weiss ja nicht genau ab welchem datensatz gelesen werden soll, v.a. weil die IDs nicht aufeinander folgen.. sondern:
die 1. id vom album_id=2 ist z.b. 150 und ja nicht gleich 1... also muss ich bei limit ab der PICS.ID,1 lesen! verstehst du?

ich kenne ja die datensatz nummer ab der es lesen soll nicht, nur die id..
__________________
www.denax.ch
denax ist offline  
Alt 14.01.2005, 20:31  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von denax
hm, oke... abr ich weiss ja nicht genau ab welchem datensatz gelesen werden soll, v.a. weil die IDs nicht aufeinander folgen.. sondern:
die 1. id vom album_id=2 ist z.b. 150 und ja nicht gleich 1... also muss ich bei limit ab der PICS.ID,1 lesen! verstehst du?
Das sollte - falls ich dich richtig verstandne habe - eigentlich kein Problem darstellen.

Beispiel, nur schnel hingetippt enthält also wahrscheinlich noch Fehler und du solltest noch Kontrollen einbauen.
Code:
/wenn ?nr= gesetzt dann schreibe es in start sonst setze es gleich 0
$start = isset($_GET['nr']) ? $_GET['nr'] else '0';

$query = mysql_query('SELECT id, ... FROM pics WHERE album_id="'.$album_id.'" ORDER BY id ASC LIMIT '.$start.',1');
$array=mysql_fetch_array($query);
//Ausgabe.


//next:
echo 'next ';

//zurück
echo 'back';
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 15.01.2005, 04:30  
Neuer Benutzer
 
Registriert seit: 26.12.2003
Beiträge: 12
denax
denax eine Nachricht über ICQ schicken
Standard

also so wie ich das verstehe ist $start=$id ??? (also meiner id fürs pic?)... die pic id ist z.b. 1303 aber die bilder zum album mit der id 2 sind nur von 1300 bis 1350.. wenn ich jetzt "limit $id,1" mache holt es ja den 1303.datensatz heraus.. aber es sollte ja den 4. herausholen?! hm... steh ich auf der leitung oder kann ich schlecht erklären oder hast du mich einfach missverstanden?!
__________________
www.denax.ch
denax ist offline  
Alt 15.01.2005, 13:58  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von denax
also so wie ich das verstehe ist $start=$id ??? (also meiner id fürs pic?)
Nein.

Beispiel, Tabelle in Datenbank:
Code:
id | album_id | text
1 | 42 | a
4 | 42 | b
6 | 23 | c
9 | 42 | d
Code:
SELECT id, album_id, text FROM tabelle WHERE album_id = 42 ORDER BY id ASC LIMIT 1,1
Als erstes werden alle Datensätze selektiert, bei der die album_id = 42 ist, wir haben nun:
Code:
1 | 42 | a
4 | 42 | b
9 | 42 | d
Jetzt wird nach der Spalte id sortiert. Wir haben also:
Code:
1 | 42 | a
4 | 42 | b
9 | 42 | d
Jetzt kommt das LIMIT. Angefangen zu zählen wird bei 0. Wir haben eine 1 angegeben also wird ab dem 2. Datensatz ausgewählt:
Code:
4 | 42 | b
9 | 42 | d
Wir haben aber noch ein LIMIT 1,1. also wird ab dem 2. Datensatz ein Datensatz ausgewählt. Sprich:
Code:
4 | 42 | b
erhöhn wir jetzt bei Limit die erste zahl um eins (LIMIT 2,1) wird der Datensatz mit dem d ausgewählt. Bei LIMIT 0,1 wird der mit a ausgelesen.

Ich hoffe so ist es klar geworden.
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 15.01.2005, 17:32  
Neuer Benutzer
 
Registriert seit: 26.12.2003
Beiträge: 12
denax
denax eine Nachricht über ICQ schicken
Standard

JA TOLL *g* ich bin auch dumm!! hätte ich doch früher geschaut, ob du was geschrieben hast (das fenster war offen, aber ich hab nicht geschaut/gelesen)...

auf jeden fall habe ich das vorher auch herausgefunden.. und es funkt. soweit auch hehe!!! VIELEN DANK für die geduld...

Code:
// select next & prev pic
$query = mysql_query("SELECT * from pics where (album_id='$album_id' && id>'$id') order by id asc LIMIT 1");
$get = mysql_fetch_array($query);
$next = $get["id"];
$query = mysql_query("SELECT * from pics where (album_id='$album_id' && id<'$id') order by id desc LIMIT 1");
$get = mysql_fetch_array($query);
$prev = $get["id"];
__________________
www.denax.ch
denax ist offline  
 


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
Newsletter - need help TeazY PHP Tipps 2008 4 03.01.2008 19:25
Layout schwimmt - need help ! php1 HTML, Usability und Barrierefreiheit 6 14.12.2005 17:57
Geburtstaggsgeschenk für meinen Dad...need Help please PHP Tipps 2005 14 09.04.2005 17:20
frage nach bestimmten funktionen -> Update need more help PHP Tipps 2005 13 23.03.2005 10:09
I need help - PHP&MySQL PHP Tipps 2005 5 09.02.2005 15:13
Button soll mehrere Ereignisse starten !? need your help PHP Tipps 2004 5 27.07.2004 18:00
need Help zu PHPSESSID vs valid XHTML PHP Tipps 2004 2 22.07.2004 16:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php prev, php next prev, php prev next

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:00 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.