PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : array_rand - formatiert ausgeben


schaefjen
29.11.2005, 19:07:17
Hallo!
Kann mir jemand von euch helfen?
Habe folgendes Problem:
Ich habe ein Lotto-Programm geschrieben und würde gerne die Ausgabe etwas schöner gestalten, weiß allerdings nicht wie ich
echo $lotto[$rand_keys[0]]." - ";
so ausgeben kann, dass die Lottozahlen eingemittet sind oder eine zweite Möglichkeit wäre die Zahlen in eine Tabelle oder in Textfelder zu schreiben, ist das Möglich? Wenn wie?
schonmal dankeschön für eure Antworten, die hoffentlich kommen werden ;)
Zum Anschauen schonmal das bisherige Programmlein:
<?PHP
$i = 1;
echo"<h1>Lotto </h1><br>";
$meinarray = array();
echo"<h3>Lottozahlen: </h3>";
$lotto = array ("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49");
$rand_keys = array_rand ($lotto, 6);
echo $lotto[$rand_keys[0]]." - ";
echo $lotto[$rand_keys[1]]." - ";
echo $lotto[$rand_keys[2]]." - ";
echo $lotto[$rand_keys[3]]." - ";
echo $lotto[$rand_keys[4]]." - ";
echo $lotto[$rand_keys[5]];
echo"<h3>Zusatzzahl: </h3>";
$Zusatzzahl = mt_rand(1, 49);
echo"$Zusatzzahl";
echo"<h3>Superzahl: </h3>";
$Superzahl = mt_rand(0, 9);
echo"$Superzahl";
?>
liebe Grüße
schaefjen

|Coding
29.11.2005, 20:18:58
Äh, Dein Problem lässt sich doch wohl sehr einfach lösen!

Du musst nur die jeweiligen HTML-Codes mit ausgeben. So wie Du es beispielsweise mit den Überschriften (<h1>*</h1>) gemacht hast.

|Coding
29.11.2005, 20:29:16
Noch ein Tipp...

Ersätze:

$lotto = array ("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49");

Mit:

$lotto = range(1, 49);

Das bringt Übersichtlichkeit und das Script funktioniert noch immer wie vorher.
Info's zur Funktion range() -> http://selfphp.de/funktionsreferenz/array_funktionen/range.php

schaefjen
29.11.2005, 20:38:24
Dankeschön,
aber das hatte ich vorher auch gedacht, doch dann kommt immer ein
Parse error
hab auch mit Textfeld versucht
echo"<input type='Text' name='lottozahlen' value='$lotto[$rand_keys[0]]>";
nimmt er auch nicht :-/
Wo genau soll ich denn jetzt also z.B. <center>*</center> einfügen?
Wie gesagt bei all meinen ausprobierten Varianten kam eine Fehlermeldung!
Kann aber auch sein das es so einfach funktioniert und ich nur einen ollen Fehler drin hatte immer, aber ja .... es funktioniert halt nicht

danke für den Tip: range(1,49); bin blutiger Anfänger ;)

|Coding
29.11.2005, 21:18:38
Dein Fehler liegt darin, das Du innerhalb von doublequotes (") auf ein Array so zugreifen musst:
echo"<input type='Text' name='lottozahlen' value='{$lotto[$rand_keys[0]]}>";
Das heißt, der Array-Bezeichner muss in geschweifte Klammern gepackt werden.

Wenn Du das nicht möchtest, kannst Du Dir auch mit dem Verkettungsoperator weiterhelfen:
echo "<input type='Text' name='lottozahlen' value='" . $lotto[$rand_keys[0]] . ">";
Wobei ich immer in Verbindung mit dem Verkettungsoperator empfehle, die Zeichenketten in singlequotes (') zusetzen, da Du dann reine Strings hast die von PHP nicht mehr geparsed werden müssen, was PHP aber mit Zeichenketten innerhalb von " macht.

So würde das Beispiel mit singlequotes und Verkettungsoperatoren ausschauen:
echo '<input type="Text" name="lottozahlen" value="' . $lotto[$rand_keys[0]] . '">';

Übrigents hattest Du ein ' in Deinem Beitrag vergessen :-)

schaefjen
29.11.2005, 21:32:30
achso das mit den {} muss man erst mal wissen =)

Dankeschön
stimmt hatte das ' wirklich vergessen

glaube jetzt habe ich dazu erst mal keine Fragen mehr ;)

Wünsche noch einen schönen Tag
und nochmal Danke

Viele liebe Grüße