Problem mit meinem MySQL Befehl!

  • Hallo :)

    Ich brauche Hilfe bei meinem MySQL Befehl. Ich sitze da schon geschlagene 2 Stunden ... -.-

    Also. Ich will eine Seite erstellen. Ich will, dass wenn ich mit der Maus über ein Bild gehe, ein kleines Bild erscheint wo es das gleiche Bild ist, aber in Kleinformat. Die Bilder und den Kleinformat habe ich. Also habe ich die Seite gemacht. Ich mach das alles mit einer CMS. Ich will sehr viele Bilder hinzufügen minimal sind es 2.000! Also will ich nicht immer <img src="images/bild.png"> machen, da es sehr lange dauert. Also habe ich eine Tabelle erstellt. Mit 2 Strukturen.Die erste heißt icon und die zweite heißt smallicon. Ich wollte es dann immer auf meine Seite mit einem Bild Uploader uploaden ( die Bilder ). Aber immer, wenn ich dann die 2 Bilder (Kleinformat und Großformat) uploade, erscheint nur das Großformatige Bild. Ich hoffe so sehr, dass ihr es versteht :S ich konnt's nicht besser erklären.
    Hier ist mein SQL Code:

    CODE:
    (PS: Das sind die großen Icons)
    $dir = "icons"; // hierhin wirds gespeichert
    $i = 1;
    $newname = $_FILES['icon']['name'];
    while(is_file("$dir/$newname")){
    $ext = strrchr($_FILES['icon']['name'], '.');
    $newname = substr($_FILES['icon']['name'], 0, -(strlen($ext)+1)) . "_$i.$ext";
    $i++;
    }
    $upload = move_uploaded_file($_FILES['icon']['tmp_name'], "$dir/$newname");
    chmod("$dir/$newname", 0777);
    // (JETZT KOMMT DER TEIL, ANDEM IRGENDWO WAS FALSCHES IST, da hier der Code fürs Kleinformatige Bild upgeloadet wird)
    $iss = 1;
    $newnamess = $_FILES['ssicon']['name'];
    while(is_file("icons_small/$newnamess")){
    $extss = strrchr($_FILES['ssicon']['name'], '.');
    $newnamess = substr($_FILES['ssicon']['name'], 0, -(strlen($extss)+1)) . "_$iss.$extss";
    $iss++;
    }
    $upload = move_uploaded_file($_FILES['ssicon']['tmp_name'], "furnis_small/$newnamess");
    chmod("furnis_small/$newnamess", 0777);

    // In die Tabelle wird eingetragen eintragen
    $time = time();
    $query = mysql_query("INSERT INTO ".$prefix."bilder (icon, ssicon) VALUES
    ('$dir/$newname', 'furnis_small/$newnamess)");

    Ich hoffe einer löst es ... :S

  • Zuerst einmal:

    Richtig debuggen:

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Und dann benutze bitte BB-Code, um den Quellcode hier im Forum vernünftig anzeigen zu lassen.

  • Änder mal:

    PHP
    <?php
    $query = mysql_query("INSERT INTO ".$prefix."bilder (icon, ssicon) VALUES
                                  ('$dir/$newname', 'furnis_small/$newnamess)");
    ?>

    in

    PHP
    $query = mysql_query("INSERT INTO " . $prefix . "bilder (icon, ssicon) VALUES ('" . mysql_real_escape_string($dir . '/' . $newname) . "', '" . mysql_real_escape_string('furnis_small/' . $newnamess) . "')") or die("Fehler: " . mysql_error());


    (http://de2.php.net/mysql_real_escape_string)
    Hier gehts also nur um das SQL Statement, right?

    Gruß crAzywuLf :D

    Einmal editiert, zuletzt von crAzywuLf (29. August 2011 um 10:18)