1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

frage zum ausgeben

  • Chris_3
  • 23. Mai 2007 um 16:28
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Chris_3
    Punkte
    135
    Beiträge
    17
    • 23. Mai 2007 um 16:28
    • #1

    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:

    PHP
    <?
    for ($i; $i<=$i1; $i++) {
    //Nach jedem x-tem Bild Zeilenumbruch
    if (($i-1)/6 == round(($i-1)/6))
    {
    print "</tr> <tr>";
    }
    //Bilder ausgeben
    $query = mysql_query("select * from $mode where Id = $i");
    while ($row = mysql_fetch_array($query))
    {
    print "<td width=\"15%\"><a href=\"$link[i]\" <img border=\"0\" src=\"".$share."/Pics/".$row[bildname]."\"</a> <br>
     <small>".$row[bildname]."</small> </td>";
    }
    }
    Alles anzeigen


    danke für die hilfe

    lg chris

  • a9bejo
    Punkte
    4.697
    Beiträge
    913
    • 23. Mai 2007 um 19:54
    • #2
    Zitat von Chris_3
    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.

  • Chris_3
    Punkte
    135
    Beiträge
    17
    • 23. Mai 2007 um 20:01
    • #3

    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

  • phudy
    Punkte
    1.087
    Beiträge
    182
    • 23. Mai 2007 um 21:24
    • #4

    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.

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum