+ Antworten
Ergebnis 1 bis 6 von 6

Thema: [PHP] Bannerrotation

  1. #1
    Benutzer
    Registriert seit
    18.06.2006
    Ort
    Straubing
    Beiträge
    85

    Standard [PHP] Bannerrotation

    Hi wieso erhalte ich bei folgendem Scirpt eine Fehlermeldung?
    PHP-Code:
    /**
     * @author     Adalbert Rohr <ad.rohr@schulbuch-und-co.de>
     * @copyright  2006-2007 Wirtschaftsprojekt JTG
     * @desc       Erstellt eine Bannerrotation
     * @uses       config.php
     */ 
    function banner($position)
    {
        require(
    "config.php");
        
    $link mysql_connect($mysql_host$mysql_user$mysql_pass);
        
    mysql_select_db($mysql_data$link);
        
    $sql "SELECT
                   `id`,
                   `clickurl`,
                   `imageurl`,
                   `name`,
                   `banner_count`,
                   `banner_max`
               FROM
                   `bero_banner`
               WHERE
                   `check` = '1'
               AND
                   `banner_count` <= `banner_max`
               AND
                   `position` = '"
    $position ."'";
        
    $result mysql_query($sql);

        while(
    $row mysql_fetch_assoc($result))
            
    $banner[] = $row;

        
    $rand rand (0mysql_num_rows($result)-1);
        
    $url  $banner[$rand]['clickurl'];
        
    $id   $banner[$rand]['id'];
        
    $name $banner[$rand]['imageurl'];
        
    $path $banner[$rand]['id'];

        print 
    "<a href=\""$url ."\" target=\"_blank\">\n";
        print 
    "<div id=\"promotion-field-right\">\n";
        print 
    "<img alt=\""$name ."\" height=\"600\" border=\"0\" src=\""$path ."\" width=\"160\">\n";
        print 
    "</div>\n";
        print 
    "</a>\n";

        
    $sql2 "UPDATE
                   `bero_banner`
               SET
                   `banner_count` = banner_count+1
               WHERE
                   `id` = '"
    $id ."'";
        
    mysql_query($sql2);

    Meldung:
    Code:
    Notice:  Undefined variable:  banner in /home/schulbuc/public_html/includes/functions.php on line 66
    
    Notice:  Undefined variable:  banner in /home/schulbuc/public_html/includes/functions.php on line 67 
    Diese Meldung kommt, sobald das Feld banner_count größer gleich 2 ist.
    Geändert von Berti (11.11.2006 um 22:55 Uhr)

  2. #2
    Blubb... öfz Avatar von ljungi
    Registriert seit
    16.03.2006
    Ort
    Berlin
    Beiträge
    433

    Standard

    Zitat Zitat von Berti Beitrag anzeigen
    Hi wieso erhalte ich bei folgendem Scirpt eine Fehlermeldung?
    PHP-Code:
    /**
     * @author     Adalbert Rohr <ad.rohr@schulbuch-und-co.de>
     * @copyright  2006-2007 Wirtschaftsprojekt JTG
     * @desc       Erstellt eine Bannerrotation
     * @uses       config.php
     */ 
    function banner($position)
    {
        require(
    "config.php");
        
    $link mysql_connect($mysql_host$mysql_user$mysql_pass);
        
    mysql_select_db($mysql_data$link);
        
    $sql "SELECT
                   `id`,
                   `clickurl`,
                   `imageurl`,
                   `name`,
                   `banner_count`,
                   `banner_max`
               FROM
                   `bero_banner`
               WHERE
                   `check` = '1'
               AND
                   `banner_count` <= `banner_max`
               AND
                   `position` = '"
    $position ."'";
        
    $result mysql_query($sql);

        while(
    $row mysql_fetch_assoc($result))
            
    $banner[] = $row;

        
    $rand rand (0mysql_num_rows($result)-1);
        
    $url  $banner[$rand]['clickurl'];
        
    $id   $banner[$rand]['id'];
        
    $name $banner[$rand]['imageurl'];
        
    $path $banner[$rand]['id'];

        print 
    "<a href=\""$url ."\" target=\"_blank\">\n";
        print 
    "<div id=\"promotion-field-right\">\n";
        print 
    "<img alt=\""$name ."\" height=\"600\" border=\"0\" src=\""$path ."\" width=\"160\">\n";
        print 
    "</div>\n";
        print 
    "</a>\n";

        
    $sql2 "UPDATE
                   `bero_banner`
               SET
                   `banner_count` = banner_count+1
               WHERE
                   `id` = '"
    $id ."'";
        
    mysql_query($sql2);

    Meldung:
    Code:
    Notice:  Undefined variable:  banner in /home/schulbuc/public_html/includes/functions.php on line 66
    
    Notice:  Undefined variable:  banner in /home/schulbuc/public_html/includes/functions.php on line 67 
    Diese Meldung kommt, sobald das Feld banner_count größer gleich 2 ist.
    Das ist kein Fehler, sonder nur eine Notice.. Also ein Hinweis auf einen nicht "sauberen" Code.

    Stell mal vor die whileschleife ...
    PHP-Code:
     while($row mysql_fetch_assoc($result))
            
    $banner[] = $row
    ... folgendes
    PHP-Code:
    $banner = array(); 
    Vive la France! Welcome to Sarkoworld...

  3. #3
    Benutzer
    Registriert seit
    18.06.2006
    Ort
    Straubing
    Beiträge
    85

    Standard

    Ne, die Meldung kommt leider weiterhin Jetzt kommt auch nicht mehr
    Code:
    Notice: Undefined variable: banner in /home/schulbuc/public_html/includes/functions.php on line 66
    Notice: Undefined variable: banner in /home/schulbuc/public_html/includes/functions.php on line 67
    
    sondern
    Code:
    Notice: Undefined offset: 0 in /home/schulbuc/public_html/includes/functions.php on line 90
    Notice: Undefined offset: 0 in /home/schulbuc/public_html/includes/functions.php on line 92
    Notice: Undefined offset: 0 in /home/schulbuc/public_html/includes/functions.php on line 92
    Notice: Undefined offset: 0 in /home/schulbuc/public_html/includes/functions.php on line 101
    
    Nur noch kurz zur Erklärung des Script.
    Mit
    PHP-Code:
        $sql "SELECT
               `id`,
               `clickurl`,
               `imageurl`,
               `name`,
               `banner_count`,
               `banner_max`
           FROM
               `bero_banner`
           WHERE
               `check` = '1'
           AND
               `banner_count` <= `banner_max`
           AND
               `position` = '"
    $position ."'";
    $result mysql_query($sql);

    while(
    $row mysql_fetch_assoc($result))
        
    $banner[] = $row
    Rufe ich die vorhandenen Banner aus der Datenbank ab und speichere sie in einem Array.

    PHP-Code:
        $rand rand (0mysql_num_rows($result)-1);
    $url  $banner[$rand]['clickurl'];
    $id   $banner[$rand]['id'];
    $name $banner[$rand]['imageurl'];
    $path $banner[$rand]['id']; 
    Dann wähle ich mit rand() ein zufälliges Element aus dem Array aus.

    PHP-Code:
    print "<a href=\""$url ."\" target=\"_blank\">\n";
        print 
    "<div id=\"promotion-field-right\">\n";
        print 
    "<img alt=\""$name ."\" height=\"600\" border=\"0\" src=\""$path ."\" width=\"160\">\n";
        print 
    "</div>\n";
        print 
    "</a>\n"
    Hier soll nun der Banner ausgegeben werden.
    Geändert von Berti (12.11.2006 um 09:36 Uhr)

  4. #4
    Benutzer
    Registriert seit
    24.10.2006
    Beiträge
    90

    Standard

    Mach doch mal:
    <?php
    assert_options(ASSERT_ACTIVE, 1);
    assert_options(ASSERT_WARNING, 0);
    assert (isset ($banner[$rand]));
    ?>

    $rand verweist glaub ich auf einen index, der nicht existiert.

    Btw.:
    Verwende statt rand () mt_rand ()
    Statt mysql_num_rows COUNT(*)

    MfG Byrel

  5. #5
    Benutzer
    Registriert seit
    18.06.2006
    Ort
    Straubing
    Beiträge
    85

    Standard

    Im Moment benutze ich für die Ausgabe
    $banner[$rand]['name']
    Mit mt_rand funzt das so nicht mehr. Wie gebe ich es dann aus?

  6. #6
    Benutzer
    Registriert seit
    24.10.2006
    Beiträge
    90

    Standard

    http://at.php.net/mt_rand

    Überprüf einfach ob der Index $rand existiert.

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. Frage zum Tut: [PHP] Fremde Webseiten auslesen
    Von the_cRu im Forum PHP-Programmierung
    Antworten: 27
    Letzter Beitrag: 10.02.2007, 19:59
  2. [PHP] Ein simples Bannerrotations"system"
    Von Ben im Forum Tutorials
    Antworten: 2
    Letzter Beitrag: 23.07.2006, 00:27
  3. [PHP] PDF erstellen - ganz einfaches, schlichtes Beispiel
    Von Jann Hendrik im Forum Tutorials
    Antworten: 4
    Letzter Beitrag: 24.11.2005, 12:44
  4. [PHP] Ein einfaches Template-System
    Von MrNiceGuy im Forum Tutorials
    Antworten: 0
    Letzter Beitrag: 09.10.2005, 18:30
  5. Antworten: 1
    Letzter Beitrag: 23.08.2005, 15:30

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

Impressum · Tutorials · Nutzungsbedingungen · thematisch sortierte Linklisten · Spendenaufruf · Team · Partnerprojekte

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34