Patrick: Sequentielles Abarbeiten von DB-Abfragen

Hallo Leute,

ich experimentiere gerade ein wenig mit PHP und MySQL. Starte ich nun mehrere SELECTS in einer MySQL-DB aus PHP heraus, wird erst das komplette Ergebnis, also die fertige Seite ausgegeben. Wie schaffe ich es, dass er mir pro SELECT erst einmal das Ergebnis herausgibt und dann zum nächsten SELECT übergeht...

Beispiel:
1. Abfrage einer URL aus der DB
2. Link-Check
3. Ausgabe ob Link aktiv/inaktiv
4. gehe zu Punkt 1...

Danke schon mal im voraus...

Gruss

Patrick

  1. hi,

    Wie schaffe ich es, dass er mir pro SELECT erst einmal das Ergebnis herausgibt und dann zum nächsten SELECT übergeht...

    flush() - funktioniert aber nicht immer zuverlässig.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hello,

      Wie schaffe ich es, dass er mir pro SELECT erst einmal das Ergebnis herausgibt und dann zum nächsten SELECT übergeht...

      flush() - funktioniert aber nicht immer zuverlässig.

      Bei Server auf Windows nur mit Nachhilfe und bei Server auf Linux nur dann, wenn bestimmte Header noch nicht gesetzt sind. Das habe ich neulich durch Zufall herausgefunden.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  2. Hi,

    ich experimentiere gerade ein wenig mit PHP und MySQL. Starte ich nun mehrere SELECTS in einer MySQL-DB aus PHP heraus, wird erst das komplette Ergebnis, also die fertige Seite ausgegeben. Wie schaffe ich es, dass er mir pro SELECT erst einmal das Ergebnis herausgibt und dann zum nächsten SELECT übergeht...

    Indem Du einfach die Anzahl an SELECTs reduzierst. Am besten auf einen.

    Anhand Deines eigenen Beispiels:

    Beispiel:

    1. Abfrage einer URL aus der DB

    Warum nicht gleich alle abfragen, in einen Array packen und dann mittels eines kleinen rosa Schleifchens ...

    1. Link-Check

    ... den Link im Array markieren, ob er ...

    1. [...] aktiv/inaktiv

    ... ist und dann _nicht_ ...

    1. gehe zu Punkt 1...

    ... sondern: Ausgabe.

    Das Du hier zweimal durchs Array huschen mußt (Läßt sich aber vermeiden, wenn Du mal ein klein wenig darüber sinnierst ;-) ist immer noch deutlich(!) billiger als mehrmals die DB zu fragen.

    Es kann sein, das es in neueren PHP Versionen möglich ist den STDOUT Buffer zu ändern. Das ist aber generell nur extrem selten eine gute Idee. Sowenig DB-Anfragen wie möglich zu haben ist hingegen generell eine gute Idee.

    so short

    Christoph Zurnieden