Rudi: db fopen

Hallo,

ich habe eine Datenbank mit verschiedenen urls. Wenn ich diese urls mit einem query aus der db ziehe und dann fetche, sind diese urls alle in array[0] hinterlegt. Das finde ich komisch, ich dachte eher die url aus zeile 1 ist in array[0], die aus zeile 2 in array[1] usw...
Mein Ziel ist es, die hinterlegten urls mit fopen zu öffnen und mit preg_match_all auszulesen. Geht fopen direkt, also fopen(array) oder so ähnlich, oder war das zu einfach gedacht?

Bin für jede Hilfe dankbar
MfG Rudi

  1. hi,

    ich habe eine Datenbank mit verschiedenen urls.

    Also ein URL pro Datensatz?

    Wenn ich diese urls mit einem query aus der db ziehe und dann fetche, sind diese urls alle in array[0] hinterlegt.

    Die fetch-Funktionen holen jeweils nur einen Datensatz - und nicht etwa alle Datensätze auf einmal.
    Wenn die alle im Array-Element mit dem Index 0 landen - dann hast du es wohl so ausprogrammiert.

    Das finde ich komisch, ich dachte eher die url aus zeile 1 ist in array[0], die aus zeile 2 in array[1] usw...

    Nur wenn du es entsprechend programmierst.

    Mein Ziel ist es, die hinterlegten urls mit fopen zu öffnen und mit preg_match_all auszulesen. Geht fopen direkt, also fopen(array) oder so ähnlich, oder war das zu einfach gedacht?

    Letzteres :-)

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hallo wahsaga,

      vielen Dank für deine Antwort

      Nur wenn du es entsprechend programmierst.

      Und an was denkst du da?

      Danke
      MfG Rudi

      1. hi,

        Nur wenn du es entsprechend programmierst.

        Und an was denkst du da?

        An eine Schleife - in der du jeweils einen Datensatz holst, so lange es noch Datensätze gibt, und ihn als neues Element ins Array einfügst.
        Manual hat Beispiele.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hallo wahsaga

          Manual hat Beispiele.

          finde leider die Stelle im Manual nicht.
          Kannst du mir die sagen?

          Habe auch mal im Archiv geschaut. Es gab ja auch schon ein paar Threats zu dem Thema, aber irgendwie bleiben alle immer so oberflächlich. Bin noch nicht so ein Experte, dem man sagt "mach so und so" und dann klappt das.

          Viele Grüße

          1. hi,

            Manual hat Beispiele.

            finde leider die Stelle im Manual nicht.
            Kannst du mir die sagen?

            Welche Funktion willst du denn jetzt genau benutzen?

            Habe auch mal im Archiv geschaut. Es gab ja auch schon ein paar Threats zu dem Thema, aber irgendwie bleiben alle immer so oberflächlich. Bin noch nicht so ein Experte, dem man sagt "mach so und so" und dann klappt das.

            Dann solltest du vielleicht erst mal mit einem Tutorial anfangen.
            http://tut.php-q.net/
            http://schattenbaum.net/php/

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Welche Funktion willst du denn jetzt genau benutzen?

              hi wahsaga,

              habs jetzt mal so probiert. klappt aber auch nicht. er zeigt nichts an:

              [php]
              $result = mysql_query("SELECT bla FROM blabla");

              $ding = array(); //leeres Array anlegen
                  while($dong = mysql_fetch_row($result)):
                  $ding=array_push($ding,$dong);
                  endwhile; //Schleifenende

              print_r($dong);
              [/php]

              1. hi,

                habs jetzt mal so probiert. klappt aber auch nicht. er zeigt nichts an:

                $result = mysql_query("SELECT bla FROM blabla");
                  // Verwende hier bitte mysql_error(), um zu erfragen, ob deine Query überhaupt
                  // fehlerfrei ausgeführt werden konnte.
                  // ideales Vorgehen:
                  // $sql = "SELECT bla FROM blabla";
                  // $result = mysql_query($sql) or die(mysql_error()."<br>\nQuery war: #".htmlspecialchars($sql)."#");
                  // So bekommst du einen eventuellen Fehler gemeldet, und siehst auch noch mal genau,
                  // was du als Query an die DB übergeben hast (letzteres ist vor allem bei
                  // dynamisch zusammengesetzten Queries interessant).

                // Wenn die Abfrage fehlerfrei ausgeführt werden konnte, lasse dir als nächstes
                  // mit mysql_num_rows() zur Kontrolle ausgeben, wie viele Datensätze sie
                  // zurückgeliefert hat. Sollten das wider Erwarten 0 sein - dann macht deine
                  // nachfolgende Schleife logischerweise auch gar nichts.
                  // Dann übernehme als nächsten Schritt die Query per Copy&Paste, und teste
                  // sie direkt in einem Frontend wie phpMyAdmin o.ä.

                $ding = array(); //leeres Array anlegen
                    while($dong = mysql_fetch_row($result)):
                    $ding=array_push($ding,$dong);

                //  $ding[] = $dong; ist an dieser Stelle einfacher

                endwhile; //Schleifenende

                print_r($dong);

                  
                gruß,  
                wahsaga  
                  
                
                -- 
                /voodoo.css:  
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                
                1. echo $begrüßung;

                  // ideales Vorgehen:
                    // $result = mysql_query($sql) or die(mysql_error()."<br>\nQuery war: #".htmlspecialchars($sql)."#");

                  Ideal ist diese Art auf Fehler zu reagieren keinesfalls. Sie eignet sich nur zum Suchen während der Entwicklungsphase. Es können auch während des Produktivbetriebs Fehler auftreten und die sollten still abgefangen werden und nicht mit Ausgabe von Interna dem Anwender präsentiert werden.

                  echo "$verabschiedung $name";

                  1. hi,

                    Ideal ist diese Art auf Fehler zu reagieren keinesfalls. Sie eignet sich nur zum Suchen während der Entwicklungsphase.

                    Natürlich, dazu war's ja hier auch gedacht.

                    Es können auch während des Produktivbetriebs Fehler auftreten und die sollten still abgefangen werden und nicht mit Ausgabe von Interna dem Anwender präsentiert werden.

                    D'accord.

                    gruß,
                    wahsaga

                    --
                    /voodoo.css:
                    #GeorgeWBush { position:absolute; bottom:-6ft; }