Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Script

Einklappen

Neue Werbung 2019

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

  • Problem mit Script

    Hi,

    wie die meisten von euch wahrscheinlich schon wissen, programmiere ich gerade ein kleines Forum.
    Jetzt bin ich gerade dabei ein Script zuschreiben, dass den Usern die Ränge zuordnet, wenn sie eine bestimmte Anzahl von Posts haben.
    Das sieht so aus:

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    $sql1 "SELECT posts FROM user WHERE id ='".$_SESSION["user_id"]."' AND username = 

    '"
    .$_SESSION["user_username"]."' AND password = '".$_SESSION["user_password"]."'";
    $result mysql_query($sql1) OR die(mysql_error());
    while(
    $rang mysql_fetch_array($result)){
    $user_posts $rang["posts"];
    }

    //In der DB steht einmal wieviele posts man haben muss um
    //den nächsten Rand zu erreichen und, wie der Rang heißt.

    $sql2 "SELECT posts, name FROM raenge";
    $result mysql_query($sql2) OR die(mysql_error());
    while(
    $raenge mysql_fetch_array($result)){
    $forum_posts[] = $raenge["posts"];
    $forum_name[] = $raenge["name"];
    }

    for (
    $i 0$i count ($forum_posts); $i++) {

    if(
    $user_posts >= $forum_posts[$i])
    {
    $user_rang $forum_name[$i];
    }

    $sql3 "UPDATE user SET rang = '".$user_rang."' WHERE id ='".$_SESSION["user_id"]."' AND 

    username = '"
    .$_SESSION["user_username"]."' AND password = 

    '"
    .$_SESSION["user_password"]."'";
     
    mysql_query($sql3) OR die(mysql_error()
    Das klappt auch alles gut. Aber bis jetzt ist es nur so, dass man den Rang nur zugeordnet bekommt, wenn man genau die Anzahl der posts hat wie sie in der DB stehten.

    Jetzt würde ich gerne wissen, wie ich mein Script umschreiben muss, damit ich den Rang auch bekomme, wenn ich eine bestimmt Anzhal an Posts besitzte aber nicht genau wie in der DB sondern sogar schon 5 mehr oder so.
    Kann mir da einer von euch helfen?

    Danke

  • #2
    Addition ist dir bekannt?

    Kommentar


    • #3
      Ja aber ich meine es so:

      1. Rang = 50 Posts
      2. Rang = 150 Posts

      Bis jetzt macht mein Script den Rang zuweisen nur, wenn man genau die Posts hat. Ich will es aber auch so wenn er zum Beispiel nur 75 Posts hat das er den neuen Rang bekommt.

      Kommentar


      • #4
        kleiner als und größer als....

        oder so ....

        PHP-Code:
        <?php
        if($posts 50)
         echo 
        "loser";
        elseif(
        $posts 150)
         echo 
        "star";
        ....
        ?>
        Beste,
        Tim
        Typo3 Suchmaschinenoptimierung <- alles Rund um SEO mit Typo3

        Kommentar


        • #5
          Ja ok das weiß ich auch, aber die Daten stehen in der Db und ich habe sie alle auslesen lassen und in einem Arrav speichern lassen, wie kann ich es also mit den Daten aus meiner DB machen'?

          Kommentar


          • #6
            Code:
            SELECT
              IF (posts < 50,   'kadett',
              IF (posts < 500,  'corporal',
              IF (posts < 5000, 'General')))
                AS rank,
              username
            FROM
              users
            WHERE
              username = 'malte'
            LIMIT
              1
            Beachte, dass du alle Klammern von IF wieder schließt.

            Kommentar


            • #7
              Und wie kann ich es machen, dass ich die Daten aus der DB hole wo drinne steht wie welcher Rang heißt und bei wie vielen Posts er kommt?
              Danke

              Kommentar


              • #8
                Mit JOIN. Ich kau dir jetzt nicht alles durch. Du willst ein Forum schreiben, dann solltest du JOIN in- und auswendig beherrschen.
                Mehr dazu im MySQL-Manual.

                Kommentar

                Lädt...
                X