Avatar billede dj-sejler Praktikant
20. februar 2005 - 21:47 Der er 9 kommentarer og
2 løsninger

mysql: den næste post med gid=x

Hej...

jeg skal brugen en sql, eller noget andet der virker, til at finde den næste (og den forrige) post i min database hvor kriteriet gid er opfyldt!

eks
har id=142, gid=23

jeg skal bruge den næste "id" hvor gid = 23
eksempelvis: id=150

tænkte dette:
$prew = "SELECT id FROM image WHERE gid = ".$gid." and id < ".$log['id']." ORDER by id";
$pre = mysql_query($prew) or die("MySQL fejl: " . mysql_error());

men får følgende fejl: Resource id #7
når jeg udskriver $pre

nogen der kan hælpe?
Avatar billede dj-sejler Praktikant
20. februar 2005 - 22:23 #1
Er der ikke nogen der kan hjælpe?
har jeg ikke forklaret det godt nok?
Avatar billede tigertool Nybegynder
20. februar 2005 - 22:34 #2
Hvordan udskriver du $pre og hvordan er din tabel struktur?
Avatar billede dj-sejler Praktikant
20. februar 2005 - 22:38 #3
echo $pre;

og det er tal jeg alle søjler jeg spørger om... (det var det du mente ikk!?)
Avatar billede tigertool Nybegynder
20. februar 2005 - 22:39 #4
Men du skal jo lave noget ala:

while ($row = mysql_fetch_row($pre))
{
print_r($row);
}

for at udskrive noget data fra mysql.

NB! Det er kun et eksempel - det skal sikkert rettes en del til.
Avatar billede dj-sejler Praktikant
20. februar 2005 - 22:48 #5
jae... det er i hvert fald tættere på målet...
men jeg skal bare bruge dén næste... altså kun én...
hvis du forstår...

nu har skriver jeg:
$prew = "SELECT id FROM image WHERE gid = ".$gid." and id < ".$log['id']." ORDER by id";
    $prew2 = mysql_query($prew) or die("MySQL fejl: " . mysql_error());
while ($pre = mysql_fetch_row($prew2)) {
  print_r($pre);
}

resultat:

Array ( [0] => 135 ) Array ( [0] => 136 ) Array ( [0] => 138 ) Array ( [0] => 139 ) Array ( [0] => 141 ) Array ( [0] => 142 ) Array ( [0] => 143 )
Avatar billede dj-sejler Praktikant
20. februar 2005 - 22:51 #6
menningen er at jeg så bruger den værdi $pre har fået til at angive den næste post, længere nede i koderne...
Avatar billede sukos Juniormester
21. februar 2005 - 00:37 #7
Du skal jo først lave en LIMIT på antal poster du henter
Dernæst kan du bruge mysql_result($prew, 0)

$prew = mysql_query("SELECT id FROM image WHERE gid = '".$gid."' and id < '".$log['id']."' ORDER by id DESC LIMIT 0,1") or die (mysql_error());

$new_id = mysql_result($prew, 0);

echo $new_id;
Avatar billede dj-sejler Praktikant
21. februar 2005 - 03:31 #8
jeg har fundet en løsning, men vil da overveje din sukos...
så smid et svar... nogen... begge måske...
Avatar billede tigertool Nybegynder
21. februar 2005 - 13:06 #9
svar
Avatar billede sukos Juniormester
21. februar 2005 - 13:13 #10
Vil da osse gerne svare! :O)

Men lidt mere info om hvordan du laver din side, kunne måske også hjælpe?

Har du f.eks. en query hvor du henter alle, kan du jo lave et array, og derefter bruge array_search() til at finde forrige og næste
Avatar billede sukos Juniormester
21. februar 2005 - 13:13 #11
nå, glemte sgu svaret!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester