frage zum ausgeben

  • hi erstmals, das forum ist voll geil!
    also ich habe folgendes problem:
    ich lasse mir mit einer for- schleife datensätze von einer datenbank auslesen, der primärschlüssel, die id hilft mir gut dabei, aber das problem ist: wenn ich z.b. einen datensatz lösche gibt es diese id nicht mehr und bei der ausgabe ist ein leeres feld anstatt dem bild. nun wollte ich euch fragen, ob ihr nen plan habt, wie man das ganze umgehen kann.

    hier mal mein bisheriger quelltext:


    danke für die hilfe

    lg chris

  • PHP
    <?
    for ($i; $i<=$i1; $i++) {
    ...
    $query = mysql_query("select * from $mode where Id = $i");
    ...


    Hallo Chris,

    Wie Du bereits bemerkt hast, kannst du dich nicht darauf verlassen,
    dass die Primaerschluessel in einer Datenbank eine vollstaendig und
    aufsteigende Reihe bilden. Das scheint aber in deinem Fall auch gar
    nicht notwendig au sein: Wenn Du einfach die where-bedingung
    weglaesst:

    Code
    $query = mysql_query("select * from $mode");

    kannst Du doch bequem ueber alle elemente drueber iterieren? Falls es
    eben nicht alle Elemente sein sollen, kannst du die Datenmenge mit
    ORDER BY und LIMIT nach belieben einschraenken.

  • das geht?
    das kann ich mir irgendwie gar nicht vorstellen:
    wenn ich z.b. den datensatz mit dem schlüssel 2 raus lösche und alle bilder nach der reihe ausgeben lasse, dann hab ich bild1, LEER, bild 3 etc...
    weil die for-schleife läuft auch nur bis zur anzahl der datensätze und wenn da einer fehlt, wird das letzte bild auch nicht angezeigt...

    meine frage war ja ob man das umgehen kann, wenn ein datensatz nicht vorhanden ist, dass man einfach einen schritt weiter geht oder das mit einer if-abfrage steurern kann...


    lg chris

  • abgesehen davon schickst du in ner schleife jedesmal einen neuen db-request ab. dh bei 50.000 bildern => 50.000 requests an die datenbank. moerder zaaaaaaaaach.

    besser wie a9bejo schon geschrieben:
    vorher alle daten aufeinmal fetchen und ueber die iterieren.

    das loest dann auch alle anderen probleme automatisch.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!