Gegen Bilderklau - Das Original

Registrierung Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Statistik Chat Karte Zur Startseite

Gegen Bilderklau - Das Original » Design, Website, Copyright » Homepagehilfe » Homepagehilfe - Archiv » [PHP & MySQL] Array nach Buchstaben überprüfen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen Array nach Buchstaben überprüfen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Startpost-Retter
Mitglied


Dabei seit: 24.01.2011
Beiträge: 12.246
Herkunft: Gegen Bilderklau, intern

Array nach Buchstaben überprüfen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo GB ;D

Das Problem ist jetzt etwas kompliziert :/

Ich habe die Ausbildung eines Pferdes in der Datenbank gespeichert. Diese kann entweder e, a, l, m oder s sein.

z.B. $ausbildung = a;

Desweiteren habe ich ein Array, in dem diese Buchstaben ebenfalls gespeichert sind: e, a, l, m, s.

Nun möchte ich, dass die Buchstaben solange ausgeben werden, bis der Wert in der Datenbank erreicht ist.

Also ist der Wert s, soll e, a, l, m, s ausgebene werden. Ist er a, soll nur e und a ausgeben werden.

Ich dachte das wäre ja nicht sonderlich schwer mit einer einfachen While Schleife. Allerdings weiß PHP ja nicht, dass in dem Fall e kleiner ist als a und a kleiner ist als l.

Müsste ich also alle Buchstaben in Zahlen umwandeln oder würde das auch einfacher gehen? Bin etwas ratlos derzeit.

Vielen Dank schon mal,
Nella

__________________
Dieser Beitrag gehörte zu einer Löschaktion von Beiträgen eines Users, er wurde diesem User überschrieben, damit der Thread nicht an Sinn verliert.
12.06.2010 13:11 Startpost-Retter ist offline Beiträge von Startpost-Retter suchen Nehmen Sie Startpost-Retter in Ihre Freundesliste auf
Julia712 Julia712 ist weiblich
Mitglied


images/avatars/avatar-48505.png

Dabei seit: 28.11.2006
Beiträge: 2.262

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hey,

macht doch einfach per Switch-Abfrage 'ne Zuweisung für 'ne Integer-Variable. Wenn der DB-Wert S ist, setzt du die Variable auf 4, bei M auf 3 usw.
Dann kannst du dir einfach per Schleife das Array ausgeben lassen...

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
switch ($row->Ausbildung) {
    case "E":
        $ausbildung 0;
        break;
    case "A":
        $ausbildung 1;
        break;
    case "L":
        $ausbildung 2;
        break;
    case "M":
        $ausbildung 3;
        break;
    case "S":
        $ausbildung 4;
        break;
}

$i 0;
while $i <= $ausbildung
{
echo $ausbildungsarray[$i];
}



Müsste eigentlich funktionieren smile
Liebe Grüße
Julia
12.06.2010 14:10 Julia712 ist offline Beiträge von Julia712 suchen Nehmen Sie Julia712 in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi,

Wenn ich das richtig verstanden habe, würde auch eine foreach-Schleife funktionieren.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:

<?php
$ausbildungen=array("e","a","l","m","s"); //reihenfolge beachten
foreach($ausbildungen as $ausbildung){
  echo $ausbildung;
  if($ausbildung==$row->Ausbildung) break; //schleife beenden, da $row->Ausbildung erreicht
}
?>


Diese Variante würde das Array solange durchlaufen, bis $row->Ausbildung (oder das Ende des Arrays) erreicht ist.


LG,
Oli
13.06.2010 18:42 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Kuhmuhphu Kuhmuhphu ist weiblich
Probiers mal mit Gemütlichkeit


Dabei seit: 20.12.2009
Beiträge: 3.168
Herkunft: Hinter den 7 Bergen..

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Jetzt mal ne blöde frage..

kann man da auch bestimmten ab wann zum nächsten Buchstaben gewechselt werden soll?
14.06.2010 11:06 Kuhmuhphu ist offline E-Mail an Kuhmuhphu senden Beiträge von Kuhmuhphu suchen Nehmen Sie Kuhmuhphu in Ihre Freundesliste auf
Stelo Stelo ist weiblich
de drecksche Assl


images/avatars/avatar-31176.gif

Dabei seit: 28.04.2005
Beiträge: 1.628

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich hätte das ja so gemacht:

php:
1:
2:
3:
4:
5:
6:
7:
8:
$ausbildungen=array("e","a","l","m","s");
$buchstabe $row['ausbildung']; 
$i=0;
while ($buchstabe != $ausbildungen[i]) {
echo $ausbildungen[i]; 
$i++;
}
echo $buchstabe;


Bitte entschuldigt, wenn die Syntax nicht ganz richtig ist, hab lange kein PHP mehr intensiv genutzt.

__________________

"Es gibt keine Romanhelden mehr,
weil es keine Individualisten mehr gibt,
weil die Individualität verlorengegangen,
weil der Mensch einsam, jeder Mensch gleich einsam,
ohne Recht auf individuelle Einsamkeit ist und
eine namen- und heldenlose einsame Masse bildet."
Günter Grass


Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Stelo: 16.06.2010 18:21.

16.06.2010 17:38 Stelo ist offline E-Mail an Stelo senden Beiträge von Stelo suchen Nehmen Sie Stelo in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Stelo
Ich hätte das ja so gemacht:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
$ausbildungen=array("e","a","l","m","s");
$buchstabe $row['ausbildung']; 
//fängt bei PHP ein Array bei 0 oder 1 an, ich bin mir gerade nicht sicher, ich nehme mal die 1
$i=1
while ($buchstabe != $ausbildungen[i]) {
echo $ausbildungen[i]; 
$i++;
}
echo $buchstabe;


Bitte entschuldigt, wenn die Syntax nicht ganz richtig ist, hab lange kein PHP mehr intensiv genutzt.


Die Syntax ist ganz gut, lediglich bei $i=1 fehlt das Semikolon ( ; ), außerdem müsste das 0 sein Augenzwinkern . Ein Array fängt bei 0 an, wie in (ich glaube) jeder Programmiersprache.

Das würde so natürlich funktionieren, hat aber ein theoretisches Sicherheitsproblem. Wenn in der Datenbank ein Buchstabe steht - warum auch immer - der nicht im Array ist, läuft die Schleife ewig und im schlimmsten Fall (bei schlechter Konfiguration) kann man damit den Webserver zum Ausfall bringen.
16.06.2010 18:18 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Stelo Stelo ist weiblich
de drecksche Assl


images/avatars/avatar-31176.gif

Dabei seit: 28.04.2005
Beiträge: 1.628

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Oli
Zitat:
Original von Stelo
Ich hätte das ja so gemacht:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
$ausbildungen=array("e","a","l","m","s");
$buchstabe $row['ausbildung']; 
//fängt bei PHP ein Array bei 0 oder 1 an, ich bin mir gerade nicht sicher, ich nehme mal die 1
$i=1
while ($buchstabe != $ausbildungen[i]) {
echo $ausbildungen[i]; 
$i++;
}
echo $buchstabe;


Bitte entschuldigt, wenn die Syntax nicht ganz richtig ist, hab lange kein PHP mehr intensiv genutzt.


Die Syntax ist ganz gut, lediglich bei $i=1 fehlt das Semikolon ( ; ), außerdem müsste das 0 sein Augenzwinkern . Ein Array fängt bei 0 an, wie in (ich glaube) jeder Programmiersprache.

Das würde so natürlich funktionieren, hat aber ein theoretisches Sicherheitsproblem. Wenn in der Datenbank ein Buchstabe steht - warum auch immer - der nicht im Array ist, läuft die Schleife ewig und im schlimmsten Fall (bei schlechter Konfiguration) kann man damit den Webserver zum Ausfall bringen.

Danke für den Hinweis. Ich habe es mal berichtigt.
Aber dein Einwand ist durchaus berechtigt. Also auch keine optimale Lösung.

Aber da habe ich doch gerade das gefunden: array_key_exists

__________________

"Es gibt keine Romanhelden mehr,
weil es keine Individualisten mehr gibt,
weil die Individualität verlorengegangen,
weil der Mensch einsam, jeder Mensch gleich einsam,
ohne Recht auf individuelle Einsamkeit ist und
eine namen- und heldenlose einsame Masse bildet."
Günter Grass


16.06.2010 18:27 Stelo ist offline E-Mail an Stelo senden Beiträge von Stelo suchen Nehmen Sie Stelo in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Stelo
Danke für den Hinweis. Ich habe es mal berichtigt.
Aber dein Einwand ist durchaus berechtigt. Also auch keine optimale Lösung.

Aber da habe ich doch gerade das gefunden: array_key_exists


Ich würde einfach die maximale Arraygröße mit einbauen:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
$ausbildungen=array("e","a","l","m","s");
$buchstabe $row['ausbildung']; 
$i=0;
$groesse=count($ausbildungen); //anzahl der arrayinhalte
while ($buchstabe != $ausbildungen[i]) {
echo $ausbildungen[i]; 
if($i++==$groesse) break; //vergrössern und, falls=$groesse (letztes), schleife verlassen
}
echo $buchstabe;


Allerdings tut mein Code von weiter oben genau das selbe, nur als for-each:
php:
1:
2:
3:
4:
5:
$ausbildungen=array("e","a","l","m","s");
foreach($ausbildungen as $ausbildung){
  echo $ausbildung;
  if($ausbildung==$row->Ausbildung) break; //schleife beenden, da $row->Ausbildung erreicht
}

Foreach hat noch den Vorteil, dass es in jedem Fall zu Ende ist, wenn das Array keinen Inhalt mehr hat.
16.06.2010 18:36 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Gegen Bilderklau - Das Original » Design, Website, Copyright » Homepagehilfe » Homepagehilfe - Archiv » [PHP & MySQL] Array nach Buchstaben überprüfen

Impressum

Forensoftware: Burning Board, entwickelt von WoltLab GmbH