Leidiges Problem: cannot redeclare...

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

  • Leidiges Problem: cannot redeclare...

    Hi Profis,

    hab mal wieder ein Problem mit ner Funktion.
    Wie kann ich das besser lösen, weil er mir den
    Fehler, ... Fatal error: Cannot redeclare aktiv_image() ... bringt.
    Ich würde gerne auf das includen einer Datei verzichten...

    Code:
    function aktiv_image() {
      if ($output[aktiv] == "1")
      { echo '<img src="pics/aktiv.gif" border="0">'; }
      else 
      { echo '<img src="pics/inaktiv.gif" border="0">'; }
    };
    		
    $aktiv = aktiv_image();
    	
    printf("<tr>
               <td valign=\"middle\">$aktiv</td>
               ")
    ;}

  • #2
    function aktiv_image() {
    if ($output[aktiv] == "1")
    { echo '<img src="pics/aktiv.gif" border="0">'; }
    else
    { echo '<img src="pics/inaktiv.gif" border="0">'; }
    };

    $output[aktiv] ist innerhalb der Funktion nicht bekannt.
    ausserdem hat die Funktion keinen Rückgabewert.
    Warum also $aktiv = aktiv_image();??
    Die Funktion wird einfach mit aktiv_image(); aufgerufen.
    Also:
    <tr><td valign="middle"><?$aktiv_image();?></td>
    etc.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Also gut,

      dann so:

      Code:
      function aktiv_image() {
        if ($output[aktiv] == "1")
        { echo '<img src="pics/aktiv.gif" border="0">'; }
        else 
        { echo '<img src="pics/inaktiv.gif" border="0">'; }
      };
      		
      	
      printf("<tr>
                 <td valign=\"middle\"><? aktiv_image() ?></td>
                 ")
      ;}
      und wie mache ich die SQL-Query $output[aktiv] bekannt?

      Kommentar


      • #4
        zB mit Global...
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Also ich bin kein Genie in Sachen PHP. Du musst mir dass schonmal genauer erklären. Bloß das Problem mit dem redeclare wäre dann immernoch vorhanden oder??

          Kommentar


          • #6
            function aktiv_image($output[aktiv] ) ist die bessere Sache
            Aufruf:

            aktiv_image($output[aktiv])

            was willst Du eigentlich machen? Deine Funktion macht eigentlich nichts großartiges das kann man bestimmt auch eleganter lösen...
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Cannot redeclare function heisst doch nur dass du eine Funktion schon deklariert (also eingebunden hast) und sie dann nochmal eingebunden werden soll. => Fehler
              Wahrscheinlich hast du die Datei mit der Funktion 2 mal includet. Such mal den Code durch.

              Wenn es anders nicht geht..was ich aber nicht glaube..hilft dir wahrscheinlich die datei mit require_once("datei.endung"); einzubinden.

              Kommentar


              • #8
                Wenn ich mir Deinen Quellcode betrachte fällt mir am Ende eine schließende, geschweifte Klammer ( } ) auf ... normalerweiser ein Indikator dafür das du Dich innerhalb einer Schleife oder zumindest einer weiteren Funktion befindest ...

                Sollte dieses der Fall sein ... so ist das der Grund für die Fehlermeldung ...

                PS.: Die Deklaration einer Funktion wird nicht mit einem Semikolon ( ; ) abgeschlossen ...

                PHP-Code:
                function aktiv_image() {
                  if (
                $output[aktiv] == "1")
                  { echo 
                '<img src="pics/aktiv.gif" border="0">'; }
                  else 
                  { echo 
                '<img src="pics/inaktiv.gif" border="0">'; }

                reicht also aus ...
                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


                • #9
                  Also, was ich erreichen will...

                  Das ganze ist ein News-Script, womit ich aktuelle Nachrichten auf meine Website, über ein Administrationsoberfläche schreiben kann.
                  Nun habe ich eine Funktion eingearbeiten, die es mir erlaubt, einzelne Nachrichten auszuschalten, also inaktiv zu machen. Diese werden dann auch auf der HP nicht angezeigt.
                  Das ganze funzt auch, nur will ich in der Administrationsoberfläche eine Grafik, aktiv.gif und inaktiv.gif hinzufügen, womit ich auf den ersten Blick sehe, welche Nachricht aktiv oder inaktiv ist. Das funzt aber mit meinem Code eben nicht.

                  Dazu habe ich in SQL eine Spalte eingefügt, mit der Bezeichnung aktiv. Als Werte kommen da nur 0 oder 1 vor. Also 0 = inaktiv und 1 = aktiv.
                  Wenn in Spalte aktiv der Wert = 0, dann soll er das Bild inaktiv.gif anzeigen, wenn der Wert = 1, dann eben aktiv.gif.

                  Code:
                  while($output=mysql_fetch_array($result))
                  	{	
                  	
                  	function aktiv_image() {
                    	if ($output[aktiv] == "1")
                    	{ echo '<img src="pics/aktiv.gif" border="0">'; }
                    	else 
                    	{ echo '<img src="pics/inaktiv.gif" border="0">'; }
                  	}
                  		
                  
                  printf("<tr>
                             <td valign=\"middle\"><?php $aktiv_image();?></td>
                             </tr>")
                  ;}

                  Kommentar


                  • #10
                    wenn du in der Datenbank 1 oder null speicherst den bennen doch einfach dein bild ebenfalls so

                    Z.B.

                    aktiv_0.gif oder aktiv_1.gif
                    echo '<img src="pics/aktiv_'.$output[aktiv].'.gif" border="0">';


                    Dann brauchst du auch keine Abfrage die das dür dich macht!

                    php-Entwicklung | ebiz-consult.de
                    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
                    die PHP Marktplatz-Software | ebiz-trader.de

                    Kommentar


                    • #11
                      PS: in deiner While-Schleife darf natürlich die Funktionsdefinition nicht eingebunden werden.

                      Sonst bekommst du den Fehler : cannot redeclare...

                      php-Entwicklung | ebiz-consult.de
                      PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
                      die PHP Marktplatz-Software | ebiz-trader.de

                      Kommentar


                      • #12
                        cool danke Berni,

                        die Lösung mit dem umbennen des Bildes in den Wert, der in der Spalte steht war genau die richtige...
                        Vielen Dank!!!!

                        Kommentar


                        • #13
                          Sicher war das auch eine Lösung ... aber die redeclare-Problematik war die der while() Schleife ... !
                          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

                          Lädt...
                          X