Probleme mit mysql insert bei for-Schleife

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit mysql insert bei for-Schleife

    Hallo liebe Community,

    ich wende mich jetz an euch, da bei einem anderen Forum (phpforum.de) mir nicht geholfen wurde sondern nur gemeckert.

    Ich hoffe, dass es hier besser klappt.

    Also ich habe ein (ziemlich langes) Skript, dass bei mir Musik hochladen und in die Datenbank reinschreiben soll. Nur leider schreibt es sie nicht in die Datenbank.

    PHP-Code:
    <h1>Musik</h1>

    <?php
    $sql 
    mysql_query("SELECT * FROM musik");
    $menge mysql_num_rows($sql);
    $sql2 mysql_query("SELECT * FROM bands");
    $menge2 mysql_num_rows($sql2);

    if(
    $menge2 == 1) {
    $a 'Album';
    } else {
    $a 'Alben';
    }

    echo 
    'In der Datenbank befinden sich derzeit '.$menge2.' Bands mit '.$menge.' Musiktitel.<br>';
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <input type="submit" class="button" name="band2" value="Neue Band hinzuf&uuml;gen"><br>
    <input type="submit" class="button" name="titel" value="Neue Titel hinzuf&uuml;gen">
    </form>
    <?php


    if(!isset($_POST['titel2'])) { 
    #if(isset($_POST['titel'])) {
    ?>
    <table border="0">
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <tr><td>Titelanzahl:&nbsp;</td><td><input type="text" class="button" name="anzahl" size="7"></td></tr>
    <tr><td></td><td><input type="submit" class="button" name="titel2" value="Senden"></td></tr>
    </form>
    </table>
    <?php
    #}
    } else {

    $anzahl $_POST['anzahl'];
    #if(isset($_POST['titel2'])) {
    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
    <table border="0">
    <tr><tr>
    <?php
    for($i 1$i <= $anzahl$i++) {?>
    <tr><td>Titel <?php echo $i?>/L&auml;nge:&nbsp;</td><td><input type="text" class="button" name="title[]">&nbsp;<input type="text" class="button" name="lange[]" size="3"></td></tr>
    <?php ?>
    <tr><td>Album:</td><td><input type="text" class="button" name="album"></td></tr>
    <tr><td>Bandname:</td><td><input type="text" class="button" name="band"></td></tr>
    <tr><td>Format:</td><td><input type="text" class="button" name="format"></td></tr>
    <tr><td>URL:</td><td><input type="text" class="button" name="url"></td></tr>
    <tr><td>Index:</td><td><input type="text" class="button" name="index"></td></tr>
    <tr><td>Albumupload:</td><td><input type="file" name="datei"></td></tr>
    <tr><td></td><td><input type="submit" class="button" name="titel3" value="Hinzuf&uuml;gen"></td></tr>
    </table>
    </form>
    <?php
    }


    $album $_POST['album'];
    $band $_POST['band'];
    $format $_POST['format'];
    $url $_POST['url'];
    $index $_POST['index'];

    #for($i=1;$i<=$anzahl;$i++) {
    #$title = $_POST['title'.$i];
    #$lange = $_POST['lange'.$i];
    #}

    for($i=1$i <= count($title); $i++) {
    $query sprintf("INSERT INTO mus(`titel`,`album`,`band`,`laenge`,`format`,`url,`index`) VALUES('%s','$album','$band','%s','$format','$url','$index')",$title[$i],$album,$band,$lange[$i],$format,$url,$index);
    mysql_query($query);
    }

    $sql3 mysql_query("SELECT album FROM mus WHERE album = ".$album."");
    $zahl mysql_num_rows($sql3);

    if(
    $anzahl == $zahl) {
    echo 
    '<center>Die Lieder wurde erfolgreich hochgeladen der Datenbank hinzugef&uuml;gt.<br><a href="musik.php">OK</a></center>';
    die;
    } else {
    echo 
    '<center>Leider gab es einen Fehler beim Hochladen und Hinzuf&uuml;gen der Bilder der Datenbank.<br><a href="musik.php">Zur&uuml;ck</a></center>';
    die;
    }
    Doch leider wird nicht in die Datenbank geschrieben. Also überhaupt nichts. Aber die Variablen werden richtig übernommen.

    Bitte um Rat.

    Watcher14

    PS: Ich hänge die Datei einfach mal mit dran!
    Zuletzt geändert von Watcher14; 19.12.2014, 17:30.

  • #2
    Da du hier die selben Fehler wieder machst, wird man hier wahrscheinlich auch "meckern". Mitarbeiten solltest du halt schon und nicht alles ignorieren, was man dir sagt.

    http://phpforum.de/forum/showthread.php?t=270249
    Zuletzt geändert von h3ll; 18.05.2012, 11:58.

    Kommentar


    • #3
      re

      1. Schalte dein Error-Reporting ein um evtl. Fehlermeldungen angezeigt zu bekommen.
      2. Ich sehe nirgends das du die Variable "$title" mit einem Wert belegt hast.

      Kommentar


      • #4
        Zitat von CPCoder Beitrag anzeigen
        2. Ich sehe nirgends das du die Variable "$title" mit einem Wert belegt hast.
        Doch hat er (name="title[]"). Ist allerdings das uralte register_globals-Problem.

        @TS
        Schau dir mal das hier an.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Keine Angst, ich arbeite mit. ich habe schonj alles durchprobiert, was mir gesagt wurde.

          Ich habe jetzt gesehen, dass bei mir etwas fehlte.

          Bei mir kommt der Fehler jetzt:
          Code:
          You have an error in your SQL syntax; check the manual that corresponds  to your MySQL server version for the right syntax to use near 'index`)  VALUES('klöjklj','album','band','album','format','url','index')' at line  1
          ahso da wo album usw. steht, habe ich jetzt nur so eingegeben. Aber album(2) dürfte nicht sein, da müsste eingentliche die Länge des Titels stehn.

          Kommentar


          • #6
            Ok, wer lesen kann ist klar im Vorteil (einfach zu viele Hochkommas). Ich konnte das Problem jetzt soweit beschränken, dass jetzt nur noch ist, dass die Länge des Titel noch nicht in die Datenbank geschrieben wird sondern als Album angezeigt wird.

            Kommentar


            • #7
              Zitat von Kropff Beitrag anzeigen
              Doch hat er (name="title[]"). Ist allerdings das uralte register_globals-Problem.
              ...
              Ah ok, das hatte ich übersehen.
              Denke mittlerweile eigentlich schon gar nimmer an dieses register_globals Zeug

              Kommentar


              • #8
                Also ich glaube nun, dass ich völlig blind bin.
                Ich habe das Problem gelöst.

                Dennoch vielen Dank..

                Das Skript hänge ich mal als Anhang an.

                Watcher14
                Angehängte Dateien

                Kommentar


                • #9
                  Und die ganzen Fehler sind noch immer drin. Die Lernresistenz von manchen Leuten beeindruckt mich immer wieder.

                  Kommentar


                  • #10
                    Wieso, was ist denn noch falsch? Das einzige was mir gerade auffällt ist gerade, dass ich vergessen habe mysql_error() mit reinzuschreiben.

                    Kommentar


                    • #11
                      Zitat von Watcher14 Beitrag anzeigen
                      Wieso, was ist denn noch falsch? Das einzige was mir gerade auffällt ist gerade, dass ich vergessen habe mysql_error() mit reinzuschreiben.
                      PHP Forum: phpforum.de - Einzelnen Beitrag anzeigen - Problem mit for-Schleife, FATAL ERROR

                      Kommentar


                      • #12
                        Also:
                        1. muss mir glaub ich einer erklären wie er das meinte.
                        2. hab ich schon drin.
                        3. Variablen sind eig schon zum größten Teil draußen nur noch die, die sein müssen.
                        4. Ok, das liegt daran das ich das noch so gelernt habe.
                        5. Sonst zeigt es bei mir nur unverständliche Zeichen an
                        6. Tut mir leid, aber ich sehe so am Besten durch daher ist das immer ein bisschen schwer jemanden das recht zu machen, wenn man immer durch seine eigenen Augen sieht
                        7. Ich hab das schon mit == versucht, aber da kommt immer nur ein Fehler und bei = funktioniert es, so wie es funktionieren soll
                        8. Die sollte ich noch rausnehmen. Aber ich habe Text dazwischen, da hab ich eine gute Übersicht deswegen <table>.
                        9. Bei mir funktionierts
                        10. Siehe Teil, wo ich es zuweise

                        Kommentar


                        • #13
                          Zitat von Watcher14 Beitrag anzeigen
                          Also:
                          1. muss mir glaub ich einer erklären wie er das meinte.
                          2. hab ich schon drin.
                          3. Variablen sind eig schon zum größten Teil draußen nur noch die, die sein müssen.
                          4. Ok, das liegt daran das ich das noch so gelernt habe.
                          5. Sonst zeigt es bei mir nur unverständliche Zeichen an
                          6. Tut mir leid, aber ich sehe so am Besten durch daher ist das immer ein bisschen schwer jemanden das recht zu machen, wenn man immer durch seine eigenen Augen sieht
                          7. Ich hab das schon mit == versucht, aber da kommt immer nur ein Fehler und bei = funktioniert es, so wie es funktionieren soll
                          8. Die sollte ich noch rausnehmen. Aber ich habe Text dazwischen, da hab ich eine gute Übersicht deswegen <table>.
                          9. Bei mir funktionierts
                          10. Siehe Teil, wo ich es zuweise
                          1. Erklärung ist verlinkt. Man muss nur noch raufklicken und lesen!
                          2. Ja, leider nur zur Hälfte.
                          3. Durchnummerierte Variablen müssen überhaupt nicht sein.
                          4. Dann hast du es falsch gelernt. Aber das ist noch lange keine Ausrede es nicht zu korrigieren.
                          5. Dann hast du ein Zeichencodierungsproblem, das du beheben solltest. Mit HTML-Entities verschleierst du nur das Problem, aber früher oder später tritt es wieder an die Oberfläche, und dann ist der Aufwand es zu beheben noch größer.
                          6. Wenn du Code in einem Forum postest, dann sollte er so formatiert sein, dass ihn jeder Programmierer vernünftig lesen kann, und nicht nur du. Es gibt standardisierte Regeln zur Code-Formatierung. Die hab nicht ich erfunden.
                          7. Nein, du glaubst, dass es funktioniert. Aber das tut es nicht.
                          8. Dass ist ein Irrglaube.
                          9. Es ist trotzdem falsch. Und nur weil es bei dir funktioniert, heißt es noch lange nicht, dass es woanders funktioniert. Und selbst wenn nur du es selber verwendest, sollte man trotzdem nicht unnötige Fehler machen. Denn schlechte Gewohnheiten legt man nur schwer ab.
                          10. Da steht nur woher es kommt, und nicht was die Variable enthält.

                          Kommentar

                          Lädt...
                          X