for-Schleife, Rand, und MySQL Problem, oder so, lest einfach mal

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

  • for-Schleife, Rand, und MySQL Problem, oder so, lest einfach mal

    Hi, also in meinem Script wird per zufall eine Zahl z.B. 1 und 3 gesucht, naja egal.
    angenommen in einer MySQL Tabelle sieht es so aus:

    ID Name Link
    3 Ich www.keine.de
    2 du www.wieder-keine.de
    5 richard -


    So, wie ihr sehen könnt ist id 3 vor id 2, nun das Problem,
    per rand wird einfach nicht 3 gezogen, immer nur 2 oder 5, nun meine idee:
    geht es irgend wie per insert befehl, das ich dem Code sage, er soll den nächsten Beitrag nach 5 einsetzen?? Wenn ich nämlich einen Eintrag lösche, dann wird der nächste eintrag an die stelle gesetzt, wo der letze beitrag gelöscht wurde.

    Also gibt es die möglichkeit dem insert befehl zu sagen, das er nach der id 5 eintragen soll???

    Danke für die Hilfe
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

  • #2
    ich glaub nicht, mysql füllt die gelöschtenfelden um den overflow wieder wegzukriegen.. wo ist denn dein problem ? order by rand() werden dir die einträge durchgemischt.
    meine Projekte bestaunen: http://www.kleiza.de

    Kommentar


    • #3
      hast du auch den zufallsgenerator vorher mittels mt_srand() initialisiert, ansonsten werden zufallszahlen immer mit dem selben startwert erzeugt.
      ausserdem würde ich lieber statt rand() mt_rand() benutzen, da der bessere zufallszahlen erzeugt.

      Kommentar


      • #4
        Code:
        PHP-Code:
        srand ((double)microtime()*1000000);
        $rand = @rand(1$count);


        $rand $rand-1;
        //Delzone
        $query mysql_query("SELECT * FROM ".$tab."banner ORDER BY id ASC LIMIT $rand,1 ");
        $arraygib mysql_fetch_array($query);
        $rand $arraygib[id]; 
        so das ist der code
        $count ist 3, weil 3 einträge in der DB sind. Nun wird aber wiegesagt niemals id 3 aufgerufen, wie würde deine Idee im SCript aussehen???
        Sunshine CMS
        BannerAdManagement
        Borlabs - because we make IT easier
        Formulargenerator [color=red]Neu![/color]
        Herkunftsstatistik [color=red]Neu![/color]

        Kommentar


        • #5
          hmm, mt_rand, werde ich mal probieren, was macht mt_rand??
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar


          • #6
            ok das mit mt_rand hab ich jetzt, auch wenn ich den sinn davon nicht ganz verstehe warum der kautz soviele rands programmiert hat egal, nun habe ich immer noch das link problem (anderer beitrag)
            Sunshine CMS
            BannerAdManagement
            Borlabs - because we make IT easier
            Formulargenerator [color=red]Neu![/color]
            Herkunftsstatistik [color=red]Neu![/color]

            Kommentar


            • #7
              $query = mysql_query("SELECT * FROM ".$tab."banner ORDER BY RAND() LIMIT 1 ");

              dann haste gleich ein zufalls eintrag...
              meine Projekte bestaunen: http://www.kleiza.de

              Kommentar


              • #8
                also so oder
                PHP-Code:
                $query mysql_query("SELECT * FROM ".$tab."banner ORDER BY RAND(1, $count) LIMIT 1 "); 
                Sunshine CMS
                BannerAdManagement
                Borlabs - because we make IT easier
                Formulargenerator [color=red]Neu![/color]
                Herkunftsstatistik [color=red]Neu![/color]

                Kommentar


                • #9
                  wozu das 1, $count ?
                  meine Projekte bestaunen: http://www.kleiza.de

                  Kommentar


                  • #10
                    Nur leider gibt's in MySQL die Funktion RAND(1, $count) in der Syntax nicht ... entweder RAND() oder RAND($count) ... wobei das sehr wenig sinn macht wenn man 'nen zufälligen Datensatz haben will ... weil's dann im allgemeinen mehre Datensätze mit dem gleichen Wert für RAND() gibt!
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      das problem ist ja das mit limit, den da fänt eintrag eins mit 0 an. Also muss order by rand($count) seit, aber wenn count 3 ist, wie kommt er dann auf eine zahl, macht der dan zwischen 1-3 oder 0-3????
                      Sunshine CMS
                      BannerAdManagement
                      Borlabs - because we make IT easier
                      Formulargenerator [color=red]Neu![/color]
                      Herkunftsstatistik [color=red]Neu![/color]

                      Kommentar


                      • #12
                        $query = mysql_query("SELECT * FROM ".$tab."banner ORDER BY RAND() LIMIT 1 ");

                        falls es dir noch nicht aufgefallen ist, dieses RAND() hat nicht mit der PHP funktion rand() zu du, das ist eine function aus der Mysql ebene..

                        geschweige davon, das man keine PHP function so einfach in ner string ausführen kann.
                        meine Projekte bestaunen: http://www.kleiza.de

                        Kommentar


                        • #13
                          $query = mysql_query("SELECT * FROM ".$tab."banner ORDER BY RAND() LIMIT 1 ");
                          genau so geht es!
                          funzt aber erst ab mysql v 3.23!

                          siehe auch:
                          http://www.dclp-faq.de/q/q-mysql-zufall.html
                          GNU/LINUX

                          Kommentar


                          • #14
                            @Rob K: Das ist richtig ... aber nur noch sehr schlechte Provider verwenden MySQL Versionen < 3.23 ...
                            carpe noctem

                            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                            Kommentar


                            • #15
                              DANKE : D, und das Link Problem ist auch gelöst 3.0 wird bald kommen juhuuu
                              Sunshine CMS
                              BannerAdManagement
                              Borlabs - because we make IT easier
                              Formulargenerator [color=red]Neu![/color]
                              Herkunftsstatistik [color=red]Neu![/color]

                              Kommentar

                              Lädt...
                              X