SuperGirl007 Geschrieben 15. Juli 2011 Geschrieben 15. Juli 2011 Hallo, Ich möchte ganz gerne aus einer Funktion von PHP Arrays zurück geben aber ich weiß nicht wie das geht oder wie ich das umschreiben muss. Der PHP Teil ist bei mir eingebettet in eine html Datei. Kann mir da jemand weiter helfen? LG SuperGirl007 Zitieren
flashpixx Geschrieben 15. Juli 2011 Geschrieben 15. Juli 2011 Wie man Fragen richtig stellt: eine Anleitung wie man Fragen erfolgreich in Usenet, Mailing Listen und Webforen stellt. Zitieren
CSharp92 Geschrieben 16. Juli 2011 Geschrieben 16. Juli 2011 PHP: Rückgabewerte - Manual function test() { return $element; } Der PHP Teil ist bei mir eingebettet in eine html Datei. Allerdings müsste das andersrum sein. Der HTML Teil ist in die PHP Datei eingebunden Zitieren
SuperGirl007 Geschrieben 18. Juli 2011 Autor Geschrieben 18. Juli 2011 (bearbeitet) Hmmm... vielleicht hätte ich doch mal etwas präziser werden sollen...^^ Es soll ein HTML-Kasten erzeugt werden der die Zahlen von 1-49 beinhaltet und 7 Zeilen und mit dem Array sollen übereinstimmende Zahlen hervorgehoben werden. Ich habe bis jetzt das hier : <html> <head> <title> HTML-Kasten </title> </head> <body> <table border="1"> <?php function zufallszahlen_generieren() { global $Zufallszahlen; $Zufallszahlen = array(); do { $t = rand(1,49); array_push($Zufallszahlen, $t); $Zufallszahlen = array_unique($Zufallszahlen); }while(count($Zufallszahlen) < 6); } zufallszahlen_generieren(); foreach ($Zufallszahlen as $value) { echo $value; } function tabelle() { global $Zufallszahlen; for($i=1;$i<=49;$i++) { if($i%7 == 1) { if (in_array($i,$Zufallszahlen)) { echo "<tr><td bgcolor=\"blue\">$i</td>"; } else { echo "<tr><td>$i</td>"; } } elseif($i%7 == 0) {echo "<td>$i</td></tr>"; } else { echo "<td>$i</td>"; } } } tabelle(); ?> </table> </body> </html> 63,7 Ende Das Problem ist die doppelten Zahlen der Zufallszahlen müssen ausgeschlossen werden und bis jetzt werden in dem Kasten nur die übereinstimmenden Felder der ersten Spalte hervorgehoben. Das ganze soll mit Funktionen realisiert werden, aber an der Stelle komme ich einfach nicht weiter. Bearbeitet 18. Juli 2011 von SuperGirl007 Zitieren
LinuxDoku Geschrieben 18. Juli 2011 Geschrieben 18. Juli 2011 (bearbeitet) Ich hab dir hier mal Eben ein Beispiel improvisiert: <?php function getRandomNumbers() { $numbers = array(); for($i = 0; $i < 7; $i++) { do { $number = rand(1, 49); if(!in_array($number, $numbers)) { $numbers[] = $number; break; } } while(false); } return $numbers; } function isRandomNumber($number, $randomNumbers) { return in_array($number, $randomNumbers); } $randomNumbers = getRandomNumbers(); for($i = 1; $i <= 49; $i++) { if(isRandomNumber($i, $randomNumbers)) echo $i.' Übereinstimmung<br>'; else echo $i.'<br>'; }[/PHP] Achja, in zukunft bitte Code Tags verwenden und Code einrücken, sonst ist das unlesbar. Bearbeitet 18. Juli 2011 von LinuxDoku Zitieren
SuperGirl007 Geschrieben 18. Juli 2011 Autor Geschrieben 18. Juli 2011 Dankeschön :-) Ja sorry, war auch erst eingerückt hatte jetzt nur nicht drauf geachtet das er das auch so rein kopiert hat. Zitieren
SuperGirl007 Geschrieben 20. Juli 2011 Autor Geschrieben 20. Juli 2011 (bearbeitet) Hmmm... jetzt habe ich meinen Kasten mit den Zahlen 1-49 und die Zufallszahlen meines Arrays werden bei Übereinstimmung blau makiert. Was ist wenn ich jetzt 12 Kästen haben möchte? Ich habe bis jetzt zwei Funktionen: function zufall_generieren() und function tabelle() dann habe ich eine for-Schleife benutzt: for($i=1;$i<=6;$i++) { :::zufall_generieren(); :::if ($i%6 == 1) { :::::echo "<tr><td><table>";tabelle(); echo "</table></td></tr>"; :::} // bis hier in richtig :::elseif { :::::echo "<td><table>";tabelle(); echo "</table></td></tr>"; :::} :::else { :::::echo "<td><table>";tabelle(); echo "</table></td>"; :::} } Eigentlich sollen die Kästen in zwei Reihen angeordnet werden, so dass immer jeweils 6 Kästen neben einander sind. Bearbeitet 20. Juli 2011 von SuperGirl007 Zitieren
etreu Geschrieben 21. Juli 2011 Geschrieben 21. Juli 2011 <table> <tr> <?php $_data = array(); // platz für daten $_num_rows = 2; $_divisor = count($_data)/$_num_rows; foreach ($_data as $_key => $_value) { if ($_key > 0 && (($_key+1) % $_divisor == 0)) { // funktioniert nicht mit assoziativen arrays echo "</tr><tr>"; } } echo "<td>$_value</td>"; } ?> </tr> </table> [/PHP] Sollte so in etwa funktionieren <- ungetestet! Zitieren
SuperGirl007 Geschrieben 21. Juli 2011 Autor Geschrieben 21. Juli 2011 Dankeschön hat mir schon sehr weiter geholfen :-) Zitieren
SuperGirl007 Geschrieben 26. Juli 2011 Autor Geschrieben 26. Juli 2011 Ich habe die Datei noch ein Stück erweitert und habe eine Usereingabe hinzugefügt wo der Benutzer angeben kann wie viele Kästen markiert werden sollen, wo die Zufallszahlen mit den Zahlen aus den Kästen übereinstimmen. Jetzt wollte ich die Zufallszahlen die ausgewählt wurden bei jedem Durchgang in eine Datenbank speichern. ich habe jetzt eine index.php die für den Absendebutton der Usereingabe ist. index1.php als meine Hauptdatei. index2.php um die Verbindung zur Datenbank aufzubauen und die index3.php um den Button "Speichern?" in dre hauptdatei anzeigen zu lassen. index2.php: Irgendwie schafft er es nicht eine Verbindung zur Datenbank aufbauen, habe ich etwas vergessen? <html> <head> <title>Verbindung</title> </head> <body> <?php //Verbindungsaufbau zur Datenbank ## $dbname="htmlkaestchen"; ## $dbhost="80.252.98.30"; ## $dbuser="root"; ## $dbpass="test"; # mysql_connect($dbhost,$dbuser,$dbpass); # mysql_select_db($htmlkaestchen); ?> </body> </html> index1.php In der Hauptdatei habe ich dann folgendes hinzugefügt, ich weiß das es nicht ganz richtig ist aber ich weiß auch nicht so genau wie ich das aufschreiben soll da ich ihm keinen genauen Wert zum Speichern nennen kann sondern die Zufallszahlen der Usereingabe speichern soll^^ //Verbindung zur Datenbank aufbauen #include("index2.php"); ### //Werte in Datenbank speichern ### if ($i<=$_POST['Kaesten']) { ##### $zufall = $res; ##### $res = mysql_query($sql); ###} #####$sql="INSERT INTO ergebnisse". ####### "(z_id, zufallszahlen)". ##### VALUES ('auto_increment', $zufall); ##### if (mysql_query($sql)) { ####### echo "<p>Dateneingabe erfolgreich!</p>"; ##### } ##### else { #######echo "<p>Dateneingabe nicht erfolgreich!</p>"; ##### } # mysql_close(); # echo mysql_error(); ?> </table> </body> </html> Ich weiß nicht mehr weiter ^^ Zitieren
etreu Geschrieben 26. Juli 2011 Geschrieben 26. Juli 2011 Und ich sehe bei dir nicht ganz durch. mysql_connect liefert als Ergebnis einen Connectionidentifier zurück, den solltest du bei den nachfolgenden Aufrufen auch verwenden (meist als optionaler Parameter angegeben). Was steht in deiner sql-Variablen beim ersten ausführen? Und kannst du PHP-Tags für deinen nutzen? Zitieren
CSharp92 Geschrieben 26. Juli 2011 Geschrieben 26. Juli 2011 ## $dbname="htmlkaestchen"; [..] # mysql_select_db($htmlkaestchen); Das soll jemand verstehen. Eventuell solltest du eine Class erzeugen wo du alle Functionen die du brauchst aufrufen kannst somit hast du wenigstens alles übersichtlicher. Und kannst du PHP-Tags für deinen nutzen? *thumbs up* Zitieren
SuperGirl007 Geschrieben 27. Juli 2011 Autor Geschrieben 27. Juli 2011 Ich habe eine for-Schleife mit der ich am Ende nur noch die tabelle() selber aufrufen muss. Die Verbindung zu Datenbank hat sich auch schon geklärt^^ Jetzt gibt er mir aber 7 Zufallszahlen aus und nicht 6 und ich bekomme die Werte einfach nicht in die Datenbank gespeichert mit mysql_query. Meine Tabelle ergebnisse : Field | Type | Null | Key | Default | Extra | +---------+---------+------+-----+---------+----------------+ | z_id | int(6) | NO | PRI | NULL | auto_increment | | zufall1 | int(12) | YES | | NULL | | | zufall2 | int(12) | YES | | NULL | | | zufall3 | int(12) | YES | | NULL | | | zufall4 | int(12) | YES | | NULL | | | zufall5 | int(12) | YES | | NULL | | | zufall6 | int(12) | YES | | NULL | | Ich dachte mir ist vielleicht einfacher wenn er jede Zufallszahl in ein neues Feld pakt. Ich weiß das ich dafür sorgen muss das er sich die Zufallszahlen für jeden Kasten merkt und nicht überschreibt. <html> <head> <title> HTML-Kasten </title> </head> <body> <table border="1"> <?php function zufall_generieren($i) { global $zufall; $zufall[$i] = array(); do { $t = rand(1,49); array_push($zufall[$i], $t); $zufall[$i] = array_unique($zufall[$i]); }while(count($zufall[$i]) <= 6); } function tabelle($a) { global $zufall; for($i=1;$i<=49;$i++) { // echo $i."=".$zufall[$i]."<br>"; if($i%7 == 1) { if (in_array($i,$zufall[$a])) { echo "<tr><td bgcolor=\"blue\">$i</td>"; } else { echo "<tr><td>$i</td>"; } } elseif($i%7 == 0) { if (in_array($i,$zufall[$a])) { echo "<td bgcolor=\"blue\">$i</td></tr>"; } else { echo "<td>$i</td></tr>"; } } else { if (in_array($i,$zufall[$a])) { echo "<td bgcolor=\"blue\">$i</td>"; } else { echo "<td>$i</td>"; } } } } for ($i=1;$i<=12;$i++) { if ($i<= $_POST['Kaesten']) { zufall_generieren($i); } else { $zufall[$i]=array(); } if ($i%6 == 1) { echo "<tr><td><table>"; tabelle($i); echo "</table></td>"; } elseif ($i%6 == 0) { echo "<td><table>"; tabelle($i); echo "</table></td></tr>"; } else { echo "<td><table>"; tabelle($i); echo "</table></td>"; } } echo $_POST['Kaesten']; //zeigt an, dass die gewählte Zahl aus index.php ausgegeben wird > for ($i=1;$i<=1;$i++) { if ($i>=0) { include ("index3.php"); } } //Verbindung zur Datenbank aufbauen include("index2.php"); //Werte in datenbank speichern for ($i=1;$i<=12;$i++) { $zufall[$i]; $i++; } mysql_query ("INSERT INTO ergebnisse (zufall1, zufall2, zufall3, zufall4, zufall5, zufall6) Values ("$zufall[$a], $zufall[$a], $zufall[$a], $zufall[$a], $zufall[$a], $zufall[$a]) ?> </table> </body> </html> Tut mir leid, ich fang gerade erst mit Programmieren an und muss das jetzt alles im Dauerlauf lernen, kaltes Wasser und so^^ und Tags habe ich noc nicht benutzt, vielleicht mag mir ja mal jemand verraten wie das geht :[ Ich hoffe die komplette index1.php Datei ist etwas aufschlussreicher... Zitieren
SuperGirl007 Geschrieben 27. Juli 2011 Autor Geschrieben 27. Juli 2011 Achso nur zur Info ich lerne Fachinformatikerin Systemintegration und musste die Firma wechseln, in der neuen Firma muss ich auch programmieren können, ich möchte es auch sehr gerne lernen, aber ich kann etwas Starthilfe gebrauchen ;-) Zitieren
SuperGirl007 Geschrieben 27. Juli 2011 Autor Geschrieben 27. Juli 2011 OK hier noch mal udn zwar ganz: //index.php <html> <head> <title> Usereingabe</title> </head> <body> <h1> Kaesten</h1> <form action="index1.php" method="Post"> <table border="0" cellpadding="0" cellspacing="4"> <tr> <td align="right">Anzahl:</td> <td> <select name="Kaesten" size="3"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> </select> </td> <td> <input type="submit" value=" Senden"> </td> </tr> </table> </form> </body> </head> </html> //index1.php <html> <head> <title> HTML-Kasten </title> </head> <body> <table border="1"> <?php function zufall_generieren() { global $zufall; $zufall[$i] = array(); do { $t = rand(1,49); array_push($zufall[$i], $t); $zufall[$i] = array_unique($zufall[$i]); }while(count($zufall[$i]) <= 6); } function tabelle($a) { global $zufall; for($i=1;$i<=49;$i++) { // echo $i."=".$zufall[$i]."<br>"; if($i%7 == 1) { if (in_array($i,$zufall[$a])) { echo "<tr><td bgcolor=\"blue\">$i</td>"; } else { echo "<tr><td>$i</td>"; } } elseif($i%7 == 0) { if (in_array($i,$zufall[$a])) { echo "<td bgcolor=\"blue\">$i</td></tr>"; } else { echo "<td>$i</td></tr>"; } } else { if (in_array($i,$zufall[$a])) { echo "<td bgcolor=\"blue\">$i</td>"; } else { echo "<td>$i</td>"; } } } } for ($i=1;$i<=12;$i++) { if ($i<= $_POST['Kaesten']) { zufall_generieren($i); } else { $zufall[$i]=array(); } if ($i%6 == 1) { echo "<tr><td><table>"; tabelle($i); echo "</table></td>"; } elseif ($i%6 == 0) { echo "<td><table>"; tabelle($i); echo "</table></td></tr>"; } else { echo "<td><table>"; tabelle($i); echo "</table></td>"; } } echo $_POST['Kaesten']; //zeigt an, dass die gewählte Zahl aus index.php ausgegeben wird for ($i=1;$i<=1;$i++) { if ($i>=0) { include ("index3.php"); } } //Verbindung zur Datenbank aufbauen include("index2.php"); //Werte in datenbank speichern for ($i=1;$i<=12;$i++) { $zufall[$i]; $i++; } mysql_query ("INSERT INTO ergebnisse (zufall1, zufall2, zufall3, zufall4, zufall5, zufall6) Values ("$zufall[$a], $zufall[$a], $zufall[$a], $zufall[$a], $zufall[$a], $zufall[$a]) ?> </table> </body> </html> //index2.php <html> <head> <title>Verbindung</title> </head> <body> <?php //Verbindungsaufbau zur Datenbank $dbname="htmlkaestchen"; $dbhost="localhost"; $dbuser="root"; $dbpass="test"; mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db($htmlkaestchen); ?> </body> </html> //index3.php <html> <head> <title> Ergebnisse</title> </head> <body> <h1>Zufallszahlen</h1> <form action="index(1/2).php" method="POST"> <table border="0" cellpadding="0" cellspacing="4"> <tr> <td align="right">Zufallszahlen:</td> <td> <input type="submit" value="Speichern?"> </td> </tr> </table> </form> </body> </head> </html> [/php] Zitieren
SuperGirl007 Geschrieben 28. Juli 2011 Autor Geschrieben 28. Juli 2011 Ok, ich musste feststellen das es etwas zu kompliziert wird wenn ich die Werte speichern möchte, erst nachdem ich den Button "Speichern?" gedrückt habe, dafür müsste ich alle Werte ja erst wieder der neuen Seite übergeben, da diese ja nicht mehr weiß was auf der vorherigen Seite gewesen ist. Jetzt habe ich den Button weg genommen und ihm gesagt das er generell in der Datenbank speichern soll. Nun lässt er aber das Feld in der Datenbank einfach frei an der Stelle wo die doppelte zahl entfernt wurde und hängt hinten eine neue Zahl an, bringt mir im dem Fall nur leider nichts. Meine Hauptdatei sieht jetzt so aus...nicht wundern habe versucht mir eine Funktion zu basteln die für mich doppelte Zahlen illuminiert und die zahlen an der richtigen Stelle ersetzt aber da weiß ich leider nicht wie ich das umbauen muss^^ //index1.php <html> <head> <title> HTML-Kasten </title> </head> <body> <table border="1"> <?php function zufall_generieren($i) { global $zufall; $zufall[$i] = array(); do { $t = rand(1,49); array_push($zufall[$i], $t); } //$zufall[$i] = array_unique($zufall[$i]); array_unique_diff_key ($zufall[$i],$zufall[$i]) } while(count($zufall[$i]) < 6); } function array_unique_diff_key ($zufall, $zufall[$i]) { if (is_array($zufall) && is_array($zufall[$i])) { return array_diff_key($zufall, $zufall[$i]) + array_diff_key($zufall[$i], $zufall; } else if (is_array($zufall)) { return $zufall[$i]; } else if (is_array($zufall[$i])) { return $zufall[$i]; } else { return array(); } } function tabelle($a) { global $zufall; for($i=1;$i<=49;$i++) { // echo $i."=".$zufall[$i]."<br>"; if($i%7 == 1) { if (in_array($i,$zufall[$a])) { echo "<tr><td bgcolor=\"blue\">$i</td>"; } else { echo "<tr><td>$i</td>"; } } elseif($i%7 == 0) { if (in_array($i,$zufall[$a])) { echo "<td bgcolor=\"blue\">$i</td></tr>"; } else { echo "<td>$i</td></tr>"; } } else { if (in_array($i,$zufall[$a])) { echo "<td bgcolor=\"blue\">$i</td>"; } else { echo "<td>$i</td>"; } } } } for ($i=1;$i<=12;$i++) { if ($i<= $_POST['Kaesten']) { zufall_generieren($i); } else { $zufall[$i]=array(); } if ($i%6 == 1) { echo "<tr><td><table>"; tabelle($i); echo "</table></td>"; } elseif ($i%6 == 0) { echo "<td><table>"; tabelle($i); echo "</table></td></tr>"; } else { echo "<td><table>"; tabelle($i); echo "</table></td>"; } } echo $_POST['Kaesten']; //zeigt an, dass die gewählte Zahl aus index.php ausgegeben wird > //print_r($zufall); //Verbindung zur Datenbank aufbauen include_once("index2.php"); //Werte in datenbank speichern for ($i=1;$i<=$_POST['Kaesten'];$i++) { $sql = "INSERT INTO ergebnisse (zufall1, zufall2, zufall3, zufall4, zufall5, zufall6) VALUES (".$zufall[$i][0].", ".$zufall[$i][1].", ".$zufall[$i][2].", ".$zufall[$i][3].", ".$zufall[$i][4].", ".$zufall[$i][5].")"; echo $sql."<br>"; $result = mysql_query($sql, $link); if (!$result) { die('Ungültige Abfrage: ' . mysql_error()); } } ?> </table> </body> </html> 140,1 Ende [/php] Zitieren
flashpixx Geschrieben 28. Juli 2011 Geschrieben 28. Juli 2011 Ok, ich musste feststellen das es etwas zu kompliziert wird wenn ich die Werte speichern möchte, erst nachdem ich den Button "Speichern?" gedrückt habe, dafür müsste ich alle Werte ja erst wieder der neuen Seite übergeben, da diese ja nicht mehr weiß was auf der vorherigen Seite gewesen ist. dafür gibt es PHP: Sessions - Manual Jetzt habe ich den Button weg genommen und ihm gesagt das er generell in der Datenbank speichern soll. Nun lässt er aber das Feld in der Datenbank einfach frei an der Stelle wo die doppelte zahl entfernt wurde und hängt hinten eine neue Zahl an, bringt mir im dem Fall nur leider nichts. Das ist nicht verständlich, poste das SQL Statement und die Tabellenstruktur. Im Normalfall würde man ein Formfeld mit entsprechenden Inputdialogen aufbauen, dann beim Action ein weiteres Script aufrufen, dass die Eingaben des Forms verarbeitet und nach Prüfung in die Datenbank übernimmt. Sorry, aber Dein Code ist nicht wirklich gut strukturiert. Zitieren
SuperGirl007 Geschrieben 28. Juli 2011 Autor Geschrieben 28. Juli 2011 Mit guter Strukturierung habe ich jetzt auch nicht gerechnet, wie gesagt ich bin gerade dabei zu lernen ;-) Sessions werde ich mir gleich mal ansehen. Meine Datenbank sieht wie folgt aus: +-----------------------+ | Tables_in_htmlkaesten | +-----------------------+ | daten | | ergebnisse | +-----------------------+ mysql> describe ergebnisse; +---------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+---------+------+-----+---------+----------------+ | z_id | int(6) | NO | PRI | NULL | auto_increment | | zufall1 | int(12) | YES | | NULL | | | zufall2 | int(12) | YES | | NULL | | | zufall3 | int(12) | YES | | NULL | | | zufall4 | int(12) | YES | | NULL | | | zufall5 | int(12) | YES | | NULL | | | zufall6 | int(12) | YES | | NULL | | +---------+---------+------+-----+---------+----------------+ Meine Funktion die die Zufallszahlen generieren soll sieht so asu: function zufall_generieren($i) { global $zufall; $zufall[$i] = array(); do { $t = rand(1,49); array_push($zufall[$i], $t); } $zufall[$i] = array_unique($zufall[$i]); } while(count($zufall[$i]) < 6); } [/php] Die Zufallszahlen bilden sich aus 6 zahlen pro Kasten: 6 12 33 24 16 1 da hab ich ja mit array_unique doppelte Zahlen illuminiert und mit array_push hinten dafür eine Zahl angefügt bis wirklich 6 unterschiedliche Zahlen erzeugt werden. Jetzt schreibt er aber in die Datenbank: 6, 12, , 24, 16, 1 weil da eine Zahl doppelt war, ich suche jetzt eine Funktion oder so, die genau da eine Zahl ersetzt wo sie benötigt wird und die ich auch auf mehrdemensionale Arrays anwenden kann. Zitieren
SuperGirl007 Geschrieben 28. Juli 2011 Autor Geschrieben 28. Juli 2011 Achso mein SQL Statemen aus dem Skript: include_once("index2.php"); //Werte in datenbank speichern for ($i=1;$i<=$_POST['Kaesten'];$i++) { $sql = "INSERT INTO ergebnisse (zufall1, zufall2, zufall3, zufall4, zufall5, zufall6) VALUES (".$zufall[$i][0].", ".$zufall[$i][1].", ".$zufall[$i][2].", ".$zufall[$i][3].", ".$zufall[$i][4].", ".$zufall[$i][5].")"; echo $sql."<br>"; $result = mysql_query($sql, $link); if (!$result) { die('Ungültige Abfrage: ' . mysql_error()); } } [/php] Zitieren
SuperGirl007 Geschrieben 28. Juli 2011 Autor Geschrieben 28. Juli 2011 Also ich weiß das ich auch jeden Fall wieder untereinander vergleichen muss entweder Schritt für Schritt oder mit einer Funktion. Ich weiß das es nicht richtig ist aber so in die richtung müsste das doch schon mal gehen? function array_unique_diff_key ($zufall[$i], $zufall[$i][0]) { if (is_array($zufall[$i]) && is_array($zufall[$i][0])) { return array_diff_key($zufall[$i], $zufall[$i][0]) + array_diff_key($zufall[$i][0], $zufall[$i]; } else if (is_array($zufall[$i])) { return $zufall[$i]; } else if (is_array($zufall[$i][0])) { return $zufall[$i][0]; } else { return array(); } } [/php] Zitieren
flashpixx Geschrieben 28. Juli 2011 Geschrieben 28. Juli 2011 Was willst Du überhaupt machen? Sprich was soll das Ziel sein? Das global solltest Du nicht benutzen, das macht den Code unübersichtlich. Dieses in_array oder array_diff_keys wofür soll das gut sein. Wenn man numerisches Array hat, dann brauche ich dort nicht mit Keys arbeiten, sondern ich kann direkt via Index die einzelnen Daten ansprechen. Es ist nicht hilfreich, wenn Du immer mehr an Deinem Code bastelst, sondern strukturiere das Vorgehen und arbeite systematisch. Zitieren
SuperGirl007 Geschrieben 29. Juli 2011 Autor Geschrieben 29. Juli 2011 Also, eigentlich möchte ich ja nur das er bei der Funktion zufall_generieren($i) nicht mehr eine Zahl hinten anhängt bis es genau 6 Zufallszahlen sind, sondern das er genau die Zahl an der Stelle ersetzt wo es notwendig ist, damit keine Lücken in der Datenbank entstehen. Und was den Quelltext betrifft sollte ich das so machen, zudem weiß ich es auch nicht wirklich besser^^ Zitieren
flashpixx Geschrieben 29. Juli 2011 Geschrieben 29. Juli 2011 Das lässt sich mit in_Array einer Schleife und dem Zufallsgenerator realisieren Zitieren
SuperGirl007 Geschrieben 29. Juli 2011 Autor Geschrieben 29. Juli 2011 Ich hab es :-) danke für die Mühe! function zufall_generieren($ { global $zufall; $zufall[$b] = array(); for ($i=0;$i<6;$i++) { do { $t = rand(1,49); } while (in_array($t,$zufall[$b])); $zufall[$b][$i] = $t; } } [/php] Zitieren
flashpixx Geschrieben 29. Juli 2011 Geschrieben 29. Juli 2011 (bearbeitet) wofür brauchst Du das "global" Statement und zwei Schleifen !? function random_array($size, $min, $max) { $res = array(); for($i=0; $i < $size; $val = mt_rand($min,$max)) if (!in_array($val, $res)) { array_push($res, $val); $i++; } return $res; } [/php] und wenn man jetzt mehrere davon braucht [php] $list = array(); for($i=0; $i < $anzahl; $i++) array_push($list, random_array($length, $min, $max)); Bearbeitet 29. Juli 2011 von flashpixx Zitieren
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.