Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql-db auslesen mit funktion(array)

Einklappen

Neue Werbung 2019

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

  • mysql-db auslesen mit funktion(array)

    also ich habe eine Tabelle in meiner Datenbank mit den Elementen:
    id INT NOT NULL AUTO_INCREMENT (PRIMARY KEY (id))
    name TEXT NOT NULL
    vorname TEXT NOT NULL
    ...
    nun habe ich dort mehrere einträge und ahb mir gedacht um diese auszulesen wäre es praktisch ne funktion zu schreiben. dann dachte ich mir das ich die einzelnen elemente der spalten, pro spalte, in ein "array" einfüge.
    das sieht dann insgesamt so aus:

    PHP-Code:
    //---Funktion zum auslesen---
    function leseaus($table,$verbindung) {
    $inhalt = array();
    $sql "SELECT * FROM ".$table;
    $result mysql_query($sql,$verbindung);
      while (
    $row mysql_fetch_array($resultMYSQL_ASSOC)) {
        
    array_push($inhalt$row);
      }
    return 
    $inhalt;

    Dann musste ich noch, wie ich später festgestellt habe, wissen, wie viele einträge es in der tabelle gibt:
    PHP-Code:
    //---Funktion für anzahl der Beiträge---
    function num_rows($table,$verbindung) {
    $sql "SELECT * FROM ".$table;
    $result mysql_query($sql,$verbindung);
    $num_rows mysql_num_rows($result);
    return 
    $num_rows;

    wenn ich dann die tabelle auslesen will sieht das so aus:
    PHP-Code:
    $num_rows num_rows($table['admin'],$verbindung);
            for (
    $i=0;$i<$num_rows;$i++) {
            
    $arr = (leseaus($table['admin'],$verbindung));

                echo 
    $arr[$i][id] . "." $arr[$i][vorname] . ", " $arr[$i][name] . "

    "
    ;

            } 
    hat alles funktioniert!
    habe mich jetzt gefragt: ist das ganze jetzt "zu" aufwendig und gibt es eine bessere möglichkeit... ??

  • #2
    da du eigentlich eh gleich die ausgabe machst

    PHP-Code:
    <?php
    $sql 
    mysql_query('hier dein query');
    while(
    $array mysql_fetch_assoc($sql)) {
      echo 
    '<pre>'.print_r($array).'</pre>';
    }
    ?>
    sollte bisschen weniger platz verbrauchen und aufs gleiche hinaus laufen
    schlimmer gehts nimmer.... dümmer immer!
    [url=http://www.in-dvd.net][img]http://in-dvd.net/images/go_indvd.gif[/img][/url]

    Kommentar


    • #3
      du willst ne einfache tabelle auslesen???

      und warum der aufwand mit dem Array??? Irgendwas versteh ich falsch glaub ich...

      mach ne while schleife und fertig.... oder ich versteh hier nur Bahnhof???
      Gruß JEGO ;-)

      Ein PHP Script tut, was Du schreibst, nicht was Du willst.

      Kommentar


      • #4
        Wenn deine Tabelle jetzt 100.000 Datensätze à 10 Spalten hat, ist deine Funktion num_rows() die schlechtest-mögliche Art zum zählen der Zeilen.

        Du holst 1 Mio. Zellen aus der Datenbank um sie zeilenweise zu zählen. Wow.

        Code:
        $rows = mysql_result(mysql_query('SELECT COUNT(id) FROM tabelle'),0);
        Ist ungefährt 100x..ach egal..ist schneller :P

        Kommentar


        • #5
          und wenn man eine auto_increment id drin hat
          Code:
          $rows = mysql_query("select id from table order by id desc limit 1") or die (mysql_error());
          ist wahrscheinlich auch schneller als alle zu zählen
          schlimmer gehts nimmer.... dümmer immer!
          [url=http://www.in-dvd.net][img]http://in-dvd.net/images/go_indvd.gif[/img][/url]

          Kommentar


          • #6
            thx!
            @ JEGO
            das war nur eine tabelle zum testen...wollte dies dann später auf alle meine zugriffe auf die Tabellen
            in der Datenbank benutzen...du hast ja recht

            Kommentar


            • #7
              @search
              Nein ist nicht schneller, da die komplette Tabelle sortiert werden muss. Zwar sortierst du einen Index, der, da er eben ein Index ist schon schneller zu handhaben ist, aber schneller als COUNT() ist es nicht! Außerdem könnten Zeilen zwischendrin gelöscht sein oder beim Kopieren der Struktur, wurde noch ein alter auto_increment-Startwert mitkopiert. Und sowas kommt öfter vor als man denkt.

              SELECT COUNT(id) FROM tabelle

              bleibt das schnellste und ist eindeutig. Kannst es ja mal testen

              Kommentar


              • #8
                nö brauch ned testen, is mir nur so spontan eingefallen +g+
                schlimmer gehts nimmer.... dümmer immer!
                [url=http://www.in-dvd.net][img]http://in-dvd.net/images/go_indvd.gif[/img][/url]

                Kommentar

                Lädt...
                X