Formular-Upload in Datenbank

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

  • Formular-Upload in Datenbank

    Hi,
    ich versuche vergeblich Daten über ein Formular in meine MySql Datenbank einzutragen. Ich kann die Daten einfach per phpmyadmin eintragen und ich kann sie auch per php auslesen und anzeigen lassen, aber das mit dem Upload in die Datenbank über das Formular geht nicht so ganz. Bin noch totaler Newbie und hab mich mal selber an nem script versucht. Mir ist klar das es so nicht klappen kann, aber ich weiß nicht was ich noch brauche oder ändern muss. Hier mal meine ersten gehversuche:
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    include(
    "config.inc.php");
    $conn=mysql_connect($host,$user,$pw) or die ("Keine Verbindung");
    @
    mysql_select_db("$db") or die ("Datenbank konnte nicht gefunden werden.");

    $name="";
    $text="";
    $grafik="";
    $link="";
    ?>

    <form name="form1" method="post" action="<?php echo $PHP_SELF?>">
      <br>
      <br>
      <table width="30%" border="0" align="center" cellpadding="5" cellspacing="0">
        <tr> 
          <td>Name</td>
          <td><input name="name" type="text" value="<?php echo ($name['name']); ?>" maxlength="150"></td>
        </tr>
        <tr> 
          <td>Text</td>
          <td><input name="text" type="text" value="<?php echo ($text['text']); ?>" maxlength="150"></td>
        </tr>
        <tr> 
          <td>Grafik</td>
          <td><input name="grafik" type="text" value="<?php echo ($grafik['grafik']); ?>" maxlength="150"></td>
        </tr>
        <tr>
          <td>Link</td>
          <td><input name="link" type="text" value="<?php echo ($link['link']); ?>" maxlength="150"></td>
        </tr>
        <tr> 
          <td>&nbsp;</td>
          <td><input type="submit" name="Submit" value="Abschicken"></td>
        </tr>
      </table>
    </form>

    <?php
    $dbanfrage
    ="INSERT INTO test (name,text,grafik,link) VALUES ('$name','$text','$grafik','$link')";

    if (
    mysql_select_db ($db$dbanfrage$conn)) {
    print (
    "Datenbankeintrag erfolgreich.");
    } else {
    print (
    "Eintragung nicht erfolgreich.");
    }
    mysql_close ($conn);

    ?>
    Hoffe das mir jemand weiterhelfen kann.
    Danke
    Gruß
    André

    PS:
    Ach ja im Moment kommt diese Fehlermeldung:

    Warning: Wrong parameter count for mysql_select_db() in /www/htdocs/v034996/test2/eingabe.php on line 51

    das ist line 51:
    if (mysql_select_db ($db, $dbanfrage, $conn))

    und das steht jeweils in den eingabefeldern:
    <br /><b>Notice</b>: Uninitialized string offset: 0 in <b>/www/htdocs/v034996/test2/eingabe.php</b> on line <b>27</b><br />

  • #2
    MAch mal statt:

    if (mysql_select_db ($db, $dbanfrage, $conn)) {
    print ("Datenbankeintrag erfolgreich.");
    } else {
    print ("Eintragung nicht erfolgreich.");
    }
    mysql_close ($conn);

    das hier:
    PHP-Code:
    mysql_query($dbanfrage,$conn) or die (mysql_error());
    mysql_close ($conn); 
    und lies mal über die Mysql Funktionen
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Re: Formular-Upload in Datenbank

      Du versuchst du Variablen im Formular auszugeben, die gar nicht existieren, und zum Ausführen einer MySQL-Abfrage gibts mysql_query. Und du solltest prüfen, ob das Formular überhaupt abgeschickt wurde, bevor du die Daten in die Datenbank einträgst. :-)
      Mach es ungefähr so:

      PHP-Code:
      <?php
      error_reporting
      (E_ALL);

      if(isset(
      $_REQUEST['Submit']))
      {
          include(
      "config.inc.php");
          
      $conn mysql_connect($host,$user,$pw) or die ("Keine Verbindung");
          @
      mysql_select_db("$db") or die ("Datenbank konnte nicht gefunden werden.");
          
      $query mysql_query("INSERT INTO test (name,text,grafik,link) VALUES ('".$_POST['name']."','".$_POST['text']."','".$_POST['grafik']."','".$_POST['link']."')");
          
      mysql_close($conn)
          print (
      $query == true) ? "Datenbankeintrag erfolgreich." "Eintragung nicht erfolgreich: ".mysql_error();
      }
      ?>

      <form name="form1" method="post" action="<?php echo $PHP_SELF?>">
        <br>
        <br>
        <table width="30%" border="0" align="center" cellpadding="5" cellspacing="0">
          <tr>
            <td>Name</td>
            <td><input name="name" type="text" value="<?php echo (isset($_POST['name'])) ? $_POST['name'] : ''?>" maxlength="150"></td>
          </tr>
          <tr>
            <td>Text</td>
            <td><input name="text" type="text" value="<?php echo (isset($_POST['name'])) ? $_POST['text'] : ''?>" maxlength="150"></td>
          </tr>
          <tr>
            <td>Grafik</td>
            <td><input name="grafik" type="text" value="<?php echo (isset($_POST['grafik'])) ? $_POST['grafik'] : ''?>" maxlength="150"></td>
          </tr>
          <tr>
            <td>Link</td>
            <td><input name="link" type="text" value="<?php echo (isset($_POST['link'])) ? $_POST['link'] : ''?>" maxlength="150"></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="Submit" value="Abschicken"></td>
          </tr>
        </table>
      </form>
      Zuletzt geändert von blackhole; 24.08.2003, 11:29.

      Kommentar


      • #4
        Hallo,

        danke für die Antworten! Es funktioniert. Vielen Dank. Werde mir jetzt mal die einzelnen Funktionen was genauer angucken, dadurch werd ich's dann hoffentlich besser lernen. Das mit mich einen großen Schritt nach vorne gebracht. Nochmal vielen Dank!!!

        Gruß
        André

        Kommentar


        • #5
          So das hat ja soweit schon ganz gut geklappt und ich denke ich habs auch verstanden. Jetzt habe ich aber noch vor mit Hilfe eines Sprungmenüs auszuwählen in welche Tabelle der DB die Daten gespeichert werden. Gehen wir mal davon aus, dass alle Tabellen, die gleichen spalten bezeichnungen haben, nur mit unterschiedlichem inhalt.

          Folgende Zeile hab ich dem Script jetzt noch zugefügt:
          (Ist zwar kein php, kann man aber so bestimmt besser unterscheiden.)
          PHP-Code:
          <tr>
                <
          td>Kategorie:</td>
                <
          td><select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
                    <
          option value="wenn die DB-Tabelle ausgewählt wird, lade es dort hin" selected>Bildschirmschoner Film</option>
                    <
          option value="wenn die DB-Tabelle ausgewählt wird, lade es dort hin">Bildschirmschoner Serien</option>
                    <
          option value="wenn die DB-Tabelle ausgewählt wird, lade es dort hin">Bildschirmschoner Actors</option>
                      </
          select></td>
              </
          tr
          vor allem wie muss ich diese Zeile verändern:

          PHP-Code:
          $query mysql_query("INSERT INTO test (name,text,grafik,link) VALUES ('".$_POST['name']."','".$_POST['text']."','".$_POST['grafik']."','".$_POST['link']."')"); 
          denke das ich die Tabelle test vielleicht durch ne Variable ersetzen muss!? Dann weiß ich aber wieder nicht wie ich die $tabelle definieren soll...
          Zerbrech mir hier den Kopf, komm aber nicht weiter. Bitte um Hilfe. Werd jetzt mal schlafen. Ist schon was spät.
          Hoffe noch einmal auf eure Hilfe!!!

          Kommentar

          Lädt...
          X