PHP/SQL: Sortierung innerhalb einer do-while Schleife

PHP/SQL: Sortierung innerhalb einer do-while Schleife

am 02.08.2006 14:57:28 von Karsten Jacob

Hi NG.

Folgendes Problem:

Ich habe zwei Abfrage:

1.

$query_kartennummer = sprintf("SELECT kartennummer FROM tankdaten GROUP
BY kartennummer");
$kartennummer = db_query($query_kartennummer);
$row_kartennummer = mysql_fetch_assoc($kartennummer);

2.




Innerhalb des Auswahlmenüs werden jetzt die Zugnummern in der
Reihenfolge der davon abhängigen Kartennummern angezeigt.

z.b.

Kartennummer 1 - Zugnummer 257
Kartennummer 2 - Zugnummer 100
Kartennummer 3 - Zugnummer 111
Kartennummer 4 - Zugnummer 102
Kartennummer 5 - Zugnummer 144
Kartennummer 6 - Zugnummer 139


Ich möchte aber gerne die Zugnummern aufsteigend innerhalb des
Auswahlmenüs sortieren.

Geht das überhaupt?

Gruß,

Karsten

Re: PHP/SQL: Sortierung innerhalb einer do-while Schleife

am 02.08.2006 15:04:34 von Tobias Kutzler

Karsten Jacob schrieb:
> 1.
> $query_kartennummer = sprintf("SELECT kartennummer FROM tankdaten GROUP
> BY kartennummer");
> $kartennummer = db_query($query_kartennummer);
> $row_kartennummer = mysql_fetch_assoc($kartennummer);
> 2.
>
>
> Innerhalb des Auswahlmenüs werden jetzt die Zugnummern in der
> Reihenfolge der davon abhängigen Kartennummern angezeigt.
>
> z.b.
> Kartennummer 1 - Zugnummer 257
> Kartennummer 2 - Zugnummer 100
> Kartennummer 3 - Zugnummer 111
> Kartennummer 4 - Zugnummer 102
> Kartennummer 5 - Zugnummer 144
> Kartennummer 6 - Zugnummer 139
>
> Ich möchte aber gerne die Zugnummern aufsteigend innerhalb des
> Auswahlmenüs sortieren.

Dann mach nur eine Abfrage mit einem ORDER BY:

SELECT zugnummer, kartennummer FROM lkw ORDER BY kartennummer

Ciao,
Tobias

Re: PHP/SQL: Sortierung innerhalb einer do-while Schleife

am 02.08.2006 15:06:19 von thborsdorf

Hallo Karsten!

Karsten Jacob schrieb am 02.08.2006 14:57:
> Ich möchte aber gerne die Zugnummern aufsteigend innerhalb des
> Auswahlmenüs sortieren.
> Geht das überhaupt?

SELECT zugnummer FROM lkw WHERE zugnummer in (
SELECT kartennummer FROM tankdaten GROUP BY kartennummer
) ORDER BY zugnummer;

> $query_kartennummer =
> sprintf("SELECT kartennummer FROM tankdaten GROUP BY kartennummer");

Wieso nicht
$query_kartennummer = "SELECT kartennummer FROM tankdaten GROUP BY
kartennummer";

> Gruß,
> Karsten

MfG Thomas.

Re: PHP/SQL: Sortierung innerhalb einer do-while Schleife

am 02.08.2006 15:08:53 von Tobias Kutzler

Karsten Jacob schrieb:
> 1.
> $query_kartennummer = sprintf("SELECT kartennummer FROM tankdaten GROUP
> BY kartennummer");
> $kartennummer = db_query($query_kartennummer);
> $row_kartennummer = mysql_fetch_assoc($kartennummer);
> 2.
>
>
> Innerhalb des Auswahlmenüs werden jetzt die Zugnummern in der
> Reihenfolge der davon abhängigen Kartennummern angezeigt.
>
> z.b.
> Kartennummer 1 - Zugnummer 257
> Kartennummer 2 - Zugnummer 100
> Kartennummer 3 - Zugnummer 111
> Kartennummer 4 - Zugnummer 102
> Kartennummer 5 - Zugnummer 144
> Kartennummer 6 - Zugnummer 139
>
> Ich möchte aber gerne die Zugnummern aufsteigend innerhalb des
> Auswahlmenüs sortieren.

Dann mach nur eine Abfrage mit einem ORDER BY:

SELECT zugnummer, kartennummer FROM lkw ORDER BY kartennummer, zugnummer

Ciao,
Tobias

Re: PHP/SQL: Sortierung innerhalb einer do-while Schleife

am 02.08.2006 16:12:43 von Karsten Jacob

Tobias Kutzler schrieb:
> Karsten Jacob schrieb:
>> 1.
>> $query_kartennummer = sprintf("SELECT kartennummer FROM tankdaten
>> GROUP BY kartennummer");
>> $kartennummer = db_query($query_kartennummer);
>> $row_kartennummer = mysql_fetch_assoc($kartennummer);
>> 2.
>>
>>
>> Innerhalb des Auswahlmenüs werden jetzt die Zugnummern in der
>> Reihenfolge der davon abhängigen Kartennummern angezeigt.
>>
>> z.b.
>> Kartennummer 1 - Zugnummer 257
>> Kartennummer 2 - Zugnummer 100
>> Kartennummer 3 - Zugnummer 111
>> Kartennummer 4 - Zugnummer 102
>> Kartennummer 5 - Zugnummer 144
>> Kartennummer 6 - Zugnummer 139
>>
>> Ich möchte aber gerne die Zugnummern aufsteigend innerhalb des
>> Auswahlmenüs sortieren.
>
> Dann mach nur eine Abfrage mit einem ORDER BY:
>
> SELECT zugnummer, kartennummer FROM lkw ORDER BY kartennummer, zugnummer

Wie soll das gehen? zugnummer und kartennummer sind in zwei
verschiedenen Tabellen.

Gruß,

Karsten

Re: PHP/SQL: Sortierung innerhalb einer do-while Schleife

am 02.08.2006 16:19:23 von Karsten Jacob

Borsdorf, Thomas schrieb:
> Hallo Karsten!
>
> Karsten Jacob schrieb am 02.08.2006 14:57:
>> Ich möchte aber gerne die Zugnummern aufsteigend innerhalb des
>> Auswahlmenüs sortieren.
>> Geht das überhaupt?
>
> SELECT zugnummer FROM lkw WHERE zugnummer in (
> SELECT kartennummer FROM tankdaten GROUP BY kartennummer
> ) ORDER BY zugnummer;
>
> > $query_kartennummer =
> > sprintf("SELECT kartennummer FROM tankdaten GROUP BY kartennummer");
>

Dankeschön Thomas, das isses.

Tüs,

Karsten

Re: PHP/SQL: Sortierung innerhalb einer do-while Schleife

am 02.08.2006 16:25:09 von Sebastian Wessel

Karsten Jacob schrieb:
> Tobias Kutzler schrieb:
>> Karsten Jacob schrieb:
>> Dann mach nur eine Abfrage mit einem ORDER BY:
>>
>> SELECT zugnummer, kartennummer FROM lkw ORDER BY kartennummer, zugnummer
>
> Wie soll das gehen? zugnummer und kartennummer sind in zwei
> verschiedenen Tabellen.

Dann schreib halt "SELECT lkw.zugnummer, tankdaten.kartennummer ORDER BY
tankdaten.kartennummer, lkw.zugnummer"

ungetestet und wahrscheinlich noch mit einem kleinen Fehler - ich weiß
grad nicht ob da ein "FROM xxx" reinmuss in die Abfrage.

LG

Re: PHP/SQL: Sortierung innerhalb einer do-while Schleife

am 02.08.2006 16:30:17 von Tobias Kutzler

Karsten Jacob schrieb:
>> Dann mach nur eine Abfrage mit einem ORDER BY:
>>
>> SELECT zugnummer, kartennummer FROM lkw ORDER BY kartennummer, zugnummer
>
> Wie soll das gehen? zugnummer und kartennummer sind in zwei
> verschiedenen Tabellen.

Dann nochmal ne Frage von mir: Wie sind die Tabellen lkw und tankdaten
miteinander verknüpft und welche Spalten besitzen Sie?

Denn wenn diese Abfrage die gewünschten Daten liefert, dann ist Dein DB
Design kaputt, da Du hier zugnummer mit kartennummer verknüpfst:

$query_zugnummer = sprintf("SELECT zugnummer FROM lkw WHERE
zugnummer = '".$row_kartennummer['kartennummer']."'");

Sprich: Du liest mit diesem Statement alle Zugnummern aus, die als
Kartennummer vorhanden sind. Bin ich etwas verwirrt.

Ciao,
Tobias