PHP ERROR beim schreiben in DB

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

  • PHP ERROR beim schreiben in DB

    Hallo.

    Ich habe ein Problem, beim schreib in meine MySQL DB.
    Ich habe schon in der Foren Suche (auch in anderen Boards)
    gesucht, bin teilweile auch fündig geworden, aber irgendwie will
    nix so richtig klappen.

    Hier mal die Seite zum Anfang:

    <html><style type="text/css">
    <!--
    body,td,th {
    color: #FFFFFF;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: x-small;
    }
    body {
    background-color: #000000;
    }
    a:link {
    color: #FFFFFF;
    font-weight: bold;
    text-decoration: none;
    }
    a:visited {
    text-decoration: none;
    color: #FFFFFF;
    }
    a:hover {
    text-decoration: none;
    color: #00FF00;
    }
    a:active {
    text-decoration: none;
    color: #00FF00;
    }
    -->
    </style>
    <body>
    <br>
    <form id="neuer_user" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
    <table width="400" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td align="left" valign="middle">Kategorie:</td>
    <td align="left" valign="middle"><p>
    <input name="catid" type="text" id="catid" size="1" maxlength="2" />
    bitte gib die Nummer der Kategorie ein, in welche du etwas hinzuf&uuml;gen m&ouml;chtest: Moviez (11), Serien (10), Gamez (12), Music (2), Appz (3), eBookz (9) </p></td>
    </tr>
    <tr>
    <td width="130" align="left" valign="middle">Titel:</td>
    <td width="270" align="left" valign="middle"><input name="topic" type="text" id="topic" /></td>
    </tr>
    <tr>
    <td align="left" valign="middle">Passwort:</td>
    <td align="left" valign="middle"><input name="subtopic" type="text" id="subtopic" /></td>
    </tr>
    <tr>
    <td align="left" valign="middle">Link:</td>
    <td align="left" valign="middle"><input name="link1" type="text" id="link1" /></td>
    </tr>
    <tr>
    <td align="left" valign="middle">Beschreibung:</td>
    <td align="left" valign="middle"><textarea name="text" cols="30" rows="5" id="text"></textarea></td>
    </tr>
    <tr>
    <td align="left" valign="middle">Dein Nickname: </td>
    <td align="left" valign="middle"><input name="link2" type="text" id="link2" /></td>
    </tr>
    <tr>
    <td align="left" valign="middle">Deine eMail: </td>
    <td align="left" valign="middle"><input name="link3" type="text" id="link3" /></td>
    </tr>
    </table>
    <br>

    <input type="submit" name="Submit" value="Registrieren" />
    </form>

    <?php

    if($_POST['catid']!="" && $_POST['topic']!="" && $_POST['subtopic']!=""
    && $_POST['link1']!="" && $_POST['link2']!="" && $_POST['link3']!="") {

    $catid = $_POST["catid"];
    $topic = $_POST["topic"];
    $subtopic = $_POST["subtopic"];
    $link1 = $_POST["link1"];
    $text = $_POST["text"];
    $link2 = $_POST["link2"];
    $link3 = $_POST["link3"];


    require("connect.php");




    mysql_query("INSERT INTO `tabellenname` (`catid`, `topic`, `subtopic`, `link1`, `text`, `link2`, `link3`) VALUES ('$catid', '$topic', '$subtopic', '$link1', '$text', '$link2', '$link3')") or die(ERROR);
    echo "<b><font color='#00FF00'>Dein Download wurde erfolgreich eingetragen <br>und ist nun auf der Seite verfügbar!</font></b>";

    }


    ?>

    </body></html>

    Meine Datenbank sieht so aus... jedenfalls die Reihenfolge der Spalten:

    Textos completos - id - catid - userid - ext_user - ext_mail - topic - subtopic - text - link1 - link2 - link3 - time - pubtime - endtime - pin - allowcoms - allowvote - hot - counter

    Untergeordnet sind dann logischerweise die Zeilen.
    Wenn ich nun die PHP File mit meinem Browser aufrufe,
    passiert noch garnix, d.h. es läuft alles gut.
    Wenn ich dann alles ausgefüllt habe und auf Bestätigen klicke, kommt ERROR. Höchstwahrscheinlich aus dieser Zeile:

    mysql_query("INSERT INTO `tabellenname` (`catid`, `topic`, `subtopic`, `link1`, `text`, `link2`, `link3`) VALUES ('$catid', '$topic', '$subtopic', '$link1', '$text', '$link2', '$link3')") or die(ERROR);

    Ich weiss aber leider nicht warum und wie ich das Problem beheben kann. Ich hoffe sehr mir kann da jemand weiterhelfen.

    Danke und mfg, Trashkiller!

    PS: die connect.php zum verbinden zur db stimmt auf jeden fall!!!
    Zuletzt geändert von Trashkiller; 15.12.2006, 01:18.

  • #2
    Code umbrechen. Ich mag nicht nach rechts scrollen.
    Vllt noch das probieren
    PHP-Code:
    mysql_query('...') OR die(mysql_error()); 
    MySql wird dir ziemlich genau sagen, was ihm nicht passt.
    Und mach die auch mal über sql-injections bei der SuMa deiner Wahl schlau.

    Gruss

    tobi

    p.s. du weisst schon dass nach html normalerweise head kommt ?
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      so habe mal OR die(mysql_error()); reingehaun

      und da sagt er: Unknown column 'catid' in 'field list'

      aba diese spalte existiert 100pro in der db?
      catid int(11) No 1
      so stehts in der datenbank

      oder heisst das was anderes o_O

      PS: ähm es sind ja zwischen den einzelnen im script angegebenen spalten noch weitere spalten vorhanden die allerdings in diesem fall nicht gebraucht werden. die muss ich doch net mit auflisten wenn ich es so mache oder? letztendlich definiere ich doch zuerst die spalten die editiert werden und dannach definiere ich was wie editiert werden soll oder?
      Zuletzt geändert von Trashkiller; 15.12.2006, 01:20.

      Kommentar


      • #4
        Schau mal in der Tabelle nach, ob sich im Spaltennamen catid möglicherweise ein Leerzeichen ans Ende geschmuggelt hat (catid_, _ steht für das Leerzeichen), das könnte dein Problem auslösen.
        Nieder mit der Camel Case-Konvention

        Kommentar


        • #5
          ne leider net
          steht nur cadid
          ohne " " oder "_"

          Kommentar


          • #6
            Original geschrieben von Trashkiller
            ne leider net
            steht nur cadid
            ohne " " oder "_"
            Ist das ein Schreibfehler oder steht tatsächlich cadid in der Tabelle?
            Nieder mit der Camel Case-Konvention

            Kommentar


            • #7
              Was steht denn in der Connect.php und ist `tabellenname` geändert oder gewollt?
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar


              • #8
                in der connect.php steht folgendes:

                <?php

                $mysqlhost="xxx";
                $mysqluser="xxx";
                $mysqlpwd="xxx";
                $mysqldb="xxx";

                $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Es konnte keine Verbindung zur Datenbank hergestellt werden.");

                mysql_select_db($mysqldb, $connection) or die("Datenbank wurde nicht gefunden.");

                ?>

                `tabellenname` is geändert ... also in der datei von mir steht logischerweise der richtige name der tabelle

                achso und die spalt heisst "catid"
                das steht euch überall in der php so drin
                war also ein tippfehler meinerseits

                Kommentar


                • #9
                  Poste doch mal die Ausgabe von

                  PHP-Code:
                  echo "<pre>";
                  $res mysql_query("describe `tabellenname`") or die(mysql_error());
                  while (
                  $row=mysql_fetch_assoc($res))
                  print_r($row);
                  echo 
                  "</pre>"
                  gruss Chris

                  [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                  Kommentar


                  • #10
                    wo soll ich das hinschreiben?

                    wenn ichs hierhin schreibe:

                    mysql_query("INSERT INTO `xxxxx` (`catid`, `topic`, `subtopic`, `link1`, `text`, `link2`, `link3`) VALUES ('$catid', '$topic', '$subtopic', '$link1', '$text', '$link2', '$link3')") or die(mysql_error());
                    echo "<b><font color='#00FF00'>Dein Download wurde erfolgreich eingetragen <br>und ist nun auf der Seite verfügbar!</font></b>";


                    echo "<pre>";
                    $res = mysql_query("describe `xxxxxx`") or die(mysql_error());
                    while ($row=mysql_fetch_assoc($res))
                    print_r($row);
                    echo "</pre>";

                    }


                    ?>

                    kommt der selber fehler wie immer. (Unknown column 'catid' in 'field list')
                    wenn ichs wo anders hinschreibe meckert er ständig rum
                    das keine mysql verbindung hergestellt werden konnte
                    in diesen fällen habe ichs aba meisten vor den require befehl gesetzt

                    Kommentar


                    • #11
                      vergesst es
                      ich noobi noob n4pi nub habe die falsche tabelle angegeben ich depp -.-

                      thx und mfg

                      Kommentar


                      • #12
                        Das wollte ich mit meinem Code ausschliessen.
                        gruss Chris

                        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                        Kommentar

                        Lädt...
                        X