Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Mal wieder PHP
Frage
Hi Leute,
irgendwie habe ich ein Problem mit einer MySQL-Abfrage. In meiner DB habe ich mehrere gleiche Einträge, die in einem Pulldownmenü nur einmal erscheinen sollen.
Also, wenn ich die DB nach titel abfrage, erscheinen im Menü alle Einträge. Aber nicht Sortiert, sondern so:1,10,11,12,13,14,15,16,17,18,19,2,20,3,4,5,6,7,8,9
Wenn ich die DB nach rbild abfrage, bekomme ich auch Einträge, aber sie sind in der gleichen Farbe wie der Hintergrund,sprich: Man kann nix lesen.
Hier mal der Code, der mir nur Weiß auf Weiß gibt:
$result_ruck = mysql_query("SELECT DISTINCT rbild FROM ruck order by titel");
?>
<script language="JavaScript">
<!-- Verstecken für ältere Browser --
function surfto(form)
{
var myindex=form.dest.selectedIndex
window.open(form.dest.options[myindex].value, target="ruck1");
}
// Ende verstecken -->
</SCRIPT>
<Form Name="myform">
<Select Name="dest" onChange="surfto(this.form)" Size=1>
<option value="ruck1.php">Buchrücken</option>
<?php
while ($row_ruck = mysql_fetch_array ($result_ruck))
{
$titel = $row_ruck["titel"];
$rbild = $row_ruck["rbild"];
$datei = $row_ruck["datei"];
$nr = $row_ruck["nr"];
$id = $row_ruck["id"];
?>
<option value='ruck1.php?titel=<?php echo $titel ?>'><?php echo $titel ?></option>
<?php
}
?>
</select>
</form>
Also in der DB ist rbild als INT deklariert und titel als TEXT. Wenn ich oben in der Abfrage rbild mit titel ersetze, werden mir die Datensätze angezeigt. Aber nicht nach: 1,2,3,4,5,6,7,8,9,10.
Weiß jemand Rat?
Danke im Vorab.
Yessi
Antwort 1 von Nessus
Hi,
weil die Klausen Order by bei Textfeldern nicht Numerisch sondern Alphanummerisch sortiert. Wenn Du das Feld nicht vom Typus ändern kannst mußt Du dir eine Bubblesort herbeizaubern.
HTH
Nessus
weil die Klausen Order by bei Textfeldern nicht Numerisch sondern Alphanummerisch sortiert. Wenn Du das Feld nicht vom Typus ändern kannst mußt Du dir eine Bubblesort herbeizaubern.
HTH
Nessus
Antwort 2 von semi
...und in Deiner Abfrage selektierst Du nur die Spalte 'rbild'
Sachen gibt's, die gibt's nicht :-)
Gruß,
Michael
SELECT DISTINCT rbild,titel,datei,nr,id...Dazu passend:Sachen gibt's, die gibt's nicht :-)
Gruß,
Michael
Antwort 3 von YesAmerika
Hi,
danke für die Antworten. Ich habe das jetzt aber anders gelöst.
SELECT DISTINCT rbild FROM ruck order by titel + 0
So läuft es.
Trotzdem Danke.
Yessi
danke für die Antworten. Ich habe das jetzt aber anders gelöst.
SELECT DISTINCT rbild FROM ruck order by titel + 0
So läuft es.
Trotzdem Danke.
Yessi
Antwort 4 von semi
Irgendwie erstaunlich
$result_ruck = mysql_query("SELECT DISTINCT rbild FROM ruck order by titel + 0");
und dann
while ($row_ruck = mysql_fetch_array ($result_ruck))
{
$titel = $row_ruck["[b]titel"];
$rbild = $row_ruck["rbild"];
$datei = $row_ruck["[b]datei"];
$nr = $row_ruck["[b]nr"];
$id = $row_ruck["[b]id"];
...
Ich hätte nicht gedacht, dass sowas funktioniert :-)
