Auslesen von MySQL-Daten

Relian

Erster Beitrag
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 :angel .

PHP:
<?
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>

Ich hoffe, ihr kommt mit den Codeschnippseln zurecht und könnt mir bei meinem Problem helfen.
P.s: das ganze soll nicht mit "ORDER BY" gelöst werden!

Vielen Dank im vorraus!
Mit freundlichen Grüßen Relian
:bier
 
Ich verstehe nicht ganz, warum du ohne Order by Arbeiten willst, das ist doch wesentlich einfacher und effektiver.

Wenn sich der Anfangsbuchstabe immer aus "A*" zusammensetzt, dann wäre es mit "Order by" egal, da er dann ja immer nach der Nummer sortiert.

Man könnte auch eine Tabellenspalte nur für die Suchfunktion erstellen.
Beim Speichern der Daten, schneidest Du dann alles nicht benötigte weg, so das dort hinein nur noch die Zahlenfolge geschrieben wird.
Bei der Ausgabe brauchst Du dann nur noch nach dieser Spalte zu sortieren.

Wenn man schon der Datenbank das Sortieren überläßt, läuft das Script auch am Ende schneller,
von daher verstehe ich nicht ganz, warum du solch eine komplizierte Sortierfunktion basteln willst.
 
*edit* Ach Mist, ich sollte erst lesen, dann posten...kein Order by... *selfslap* bitte löschen. :rolleyes:
 
Oben