php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Zuordnung ueber Zeichenkette


 
photek
21-08-2003, 14:55 
 
Hallo,
ich habe eine DB-Tabelle mit 2 Spalten. In der Ersten wird eine 6stellige Nummer in der Zweiten der dazugehoerige Name gehalten. Die Nummer brauche ich um Werten einer anderen Tabelle den entsprechenden Name zuzuordenen und zu kategorisieren. Jetzt moechte ich mir die Namen als Liste (DropDown) ausgeben lassen, das klappt schon. Alledings sollen die Namen dann noch eingerueckt werden.

Bsp:
Nummer Name
100000 Kategorie 1
110000 ->Kategorie 2
111000 -->Kategorie 3
usw.

Hat jemand eine Idee wie ich die Nummern ruckwaerts bis !=0 auslesen kann?
Danke, Photek

 
DSB
21-08-2003, 15:16 
 
Ein Denkansatz (wenn Du wirklich nur mit Nullen und Einsen arbeitest):

- Nummer in einen String wandeln
- Nullen rauslöschen
- Anzahl der übrigen Stellen ergibt die Stufe der Kategorie
- Abhängig von der Stufe entsprechende Einrückungen bei der Ausgabe vornehmen

Oder meintest Du den SQL-Query?

SELECT Nummer, Name FROM Tabelle ORDER BY Nummer DESC

 
photek
21-08-2003, 15:29 
 
Hallo, ich arbeite nat. nicht nur mit 1+0. Es kann auch die Nummer z.B. 205630 auftreten. Dann von rechts nur eine 0-->Kat. 5 usw.
Ich darf also nur die Nullen von Rechts lesen od. strrev und linksherum...
Danke, Photek

 
wahsaga
21-08-2003, 15:37 
 
Original geschrieben von photek
Hallo, ich arbeite nat. nicht nur mit 1+0. Es kann auch die Nummer z.B. 205630 auftreten. Dann von rechts nur eine 0-->Kat. 5 usw.
Ich darf also nur die Nullen von Rechts lesen od. strrev und linksherum...
dann würde sich eventuell eine abfrage des divisionsrestes beim teilen durch zehner-potenzen anbieten.

205630 % 10^5 = 5630
205630 % 10^4 = 5630
205630 % 10^3 = 630
205630 % 10^2 = 30
205630 % 10^1 = 0
205630 % 10^0 = 0
du gehst also diese berechnung von oben nach unten durch (dazu bietet sich z.b. eine for-schleife von 5 bis 0 an), und sobald zum ersten mal kein divisionsrest rauskommt, hast du deine kategorie-stufe gefunden.
die kategorie-stufe ist dann gleich 6 minus dem wert, den dein schleifen-zähler gerade hat, wenn zum ersten mal 0 als divisionsrest rauskommt - in diesem falle also 6 - 1 = 5.

 
photek
22-08-2003, 14:47 
 
Hallo wahsaga,

ich habe es jetzt so gemacht:

<?PHP
$anzahl_rechte_nullen = strlen($string) - strlen(strrev($string)+0);
//echo "Anzahl der rechten Nullen: ". $anzahl_rechte_nullen."<br/>";

switch ($anzahl_rechte_nullen)
{
case "6":
echo "------>";
break;
case "5":
echo "----->";
break;
case "4":
echo "---->";
break;
case "3":
echo "--->";
break;
case "2":
echo "-->";
break;
case "1":
echo "->";
break;
case "0":
echo "+";
break;
}
?>

Danke, Pho Tek

 
fiderallalla
22-08-2003, 16:19 
 
Den Pfeil würd ich mit print str_repeat("-",$anzahl).">"; machen...

7-/anz


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:58 Uhr.