Array *peinlich*

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

  • Array *peinlich*

    es ist scho peinlich, ich schätz es liegt daran das ich die grip hab, aber wie mache ich so einen array

    array[1]

    mit mysql daten??
    also z.B. von Zeile 1 ist die Id 1 und der Array wäre array[0], wie mach ich das?
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

  • #2
    So sieht der Code aus

    PHP-Code:
    $query mysql_query("SELECT ......");

    while (
    $row mysql_fetch_array($query))
    {
      
    $row["spaltenname"] = "Inhalt der Spalte namens 'spaltenname'";
    }

    // Es geht auch so

    while ($row mysql_fetch_row($query))
    {
      
    $row[0] = "Inhalt der Spalte 1";

    Und gute Besserung

    Kommentar


    • #3
      danke,
      frage:

      $row["spaltenname"] = "Inhalt der Spalte namens 'spaltenname'";

      das sieht doch im endeffekt so aus:
      $row["id"] = "2";
      $row["id"] = "3";

      und wie greife ich zu?? kann ich da
      $row[1] machen und es kommt 3 raus??
      Sunshine CMS
      BannerAdManagement
      Borlabs - because we make IT easier
      Formulargenerator [color=red]Neu![/color]
      Herkunftsstatistik [color=red]Neu![/color]

      Kommentar


      • #4
        und wie greife ich zu?? kann ich da
        $row[1] machen und es kommt 3 raus??


        Nein, das ist nicht richtig. Was der Code oben macht, ist aus dem SELECT Statement alle gefunden Reihen nacheinander durchzugehen, für jede Reihe wird ein Array gespeichert. Wenn also 3 Reihen rauskommen, die so aussehen:

        ID | Name | Wert
        1 | "Test" | 5
        2 | "Super" | 10
        3 | "Toll" | 65

        Wird die while Schleife 3 mal ausgeführt, in der Schleife sind dann die 3 Spalten als assoziatives Array verfügbar, also beim ersten Durchlauf der Schleife:
        $array[id] = 1
        $array[name] = "Test"
        $array[wert] = 5

        beim Zweiten:
        $array[id] = 2
        $array[name] = "Super"
        $array[wert] = 10

        usw...

        Kommentar


        • #5
          hmm, ich braucht das so, alle ID in einem Array,
          also so:
          $array = array( "1", "2", "3");
          und so kann ich dann zugreifen $array[1] << wäre dann der Wert 2

          ich brauch das so, weil ich dann per rand einen der werte auswählen will. Weißt du wie ich das so mache?
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar


          • #6
            PHP-Code:
            $query mysql_query("SELECT * from tabelle");
            $meineids=array();
            while (
            $row mysql_fetch_array($query))
              
            $meineids[]=$row['id']; 
            Aber wenn duu ne ID zufällig auswählen willst, um dann den eintrag aus der db mit eben dieser id zu nehmen, mach lieber sowas
            PHP-Code:
            $query mysql_query("SELECT * from tabelle order by RAND() limit 1");
            $eintrag mysql_fetch_array($query); 
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Du kannst die Werte doch schon im SELECT Statement zufällig auswählen, also:

              SELECT * FROM tabelle WHERE id=$phpzufallszahl

              Kommentar


              • #8
                dazu müsste ich aber wissen, von wo bis wo meine id geht.
                wenn die id auto_increment is (was sie sein sollte imho), dann kann es auch sein, dass es werte zwischendrin nicht gibt, weil die wieder gelöscht wurden; wird nun dummerweise genau der wert genommen... dumm gelaufen.

                Ich denke alles was die Datenbank alleine machen kann, soll sie auch alleine machen. Die wird das schon am besten können
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  $query = mysql_query("SELECT * from tabelle");
                  $meineids=array();
                  while ($row = mysql_fetch_array($query))
                  $meineids[]=$row['id'];

                  jo das hab ich gesucht.

                  MIt dem order by rand gibts ein mega problem. Bei einem User von mir wird nämlich immer der gleiche wert gewählt, komisch oder?
                  Sunshine CMS
                  BannerAdManagement
                  Borlabs - because we make IT easier
                  Formulargenerator [color=red]Neu![/color]
                  Herkunftsstatistik [color=red]Neu![/color]

                  Kommentar


                  • #10
                    Original geschrieben von mrhappiness
                    dazu müsste ich aber wissen, von wo bis wo meine id geht.
                    wenn die id auto_increment is (was sie sein sollte imho), dann kann es auch sein, dass es werte zwischendrin nicht gibt, weil die wieder gelöscht wurden; wird nun dummerweise genau der wert genommen... dumm gelaufen.
                    na und, dann machst du halt
                    WHERE id <= $zufallszahl LIMIT 1.


                    damit hast du auch dann einen zufälligen wert, wenn die zufallszahl jetzt mal nicht genau auf eine id trifft, dann wird halt die nächst kleinere genommen.


                    aber, nachteil der mir gerade eben selber einfällt:
                    wenn in dem auto-increment element ziemlich grosse zahlenbereiche fehlen, meinetwegen von 100 bis 200, dann wird die 99 proportional viel öfter ausgewählt werden als andere zahlen...
                    na schön, dann lassen wir das.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      wie mache ich eingentlich eine Selcet das kleinste.
                      also
                      das feld summe
                      summe = 2
                      summe = 3
                      summe = 1

                      wie kann ich jetzt ermitteln, welcher das kleinste ist?
                      Sunshine CMS
                      BannerAdManagement
                      Borlabs - because we make IT easier
                      Formulargenerator [color=red]Neu![/color]
                      Herkunftsstatistik [color=red]Neu![/color]

                      Kommentar


                      • #12
                        Mit
                        SELECT min(summe) ...

                        Kommentar


                        • #13
                          dafür gibt's bei sql die mathematische funktion min().
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            mysql_query("SELECT * FROM tabelle where aktiviert='ja' order by min()");

                            und das wars?? cool
                            Sunshine CMS
                            BannerAdManagement
                            Borlabs - because we make IT easier
                            Formulargenerator [color=red]Neu![/color]
                            Herkunftsstatistik [color=red]Neu![/color]

                            Kommentar


                            • #15
                              Kleiner Vorschlag, anstatt char benutz doch tinyint(1) für aktiviert, das ist wesentlich schneller. Schreib für ja einfach 1 rein und für nein 0.

                              Kommentar

                              Lädt...
                              X