mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 23.04.2024 09:44 Benutzername: Passwort: Auto-Login

Thema: [solved] [MySQL] - ausgewählte Zeilen nummerieren vom 16.01.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [solved] [MySQL] - ausgewählte Zeilen nummerieren
Autor Nachricht
fuchsbau
Threadersteller

Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht: Männlich
Verfasst Mi 16.01.2008 14:07
Titel

[solved] [MySQL] - ausgewählte Zeilen nummerieren

Antworten mit Zitat Zum Seitenanfang

Hallo Leute, folgendes Beispiel:

SELECT element_name, wertigkeit FROM elemente WHERE ... ORDER BY wertigkeit DESC

ergibt:

element7,9
element3,6
element9,4
element4,2
element8,1

Ich möchte jetzt wissen, welche Position beispielsweise element3 in dieser Auswahl einnimmt (wäre = 2),
möchte also nur für diese auswahl eine gedachte spalte anfügen, die von 1 bis n (n selektierte Elemente) runterzählt:

element7,9,1
element3,6,2
element9,4,3
element4,2,4
element8,1,5

Da gibt es einen Befehl, ich komm aber nicht drauf.

Danke für die Hilfe!


Zuletzt bearbeitet von fuchsbau am Do 17.01.2008 15:55, insgesamt 4-mal bearbeitet
  View user's profile Private Nachricht senden
Dyne

Dabei seit: 28.09.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Mi 16.01.2008 14:49
Titel

Antworten mit Zitat Zum Seitenanfang

Du bist sicher, dass es da einen SQL-Befehl geben soll? Mir fällt keiner ein. Lässt sich doch aber auch über die Applikation lösen, z.B. in PHP mit

Code:

$res = mysql_query("SELECT .... ");
$i=0;
while($row=mysql_fetch_assoc($res)){
$i++;
// hier die verarbeitung
}


$i enthält dann immer die jeweilige position des datensatzes.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
noisetoy

Dabei seit: 17.08.2007
Ort: Leipzig
Alter: 22
Geschlecht: Weiblich
Verfasst Mi 16.01.2008 14:53
Titel

Antworten mit Zitat Zum Seitenanfang

zwei
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Mi 16.01.2008 15:14
Titel

Antworten mit Zitat Zum Seitenanfang

du musst wohl auf zwei sql befehle zurückgreifen, dann klappts...

Code:

SET @counter = 0;
SELECT element_name, wertigkeit, (@counter:=(@counter+1)) as counter FROM elemente WHERE ... ORDER BY wertigkeit DESC;


Zuletzt bearbeitet von pixelpapst303 am Mi 16.01.2008 15:14, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
fuchsbau
Threadersteller

Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht: Männlich
Verfasst Mi 16.01.2008 15:20
Titel

Antworten mit Zitat Zum Seitenanfang

@pixelpapst303: danke, genau die vorgehensweise war's, die ich gesucht hab. * Applaus, Applaus *

@dyne: das hatt ich auch, wollts aber bequemer geliefert bekommen, trotzdem vielen dank!

@noisetoy:

Code:
$res = mysql_query('SELECT grund FROM gruende_warum_ich_nett_zu_noisetoy_sein_sollte;');
if ( !mysql_num_rows($res) ) {
    echo 'null';
}


ausgabe: null


Zuletzt bearbeitet von fuchsbau am Mi 16.01.2008 15:30, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
marten

Dabei seit: 12.05.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 12.05.2008 02:59
Titel

Antworten mit Zitat Zum Seitenanfang

Ist es auch möglich nach der temporären @COUNTER Zahl zu filtern?
Ich bräuchte nämlich eine Möglichkeit, zum Beispiel den 3. Eintrag eines SELECT's mit WHERE 'Gruppe' = 'Blub':


Vorher (Alle Elemente):
Code:

+ID+Gruppe+Name---+          SELECT * FROM `blub`
|01|Rot   |Oval   |     
|02|Gruen |Kreis  |
|03|Rot   |Kegel  |
|04|Blau  |Kugel  |
|05|Gruen |Quader |
|06|Rot   |Quadrat|
+--+------+-------+



Nur die, einer Gruppe:
Code:

+ID+Gruppe+Name---+          SELECT * FROM `blub` WHERE `Gruppe` = 'ROT'
|01|Rot   |Oval   |
|03|Rot   |Kegel  |
|06|Rot   |Quadrat|
+--+------+-------+


Gewünschte MySQL-INTERNE-Tabelle:
Code:

+ZAHL+ID+Gruppe+Name---+
|  1 |01|Rot   |Oval   |
|  2 |03|Rot   |Kegel  |
|  3 |06|Rot   |Quadrat|
+----+--+------+-------+


Die gewünschte Ausgabe wäre dann für $id = 3 ($id von PHP übergeben):
Code:

+ZAHL+ID+Gruppe+Name---+          SELECT *, `TEMP-ZAHL` FROM `blub` WHERE `Gruppe` = 'ROT'
|  3 |06|Rot   |Quadrat|          AND `ZAHL` = $id
+----+--+------+-------+



Das Ergebnis bräuchte ich - also den $id-ten Eintrag einer z.B. nach Gruppen gefilterten Liste


Vielen Dank für eure Hilfe, *Thumbs up!*

Marten Maager
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Mo 12.05.2008 12:35
Titel

Antworten mit Zitat Zum Seitenanfang

ich habe es nicht probiert, aber ich befürchte, das wird nicht klappen. denn counter ist ein interner zähler. heißt, wenn du ein statement haben willst, dass nur ein ergebnis ausspucken soll, dann wird dieser counter immer 1 sein, weil wegen nur ein ergebnis. das beisst sich also.

ich würde die abfrage würde ich dann in php machen. wäre wohl das einfachste...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen strato und mysql [solved]
[solved] [php/mysql] messenger funktion
[mysql] Nur aus lesen was größer als ... ist [solved]
[solved] / [PHP/MySQL] Ergebnis der Abfrage = 0
[solved][MySQL] neue/alte Geburtstage ermitteln.
[solved] / [PHP/MySQL] Abfrage: Alte Veranstaltungen filtern
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.