Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > [PHP] Bannerrotation
Antwort
 
Themen-Optionen
Alt 11.11.2006, 22:39   Nach oben    #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).
Berti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.11.2006, 00:21   Nach oben    #2
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
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...
ljungi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.11.2006, 09:24   Nach oben    #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).
Berti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.11.2006, 10:11   Nach oben    #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
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.11.2006, 10:16   Nach oben    #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?
Berti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.11.2006, 11:35   Nach oben    #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.
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zum Tut: [PHP] Fremde Webseiten auslesen the_cRu PHP-Programmierung 27 10.02.2007 19:59
[PHP] Ein simples Bannerrotations"system" Ben Tutorials 2 23.07.2006 00:27
[PHP] PDF erstellen - ganz einfaches, schlichtes Beispiel Jann Hendrik Tutorials 4 24.11.2005 12:44
[PHP] Ein einfaches Template-System MrNiceGuy Tutorials 0 09.10.2005 18:30
[PHP] Erstellung und Bearbeitung von Bildern mittels PHP WarrenFaith Tutorials 1 23.08.2005 15:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:47 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

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 35 36 37 38 39 40 41 42 43 44