Kjorni: Meckern und Verbessern erlaubt

Hi,

nachdem ich keine wirklich vernünftige Lösung gefunden habe, Daten von mysql in Excel oder andere tabellenkalkulationen zu bekommen, habe ich mich selber an eine lösung gemacht.

Und dazu ist Meckern und Verbessern gerne erlaubt, denn ich bin sicher, dass man das performanter hin bekommt.

So gefällt mir z.b. das häufige Öffnen und Schließen der Datei gar nicht. Das hätte ich schon lieber erst in ein Array verpackt und danach in die Datei geschrieben.

Was ist sonst noch so alles verbesserungsfähig bzw. -würdig?

Gruß, Kjorni

  
<?php  
  
$user="root";  
$pass="";  
$server="localhost";  
$name="dbname";  
  
  
$db=mysql_connect($server,$user,$pass);  
mysql_select_db($name,$db);  
  
$schritt = 100;  
$dateiname = "00000.txt";  
  
$gesamt_anzahl = $_REQUEST['gesamt_anzahl'];  
$field = $_REQUEST['field'];  
  
  
if (!isset($_REQUEST['von'])) {  
$von=0;  
} else {  
$von=$_REQUEST['von'];  
}  
  
$bis = $von+$schritt;  
  
  
//========================================  
// Allgemeines  
//========================================  
$query_count="SELECT * from table WHERE ID < 1000";  
$query=$query_count;  
  
if (!isset($gesamt_anzahl)) {  
$result_count=mysql_query($query_count);  
if ($result_count==FALSE) {  
die(mysql_error());  
}  
$gesamt_anzahl=mysql_num_rows($result_count);  
  
  
$field = mysql_num_fields( $result_count );  
   for ( $i = 0; $i < $field; $i++ ) {  
     $names[] = mysql_field_name( $result_count, $i );  
   }  
  
$ueberschrift = implode ("|", $names);  
$ueberschrift="$ueberschrift\r\n";  
  
$fp=fopen($dateiname,'a');  
fwrite($fp,$ueberschrift);  
fclose($fp);  
  
} // end if  
  
//========================================  
// MySQL - Abfrage  
//========================================  
$query.=" LIMIT ".$von.",".$bis."";  
  
$result=mysql_query($query);  
if ($result==FALSE) {  
die(mysql_error());  
}  
  
//========================================  
// In Datei schreiben  
//========================================  
  
while ($row=mysql_fetch_row($result)) {  
  
$zeile = implode ("|", $row);  
$zeile="$zeile\r\n";  
  
  
$fp=fopen($dateiname,'a');  
fwrite($fp,$zeile);  
fclose($fp);  
} // end while  
  
  
  
//========================================  
// Script beenden  
//========================================  
  
if ($von+$schritt > $gesamt_anzahl) {  
	echo ("<BR><BR>Daten in Datei wurde durchgeführt");  
exit;  
} else {  
	echo ("<BR><BR>Datensatz $von bis $bis");  
}  
  
  
//========================================  
// Seite selber aufrufen mit Parametern  
//========================================  
echo ("<meta http-equiv='refresh' content='4;URL=".$PHP_SELF."?von=$bis&amp;gesamt_anzahl=$gesamt_anzahl&amp;field=$field'>");  
  
?>  
  

  1. Hallo,

    nachdem ich keine wirklich vernünftige Lösung gefunden habe, Daten von mysql in Excel oder andere tabellenkalkulationen zu bekommen, habe ich mich selber an eine lösung gemacht.

    das ist sehr lobenswert. Noch lobenswerter ist es Deinen Code zu veröffentlichen und Dich der öffentlichen Kritik zu stellen.

    Ein schneller Blick über Deinen Code zeigt eine Menge Verbesserungspotential, aber mein Hauptkritikpunkt ist der, dass Dein Beitrag dorthin gehört, wo Du angefangen hast: in Deinem alten Thread.

    Bitte antworte Dir doch selbst, wie Du das schon einmal gemacht hast. Danke.

    Freundliche Grüße

    Vinzenz

    1. aber mein Hauptkritikpunkt ist der, dass Dein Beitrag dorthin gehört, wo Du angefangen hast: in Deinem alten Thread.

      Hallo Vinzenz,

      ich bin gerne bereits, auch Kritik an einem Doppelpostimng zu akzeptieren.

      Aber in diesem Fall sehe ich das anders.

      Denn hier geht es rein um ein php-Script. Das hat mit meinem Ausgangsposting nicht mehr gemeinsam als den Rechner, auf dem es geschrieben wurde.

      Wenn das auch schon als Doppelposting gilt, hast Du recht. Ansonsten nicht.

      Selbstredend bleibt es Dir überlassen, mir zu antworten. _DAS_ aber unabhängig von Doppelpostingh oder auch nicht.

      Grüße, Kjorni

      1. Mahlzeit Kjorni,

        Aber in diesem Fall sehe ich das anders.

        Dann siehst Du es in der Tat anders als der Großteil der anderen Teilnehmer des Forums. Und *deren* Ansicht ist relevant, nicht Deine - so leid mir das tut.

        Denn hier geht es rein um ein php-Script. Das hat mit meinem Ausgangsposting nicht mehr gemeinsam als den Rechner, auf dem es geschrieben wurde.

        Doch. Es geht *inhaltlich* um exakt dieselbe Anforderung. Also gehört das Posting in den alten Thread. Punkt. Isso[1].

        MfG,
        EKKi

        [1] Ich Schrei' SOnst ... ;-)

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Doch. Es geht *inhaltlich* um exakt dieselbe Anforderung. Also gehört das Posting in den alten Thread. Punkt. Isso[1].

          Seit wann sind Textdateien Excelformat?

          Hier geht es nur darum, mysql-Daten in eine Textdatei zu schreiben.

          Was ich damit nachher mache, ist doch für die Problemstellung völlig irrelevant.

          Stell Dir vor, ich hätte nach dem php-implode-Befehl gefragt. Hätte das ins Originalposting gehört, nur weil ich es mittelbar hierfür verwenden wollen würde?

          Grüße, Kjorni

          1. Doch. Es geht *inhaltlich* um exakt dieselbe Anforderung. Also gehört das Posting in den alten Thread. Punkt. Isso[1].

            Weißt Du / Wisst Ihr, was Ihr damit erreicht, das so eng zu sehen?

            Einsicht?

            Eher nicht. Eher einen neuen Account.

            Gruß

            1. Hi,

              Weißt Du / Wisst Ihr, was Ihr damit erreicht, das so eng zu sehen?

              Einsicht?

              Eher nicht. Eher einen neuen Account.

              Alberne „Drohung“.

              Damit erreichst *du* höchstens, dass die Bereitschaft, sich mit deinem Problem/deiner Frage zu beschäftigen, sinkt.

              MfG ChrisB

              --
              RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
              1. Damit erreichst *du* höchstens, dass die Bereitschaft, sich mit deinem Problem/deiner Frage zu beschäftigen, sinkt.

                Na genau _DU_ hast hier noch gefehlt.

                Wenn ich doch _DEINE_ Bereitschaft auf Null senken könnte, wäre schon viel gewonnen.

                1. Hi,

                  Na genau _DU_ hast hier noch gefehlt.

                  Wenn ich doch _DEINE_ Bereitschaft auf Null senken könnte, wäre schon viel gewonnen.

                  Du versuchst gerade, genau das umzusetzen, was ich dir in deinem ursprünglichen Thread vorgeschlagen hatte - und willst jetzt meckern, dass ich dir nicht helfen wollen würde?

                  MfG ChrisB

                  --
                  RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
                  1. Du versuchst gerade, genau das umzusetzen, was ich dir in deinem ursprünglichen Thread vorgeschlagen hatte - und willst jetzt meckern, dass ich dir nicht helfen wollen würde?

                    Oh sorry, aber ich lese Deine Postings meistens nicht.

                    1. Hi,

                      Oh sorry, aber ich lese Deine Postings meistens nicht.

                      Da kannst du mal sehen, wie dämlich du dich anstellst.

                      MfG ChrisB

                      --
                      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
                      1. 'ǝɯɐu$ ıɥ

                        | Oh sorry, aber ich lese Deine Postings meistens nicht.

                        Da kannst du mal sehen, wie dämlich du dich anstellst.

                        Darf ich dich zitieren?

                        Hat
                        ssnɹƃ
                        ʍopɐɥs

                        --
                        Murphys Regeln für den Nahkampf:
                        Falls du es nicht mehr weißt: Das Damoklesschwert schwebt über dir!
            2. Hi!

              Doch. Es geht *inhaltlich* um exakt dieselbe Anforderung. Also gehört das Posting in den alten Thread. Punkt. Isso[1].
              Weißt Du / Wisst Ihr, was Ihr damit erreicht, das so eng zu sehen?
              Einsicht?

              Wenn du keine Einsicht für die hiesigen Gepflogenheiten zeigst, wirst du auch mit einem anderen Nickname nicht lange glücklich werden. Die Antwortenden hier haben nicht nur (meist) deutlich mehr Erfahrung auf technischem Gebiet, sondern auch mit Sockenpuppen und anderen, die sich durch missbilligtes Verhalten Vorteile zu verschaffen versuchen. Tanze ihnen nicht auf der Nase rum, sonst leidet darunter die Quantität und Qualität der dir gegebenen Antworten.
              Und es hat nicht nur menschliche Gründe, warum du ein Thema im gleichen Thread fortführen sollst, sondern auch antworttechnische. Deinem Ausgangsposting dieses Threads fehlt die entscheidende Information, dass du das Script wegen Timeout geschrieben hast. Außerdem gab es ja auch schon Antworten und Überlegungen zum Thema, die - auch wenn sie nicht zielführend waren - zumindest für hinzukommende Leser Hinweise geben, was bereits diskutiert wurde. Wenn du dein Problem auf mehrere Stellen aufteilst, fällt es den Antwortenden schwerer, den Überblick zu behalten. Auch darunter leiden die dir gegebenen Antworten.

              Eher nicht. Eher einen neuen Account.

              Den brauchst du nicht, um hier zu posten.

              Lo!

              1. Deinem Ausgangsposting dieses Threads fehlt die entscheidende Information, dass du das Script wegen Timeout geschrieben hast.

                Ok. Dieses Argument sehe ich ein.
                Alle anderen finde ich allerdings zu eng gesehen.

                Egal.

            3. Mahlzeit Kjorni,

              Weißt Du / Wisst Ihr, was Ihr damit erreicht, das so eng zu sehen?

              Ja: z.B., dass die ursprüngliche Frage bzw. das ursprüngliche Problem mit allen dazu gegebenen Antworten, alternativen Ideen und letztendlich vielleicht umgesetzten Lösungen in Verbindung gebracht werden kann - und das auch und vor allem im Archiv (das ja von potentiellen Fragenden eigentlich zuerst konsultiert werden sollte). Das wird ja aber alles in der Charta ausführlich erläutert - und die hast Du ja schließlich gelesen.

              Einsicht?

              Nicht immer, nein. Leider waren in den letzten Jahren einige Fragende nicht kompatibel mit den hiesigen Gepflogenheiten.

              Eher nicht. Eher einen neuen Account.

              Den dann aber bitte in einem anderen Forum ... oder aber Du akzeptierst wie alle anderen hier die Charta.

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    2. Hi,

      aber mein Hauptkritikpunkt ist der, dass Dein Beitrag dorthin gehört, wo Du angefangen hast: in Deinem alten Thread.

      Das ist imho sehr eng gesehen. Dort gehts um eine theoretische Möglichkeit, hier um ein konkret geschriebenes Script. Ein wenig Differenzierung zwischen Dränglern und solchen Grenzfällen darf schon mal sein.

      Gruesse, Joachim

      --
      Am Ende wird alles gut.
      1. Hi,

        Das ist imho sehr eng gesehen. Dort gehts um eine theoretische Möglichkeit, hier um ein konkret geschriebenes Script.

        Eben - und wie EKKi schon schrieb, ist es wichtig, die „Vorgeschichte“ zu kennen, damit jetzt niemand unnötiger Weise fragt, „warum machst du das nicht einfach so: ...?“
        Welche Möglichkeiten auf Grund technischer Gegebenheiten schon ausgeschlossen wurden, ist für Antworter durchaus wissenswert.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Hi,

    nachdem ich keine wirklich vernünftige Lösung gefunden habe, Daten von mysql in Excel oder andere tabellenkalkulationen zu bekommen, habe ich mich

    selber an eine lösung gemacht.

    is ok.

    Und dazu ist Meckern und Verbessern gerne erlaubt, denn ich bin sicher, dass man das performanter hin bekommt.

    Juhu, vielleicht auch ein bischen sicherer :P

    Was ist sonst noch so alles verbesserungsfähig bzw. -würdig?

    $db=mysql_connect($server,$user,$pass);
    mysql_select_db($name,$db);

      
    Bedenke, dass der 'connect' fehlschlagen kann, also hier breits entsprechend reagieren.  
      
    Hotti
    
    -- 
    eval { die "Vielleicht?" }; # könnte ja sein
    
    1. Bedenke, dass der 'connect' fehlschlagen kann, also hier breits entsprechend reagieren.

      Hi Hotti,

      danke. Werde ich machen.

      Juhu, vielleicht auch ein bischen sicherer :P

      Aber vermutlich wird hier eh niemand mehr weiter antworten, nachdem eine Eurer Forenikonen mein Post als Doppelpost gebrandmarkt hat.

      Grüße, Kjorni

      1. Om nah hoo pez nyeetz, Kjorni!

        Aber vermutlich wird hier eh niemand mehr weiter antworten, nachdem eine Eurer Forenikonen mein Post als Doppelpost gebrandmarkt hat.

        es steht dir frei dieses Posting in deinem ursprünglichen Thread wiederholt zu veröffentlichen. Dort gehört es hin und dort wirst du auch weiterhin Antworten bekommen. Die Gründe, warum Doppelpostings ungern gesehen sind und warum auch dieses eines ist, wurden dir erläutert.

        Du kannst nun beleidigt von dannen ziehen oder diese Regelungen hinnehmen.

        Vielleicht siehst du aber irgendwann dieses Forum auch als deins an und dann brauchst du nicht abwertend von Ikonen schreiben.

        Matthias

        --
        Wer ein Problem beschreiben kann, hat es schon halb gelöst.                                             (Julian Huxley) http://www.billiger-im-urlaub.de/kreis_sw.gif
        1. Vielleicht siehst du aber irgendwann dieses Forum auch als deins an und dann brauchst du nicht abwertend von Ikonen schreiben.

          Hi Matthias,

          _das_  war keinesfalls so abwertend gemeint, wie es sich liest.

          Jedenfalls nicht mehr, als Vinzenz' Satz mit dem "selber antworten. Danke."

          Zur Richtigstellung:

          Er (also die Ikone) hat diesen Namen von mir bekommen, weil ich seinen Namen halt kenne und er mir schon öfter sehr gut weitergeholfen hat (im Gegensatz zu anderen Usern, deren Name mir auch geläufig ist).

          Ich könnte auch eine Faust in die Tasche machen und einfach akzeptieren, dass die Mehrheit der Antwortenden mein Posting anders sieht als ich.

          Dennoch habe ich eine eigene Meinung dazu und habe bewußt "doppelt" gepostet.

          Dass ich aber nicht grundsätzlich unwillig bin, die Doppelpost-Regel zu akzeptieren, darf Dir dieser Beitrag von mir zeigen. Hier hatte Martin seinerzeit recht und ich hab überhaupt nicht darum diskutiert.

          Wie dem auch sei. Lassen wir das Thema einfach ruhen und so wie es ist.

          Grüße, Kjorni