Relian Geschrieben 31. Mai 2004 Teilen Geschrieben 31. Mai 2004 Hallo Miteinander, ich hoffe ihr könnt mir bei folgendem Problem helfen. Also…es gibt eine MySQL-Datenbank, in der diverse Artikel geschrieben sind. Aufbau der Spalten der Tabelle: einkaufspreis,listenpreis,bezeichnung,beschreibung,bild,link,artikelnummer Die Artikel sollen nun anhand der Artikelnummern, aufsteigend sortiert, auf einer Website dargestellt werden. Die Artikelnummer setzt sich zusammen aus (ohne Anführungsstriche) „A*1100“. Damit ich also überhaupt eine Sortierfunktion schreiben kann, schneide ich mit dem Befehl substr() das „A“ und das „*“ weg. Soweit so gut. Das Problem ist jetzt eigentlich die Sortierfunktion, ich habe da jetzt schon einen Ansatz geschrieben, komme aber irgendwie nicht weiter, vor allem auch, was die Ausgabe angeht. Aber ich schreibe am besten einfach mal den Quelltext, dann könnt ihr euch wohl den Zusammenhang eher vorstellen . <? include "mysql.class"; $x=new mysql(); $x->init("Host","Port","Datenbank","Tabelle","Benutzername","Passwort"); $x->oeffnen(); $query="select einkaufspreis,listenpreis,bezeichnung,beschreibung,bild,link,artikelnummer from Tabelle"; $x->daten_holen($query); $x->schliessen(); ?> <table border=0 align=center cellspacing=0 width=50% > <? //Hier wird das „A*“ von jeder Artikelnummer weggeschnitten und in ein Array geschrieben. $arr=array(); for ($i=0; $i<= $x->anzahl; $i=$i++){ if (substr($x->matrix[$i][6],0,2) == "A*") $arr[]=$i; else return 0; } //Jetzt kommt die eigentliche Sortierfunktion. Unvollständig. $arr1=array(); for ($i=0; $i<=count($arr); $i++) { for ($j=0; $j<=count ($arr1); $j++) { if ($arr[$i]< $arr1[$j]){ for ($k=count($arr1)-2; $k>=$j; $k-- ) $arr1[$j] = $arr[$i]; } if ($arr[$i] > $arr1[$j]){ continue; } else return 0; } } //Jetzt kommt die Ausgabe: for ($i=0; $i<=count($arr1); $i=$i+3) { echo "<tr>"; echo "<td width=40%><font face=\"arial\" size=\"2\" color=red>".$arr1[$i][2]."<br>für <b> ".$arr1[$i][1]." Euro </b></font><a href=\"beschreibung1.html\" target=\"_blank\">mehr...</a> </td>"; echo "<td><font face=\"arial\" size=\"2\" color=red>".$arr1[$i+1][2]."<br>für <b> ".$arr1[$i+1][1]." Euro </b></font><a href=\"beschreibung1.html\" target=\"_blank\">mehr...</a> </td>"; echo "<td><font face=\"arial\" size=\"2\" color=red>".$arr1[$i+2][2]."<br>für <b> ".$arr1[$i+2][1]." Euro </b></font><a href=\"beschreibung1.html\" target=\"_blank\">mehr...</a> </td>"; echo "</tr>"; } ?> </table> [/PHP] Ich hoffe, ihr kommt mit den Codeschnippseln zurecht und könnt mir bei meinem Problem helfen. Vielen Dank im vorraus! Mit freundlichen Grüßen Relian :floet: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 31. Mai 2004 Teilen Geschrieben 31. Mai 2004 Hallo, versuch doch mal select einkaufspreis,listenpreis,bezeichnung,beschreibung,bild,link,artikelnummer from Tabelle order by substring(artikelnummer,2) [/php] Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 31. Mai 2004 Teilen Geschrieben 31. Mai 2004 Moin! Was spricht gegen sowas? $query="select einkaufspreis,listenpreis,bezeichnung,beschreibung,bild,link,artikelnummer from Tabelle order by artikelnummer"; [/PHP] Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Relian Geschrieben 31. Mai 2004 Autor Teilen Geschrieben 31. Mai 2004 Hallo, danke erstmal für die Antworten, aber es soll schon nach dem Prinzip gelöst werden, was ich vorgegeben hatte, weil sich so mehr Bearbeitungsmöglichkeiten auftun. Weiss jemand weiter ? MfG Relian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 1. Juni 2004 Teilen Geschrieben 1. Juni 2004 Hallo, danke erstmal für die Antworten, aber es soll schon nach dem Prinzip gelöst werden, was ich vorgegeben hatte, weil sich so mehr Bearbeitungsmöglichkeiten auftun. Weiss jemand weiter ? MfG Relian und welche möglichkeiten hast du, die du mit einer sql sortierung nicht hast? für mehrere verschiedene sortierungen kannst du dein script z.b. auch so halten: <? include "mysql.class"; // Deine Spalte nach der sortiert werden soll $order = !emtpy( $_GET["order"]) ? $_GET["order"] : "artikelnummer"; // ASC bzw DESC je nach dem wie du sortieren willst $ordertyp = !emtpy( $_GET["ordertyp"]) ? $_GET["ordertyp"] : "asc"; $x=new mysql(); $x->init("Host","Port","Datenbank","Tabelle","Benutzername","Passwort"); $x->oeffnen(); if ( $query="select einkaufspreis,listenpreis,bezeichnung,beschreibung ,bild,link,artikelnummer from Tabelle order by ". $order ." ". $ordertyp; $x->daten_holen($query); $x->schliessen(); . . . ?> [/PHP] Wenn du dass noch ein wenig umbaust, dann kannst du auch arrays übergeben und somit nach mehreren kriterien sortieren Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.