Ankündigung

Einklappen
Keine Ankündigung bisher.

Arrays aus einer Schleife?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Timestranger
    hat ein Thema erstellt Arrays aus einer Schleife?.

    Arrays aus einer Schleife?

    Moin Moin, ich bastel grade an einer Schleife, aus der ich Arrays abfragen möchte, bzw die Ausgegebene zahl je Durchgang als Array in die Variable $save einsetzen.

    PHP-Code:
    <?php
    include("con.php"); 

    $count $_POST['count'];
    $sides $_POST['sides'];
    $username $_POST['username'];
    $address $_SERVER['REMOTE_ADDR'];
    // Daten vom User, die noch gebraucht werden :)


    for ($i 1$i <= $count$i++)
     {
       
    $wurf rand(0$sides);
       echo (
    "$i .te Würfel. Du hast eine $wurf geworfen.")
     } 
      
    mysql_query("INSERT INTO Wurfe (Count,Sides,Username,Address) 
                 VALUES (
    $count,$sides,$username,$address)");

    ?>
    wie bekomme ich jetzt also die Ergebnis werte der Jeweiligen Würfe als Abspeicherbare variable bzw. Array?

  • Asipak
    antwortet
    Zitat von Timestranger Beitrag anzeigen
    Also laut deinem Vorschlag sollte ich die Ergebnisse der jeweiligen Würfe in die tabelle 'ergebnisse' hauen und jedem wurf dadurch auch eine ID geben (womit ich grade überfragt wäre), die ID dann als referenz zum abruf für ein späteres zugreifen verwenden?
    Ja!

    Tabelle: wurf
    Code:
    id | seiten | username | ip
    1  | 6      | ich      | 127.0.0.1
    2  | ...
    Tabelle: ergebnisse
    Code:
    wurf_id | wurfergebnis
    1       | 5
    1       | 4
    1       | 4
    2       | 3
    2       | ...

    Einen Kommentar schreiben:


  • Timestranger
    antwortet
    Zitat von Asipak Beitrag anzeigen
    Dann solltest du dein Datenbankdesign noch mal überarbeiten. Du brauchst eine zweite Datenbanktabelle, in der du die einzelnen Ergebnisse der Würfe abspeicherst und über eine ID dem "Wurf" zuordnest. Die Anzahl der Würfe solltest du dann nicht mit abspeichern, da du diese aus der Anzahl der Zeilen in der "Ergebnis"-Tabelle deiner Würfe ermitteln kannst.

    Normalisierung (Datenbank) – Wikipedia
    ephs... okay, der Wikipediaartikel ruft bei mir die Berühmten Fragezeichen überm Kopf hervor.

    Also laut deinem Vorschlag sollte ich die Ergebnisse der jeweiligen Würfe in die tabelle 'ergebnisse' hauen und jedem wurf dadurch auch eine ID geben (womit ich grade überfragt wäre), die ID dann als referenz zum abruf für ein späteres zugreifen verwenden?



    Zitat von Buhmann Beitrag anzeigen
    du könntest auch $var = implode(";",$save) in deine Datenbank speichern. Dann würde Das Feld z.b. so aussehen:
    Code:
    5;2;6;6;2;1;2
    Mit explode(";",$var) kriegst du das dann nachher beim auslesen wieder in die ursprüngliche Form. Das bietet sich aber nur an, falls du keine datenbanksuchen zu den genauen würfeln machen willst, weil mysql mit solchen daten nur indirekt etwas anfangen kann.
    bedingtnutzbar, da es nachvollziehbar sein soll wieso ein Spieler etwas entsprechendes getan hat, weswegen der Vorschlag mit dem ID-zuteilen mir da doch etwas inniger erscheint, aber danke.

    Einen Kommentar schreiben:


  • Buhmann
    antwortet
    du könntest auch $var = implode(";",$save) in deine Datenbank speichern. Dann würde Das Feld z.b. so aussehen:
    Code:
    5;2;6;6;2;1;2
    Mit explode(";",$var) kriegst du das dann nachher beim auslesen wieder in die ursprüngliche Form. Das bietet sich aber nur an, falls du keine datenbanksuchen zu den genauen würfeln machen willst, weil mysql mit solchen daten nur indirekt etwas anfangen kann.

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Dann solltest du dein Datenbankdesign noch mal überarbeiten. Du brauchst eine zweite Datenbanktabelle, in der du die einzelnen Ergebnisse der Würfe abspeicherst und über eine ID dem "Wurf" zuordnest. Die Anzahl der Würfe solltest du dann nicht mit abspeichern, da du diese aus der Anzahl der Zeilen in der "Ergebnis"-Tabelle deiner Würfe ermitteln kannst.

    Normalisierung (Datenbank) – Wikipedia

    Einen Kommentar schreiben:


  • Timestranger
    antwortet
    Nunja, die einzelnen Würfe gehören alle zusammen, was heißt, das die in $count beschriebene anzahl anwürfen als eine Variable übergeben werden sollte, heißt $Save sollte die Arrays schon so beinhalten.

    Das ganze ist ja ein Würfel, der mehrfache Würfe zuläßt bzw. Belibig viele Seiten ( $sides ) haben kann udn entsprechend der $count so und so oft geworfen wird.

    Mir hat man beigeputzt dass das in Klammern gehört, wenns auch ohne geht - okai.

    PHP-Code:
    <?php
    include("con.php"); 

    $count $_POST['count'];
    $sides $_POST['sides'];
    $username $_POST['username'];
    $address $_SERVER['REMOTE_ADDR'];
    // Daten vom User, die noch gebraucht werden :)

    $save = array();

    for (
    $i 1$i <= $count$i++)
     {
       
    $wurf rand(0$sides);
       echo 
    $i 'te Würfel. Du hast eine ' $wurf ' geworfen. <br />'
       
    $save[] = $wurf


    // Ich könnte also jetzt auch die variable Save einfach nochmal samt aller arrays hier echo'n ?

    echo '<pre>' print($save),'</pre>'  ;

    mysql_query("INSERT INTO Wurfe (Count,Sides,Username,Address,Save) 
                 VALUES (
    $count,$sides,$username,$address,$save)") OR die (mysql_error());

    ?>

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Hmm, dann führe die Datenbankabfrage doch gleich innerhalb der Schleife aus:
    PHP-Code:
    for ($i 1$i <= $count$i++)
     {
       
    $wurf rand(0$sides);
       echo 
    "$i .te Würfel. Du hast eine $wurf geworfen."//danke hab da n Semikolon vergessen :)

      
    mysql_query("INSERT INTO Wurfe (Count,Sides,Username,Address,Save) 
                 VALUES (
    $count,$sides,'$username','$address',$wurf)") OR die (mysql_error());
     } 
    Oder verstehe ich dich immer noch falsch?
    //danke hab da n Semikolon vergessen
    Keine Ursache, auch die Anderen "Veränderungen" waren Tipps! Zum Beispiel ist es gebräuchlicher, bei echo die runden Klammern wegzulassen. Dies ist nämlich keine Funktion, sondern ein Sprachkonstrukt. Lies dir auch mal Codeoptimierung:Code-Smells - PHP.de Wiki durch und informiere dich außerdem über SQL-Injection!

    Gruß

    Einen Kommentar schreiben:


  • Timestranger
    antwortet
    Gomen.
    mit Abspeichern meine ich, das ich die Inhalte so in die Datenbank übernehmen kann, um sie später aus zu lesen.

    Sorry wenn ich ungenau bin.

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Was meinst du? Was heißt ob? Natürlich findest du die Werte im Array wieder, wenn du das Script so durchlaufen lässt. Nur, was verstehst du unter abspeichern? Deine Beschreibungen sind leider sehr ungenau.

    Einen Kommentar schreiben:


  • Timestranger
    antwortet
    ich möchte den Array ja nicht Ausgeben, sondern innerhalb der Schleife nur zwischen speichern. Die Ausgabe soll danach mittels einer anderen Datei (die noch nicht existiert) erfolgen.

    Laut deinem Vorschlag würde das ganze dann ja so aus sehen:
    PHP-Code:
    <?php
    include("con.php"); 

    $count $_POST['count'];
    $sides $_POST['sides'];
    $username $_POST['username'];
    $address $_SERVER['REMOTE_ADDR'];
    // Daten vom User, die noch gebraucht werden :)

    $save = array();

    for (
    $i 1$i <= $count$i++)
     {
       
    $wurf rand(0$sides);
       echo (
    "$i .te Würfel. Du hast eine $wurf geworfen."); //danke hab da n Semikolon vergessen :)

       
    $save[] = $wurf;
     } 
      
    mysql_query("INSERT INTO Wurfe (Count,Sides,Username,Address,Save) 
                 VALUES (
    $count,$sides,$username,$address,$save)");

    ?>
    Die Frage ist nun, wenn ich beispeilsweise sage, das die Variablen $count = 4 und $sides = 24 habe, ob die Variable $save['array1,array2,array3,array4'] auch wirklich abgespeichert hat.

    @ Wolf29: danke, werds mir mal durchlesen.

    Einen Kommentar schreiben:


  • wolf29
    antwortet
    Hi.

    Ich verstehe nicht genau, was Du willst?! Willst Du bei jedem Schleifendurchgang Werte in einem Array speichern? Oder dauerhaft speichern? Hier hast du erstmal einen link, wie man mit Arrays arbeitet:

    Arrays (PHP-Tutorial)

    Wolf29

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Hallo,

    meinst du sowas?
    PHP-Code:
    $array = array();

    for (
    $i 1$i <= $count$i++) {
      
    $wurf rand(0$sides);
      echo 
    $i 'te Würfel. Du hast eine ' $wurf ' geworfen.';

      
    $array[] = $wurf;


    echo 
    '<pre>'print_r($array), '</pre>'

    Einen Kommentar schreiben:

Lädt...
X