Brett vorm Kopp V: mysql_fetch_array wir nur einmal ausgeführt.

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

  • Brett vorm Kopp V: mysql_fetch_array wir nur einmal ausgeführt.

    It´s Blaster-Blindfish-Time:

    PHP-Code:
    include_once("../DB_Connection.php");

    $ad = new Cadmin();

    class 
    Cadmin{
    ...
    var 
    $DBC "";
    var 
    $tables = array("");
        
        function 
    Cadmin()
        {
            
    $this->_set_db();
            
    $this->_set_tables();                // zweifacher Fkt Auruf
            
    $this->show_tables($this->tables);
            
    $this->show_tables($this->tables);
    ...
                            
        }
    ...
        function 
    _set_db()
        {
            
    $this->DBC = new CDB_Connection();                    
        }
    ...
        function 
    _set_tables()
        {
            
    $this->tables $this->DBC->get_tables();
        }
    ...
        function 
    show_tables()
        {
            echo 
    "test";
                       echo    
    $res $this->tables;
            
    $i=0;            
            while (
    $row=mysql_fetch_array ($res,MYSQL_ASSOC)){ // diese Zeile wird kein zweitesmal aufgerufen.
                
    foreach ($row as $elem) {
                     echo 
    "<option value='$i'>$elem\n";
                     
    $i++;
                }
            }
        } 
    Bei den Scriptauf erhalte ich die Ausgabe:
    testResource id #2<option value='0'>table0
    <option value='1'>table1
    <option value='2'>table2
    <option value='3'>table3
    ...
    <option value='20'>table20
    testResource id #2
    und hier ist Schluss.
    Warum wird das zweitemal hier nicht mysql_fetch_aray ausgeführt?

    Bin für Tipps dankbar.

    El´Blindo
    Yuppi, endlich Elite ...

  • #2
    Weil Du den internen Result Pointer wieder zurücksetzen mußt ... http://www.php.net/manual/en/functio...-data-seek.php

    PHP-Code:
    function show_tables()
        {
            echo 
    "test";
                       echo    
    $res $this->tables;
            
    $i=0;            
            while (
    $row=mysql_fetch_array ($res,MYSQL_ASSOC)){ // diese Zeile wird kein zweitesmal aufgerufen.
                
    foreach ($row as $elem) {
                     echo 
    "<option value='$i'>$elem\n";
                     
    $i++;
                }
            }
            
    mysql_data_seek ($res0);
        } 
    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


    • #3
      Ups! - Das gibt es auch bei MySql.
      Man lernt nie aus ..

      Danke Goth!
      Wieder was gelernt!
      Yuppi, endlich Elite ...

      Kommentar


      • #4
        Willst Du noch was lernen ??

        Ein Leeres Array kann man auch so definieren:

        var $tables = array();



        die Definition

        var $tables = array("");

        erstellt ein Array mit einem Element das den Wert "" hat ...

        wärend

        var $tables = array();

        ein Array ohne Elemente erstellt ...

        die Prüfung auf ein Array mit Werten kann dann ganz einfach via

        if ( count($this->tables) )

        erfolgen ...
        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


        • #5
          Ja, Meister!

          1) Ich will kein leeres Array
          2) Ob ein Array leer ist genüg ein einfaches if($array) oder is_set ..

          Trotzdem Danke.
          Yuppi, endlich Elite ...

          Kommentar


          • #6
            Nur das isset() auf !NULL prüft ... und
            if ( $array ) nur FALSE liefert, wenn es keine Elemente enthält ... und das hatte ich vorgeschlagen ...
            ...

            Aber nicht das Du denkst ich würde unbedingt darauf bestehen Recht zu haben ...
            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