You are not logged in.

  • Login

1

Tuesday, August 30th 2011, 10:43am

MySQL Werte ausgeben

Ich versuche momentan aus meiner Tabelle chipsatz aus dem Feld nb 2 Einträge vor und 2 Einträge nach dem aktuell ausgegeben Wert auszugeben, und zwar nicht nach id sondern in der alphabetischen Reiehnfolge.

Beispiel:
Tabellename: chipsatz
Feldname: nb
nb ist mit folgenden Werten gefüllt:
ID nb
1 Haus
2 Tisch
3 Wand
4 Sand
5 TV
6 Zeitung

Ich habe mir mit einer while Schleife mit "Where id=$id" den Wert "Sand" mit der ID 4 ausgeben lassen. Jetzt möchte ich aber, dass die 2 Werte vor "id 4" und 2 Werte nach "id 4" mit ausgegeben werden. Wäre ja einfach jedoch soll die Ausgabe nicht nach Sortierung von ID geschehen, wie ich es bisher gemacht habe, sondern alphabetisch nach "nb".
Die Ausgabe nach "id" wäre: Tisch, Wand, Sand, TV, Zeitung.
Die Ausgabe soll aber nach "nb" sein: Haus, Tisch, Sand, Wand, Zeitung.

Hier mein momentane Methode nach "id":

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php if (isset($_GET['id'])) {
echo "Ausgabe:&nbsp;&nbsp;";
$idd = $_GET['id']-2;
for ($i = $idd; $i <= $idd+4; $i++) {
  $abfrage2 = "SELECT * FROM chipsatz WHERE id='$i'";
  $ergebnis2 = mysql_query($abfrage2);
  while($row = mysql_fetch_object($ergebnis2)) {
    $iddd = $row->id;
    $chipp = $row->chipsatz;
    $chipp = explode("<br>", $chipp);
    $chipp = explode(" (", $chipp[0]);
  }
  if ($_GET['id'] == $iddd) {
    echo "<b>".$chipp[0]."</b>&nbsp;&nbsp;&nbsp;\n";
  } else {
    if ($chipp[0] != "") {echo "<a href=\"http://www.xy.de/chipsatz.php?id=$iddd\">".$chipp[0]."</a>&nbsp;&nbsp;&nbsp;\n";}
  }
}
}
?>


Ich weiß ist kompliziert und dazu kommt noch meine schlechte Erklärungskunzt. Ich wäre aber für jeden Versuch eurerseits dankbar.

2

Tuesday, August 30th 2011, 4:32pm

viieleicht mit union?

PL/SQL Code

1
2
3
4
5
SELECT * FROM chipsatz WHERE nb < 'sand' AND ROWNUM < 3 ORDER BY 2 DESC
UNION
SELECT * FROM chipsatz WHERE nb = 'sand'
UNION
SELECT * FROM chipsatz WHERE nb > 'sand' AND ROWNUM < 3 ORDER BY 2

ca so?

3

Friday, September 2nd 2011, 5:21pm

OK ich probiere es mal.

Danke.

Social bookmarks