kostenloser Webspace werbefrei: lima-city


bannerrotation mit zähler

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    losebettler1

    losebettler1 hat kostenlosen Webspace.

    hi,
    ich habe mir ein script zusammengestellt mit dem ich in die datenbank immer einen CODE einlesen kann und dieser bekommt automatisch eine vortlaufende ID.

    ich nutze dieses script momentan um die datenbank mit sprüchen zu füllen und dann per zufall eine ID auf der Startseite ausgeben zu lassen.

    nun möchte ich das script gerne so umbauen, das es zählt wie oft es einen CODE/ID ausgegeben hat und nach einer eingestellten anzahl aufhört diesen CODE zu zeigen.

    wen es fertig ist will ich nämlich das es zwischen den sprüchen ab und zu einen werbebanner einblendet. diese jedoch sollen nach einer bestimmten anzahl von views nicht mehr angezeigt werden.


    wie kann ich das problem lösen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. w******s

    Du kannst ja dann beispielsweise eine Tabelle "counter" anlegen, die nur dazu dient etwas zu zählen. Bei jedem Aufruf dieser Seite wird dann ein der Wert um eins erhöht. Dies geschieht dort wo du auch die Ausgabe tätigst für den zufälligen Spruch.

    Das mit dem Werbebanner sollte auch einfach sein. Immerdann wenn die Zahl, die der Counter enthält durch die beispielsweise 12 teilbar ist (ohne Rest) wird Werbung angezeigt. Das lässt sich mit einer If-Abfrage machen. Demnach würde bei jedem zwölften Aufruf Werbung eingeblendet werden.

    Zusätzlich könntest du noch mit der Counter-Tabelle zählen wie oft die Werbung angezeigt wurde, wobei das schon aus der anderen Zählung hervorgeht.
  4. Autor dieses Themas

    losebettler1

    losebettler1 hat kostenlosen Webspace.

    wäre es auch möglich das ich z.b. die tabelle "counter" oder besser "views" anlege und ihr einen wert von bsp. 1000 zuweise.
    bei jeder einblendung soll dann von diesem wert 1 abgezogen werden.
    durch ne if funktion kann ich ja dann erst abfragen if "views" = "0" --> zufallsanzeigecode nochmal

    und was du vorgeschlagen hast mit werbung jedes 12te mal anzeigen hört sich auch gut an!
    nur würd ich die werbung gerne jedes 3te mal anzeigen. wie müsste das den dann aussehen?
    weil ich bin noch mehr so ein anfänger ;-)

    mein code für die zufallsanzeige ist:

    <?PHP include ("db.php");
    
    $query = "SELECT * FROM spruch WHERE views != 0 ORDER BY RAND() LIMIT 1";
    
    $result = mysql_query($query);
    
    while ($line = mysql_fetch_array($result)) { ?>
    
     <tr>
     <td align="left"><?PHP echo nl2br($line[spruch]);?></td>
     </tr>
    
     <?PHP
    
    $id = $line[id];
    
    $new = $line[views] - 1;
    
    }
    
    
    mysql_free_result($result);
    
    mysql_query("UPDATE spruch SET views='$new' WHERE id='$id'");
    
    mysql_close();
    
    ?>


    Beitrag zuletzt geändert: 9.6.2009 0:00:42 von losebettler1
  5. w******s

    losebettler1 schrieb: wäre es auch möglich das ich z.b. die tabelle "counter" oder besser "views" anlege und ihr einen wert von bsp. 1000 zuweise.
    bei jeder einblendung soll dann von diesem wert 1 abgezogen werden.
    durch ne if funktion kann ich ja dann erst abfragen if "views" = "0" --&gt; zufallsanzeigecode nochmal

    Klar, das ist auch möglich. Nur dann musst du bei 0 wieder hoch setzen, was aber kein Problem darstellen würde. Der Vorteil der andere Variante ist, dass du auch im Blick hast, wie viele "views" es gab.

    losebettler1 schrieb: weil ich bin noch mehr so ein anfänger ;-)
    Ich doch auch:tongue:

    In die while-Schleife müsste dann der Zähler aus der Tabelle ausgelesen werden und um eins erhöht. Das dürfte glaube ich kein Problem sein. Du kannst es ja ganz einfach testen dann, indem du diesen Wert immer ausgibst mit echo.

    Das andere ist etwas kompliziert: Ich hab mal geschaut: Also du hast folgendes:
    $anz_views //muss aus der Datenbank ausgelesen werden. Enthält die Anzahl der Zugriffe
    $ad = 12 //Das ist die Zahl durch die dividiert wird, nach jedem 12. Mal Werbepause
    
    //Wir teilen die Zugriffe durch die Werbepause und immer dann, wenn eine Ganzzahl herauskommt, kommt Werbung:
    if (is_int($anz_views/$ad)) {
     echo "Hier kommt die Werbebotschaft hin, da es ja eine Ganzzahl ist";
    //WICHTIG: Hier muss auch der Datenbankeintrag um 1 erhöht werden, sonst gibts nur noch Werbung und das wollen wir ja nicht;-)
    } else {
     //Hier sollte deine while Schleife stehn
    }


    Ich habe das jetzt nicht getestet, sind bestimmt einige Fehler drin. Kannst ja aber mal ausprobieren und verbessern!
  6. Autor dieses Themas

    losebettler1

    losebettler1 hat kostenlosen Webspace.

    werktags schrieb: Das andere ist etwas kompliziert: Ich hab mal geschaut: Also du hast folgendes:
    $anz_views //muss aus der Datenbank ausgelesen werden. Enthält die Anzahl der Zugriffe
    $ad = 12 //Das ist die Zahl durch die dividiert wird, nach jedem 12. Mal Werbepause
    
    //Wir teilen die Zugriffe durch die Werbepause und immer dann, wenn eine Ganzzahl herauskommt, kommt Werbung:
    if (is_int($anz_views/$ad)) {
     echo "Hier kommt die Werbebotschaft hin, da es ja eine Ganzzahl ist";
    //WICHTIG: Hier muss auch der Datenbankeintrag um 1 erhöht werden, sonst gibts nur noch Werbung und das wollen wir ja nicht;-)
    } else {
     //Hier sollte deine while Schleife stehn
    }



    sry, ich hatte meine eintrag vorhin nochmal abgeändert. ich hab es jetzt schon hinbekommen, das von einem voreingestellten wert runtergezählt wird bis auf 0 (bei 0 wird er nicht mehr ausgelesen und ich könnte ihn, wen ich wollte wieder hoch setzen)

    nun zu deinem. wen ich mich nicht irre, kann ich zwar mit der if anweisung jedes 12.te mal werbung einblenden, jedoch wird diese nicht aus der datatenbank geholt, sonder im code definiert, ich möchte aber die werbung in der "spruch" datenbank mit einfügen. der sinn soll ja darin liegen, das die werbeeinblendung runtergezählt wird. die sprüche bekommen einfach eine höhere werte in die "vies" tabelle.

    edit:
    ich hab mir jetzt folgendes gecodet, bekomme aber nichts als fehlermeldungen... weis einer wo der hacken liegt?:

    <?PHP include ("db.php");
    
    $query = "SELECT * FROM spruch WHERE views != 0 AND id != 31 ORDER BY RAND() LIMIT 1";
    
    $result = mysql_query($query);
    
    while ($line = mysql_fetch_array($result)) { 
    if (is_int($line[views]/3)) {
    
    $query = "SELECT * FROM spruch WHERE id = 31";
    
    $result = mysql_query($query);
    
    while ($line = mysql_fetch_array($result)) { 
     
    ?>
    
     <tr>
     <td align="left"><?PHP echo nl2br($line[spruch]);?></td>
     </tr>
    
     <?PHP
    
    $id = $line[id];
    
    $new = $line[views] - 1;
    
    }
    
    
    mysql_free_result($result);
    
    mysql_query("UPDATE spruch SET views='$new' WHERE id='$id'");
    
    mysql_close();
    } 
    else
    {
    ?>
    
     <tr>
     <td align="left"><?PHP echo nl2br($line[spruch]);?></td>
     </tr>
    
     <?PHP
    
    $id = $line[id];
    
    $new = $line[views] - 1;
    
    }
    
    
    mysql_free_result($result);
    
    mysql_query("UPDATE spruch SET views='$new' WHERE id='$id'");
    
    mysql_close();}
    ?>


    Beitrag zuletzt geändert: 9.6.2009 8:34:51 von losebettler1
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!