INSERT-Query über PHP

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

INSERT-Query über PHP

Postby Wastelander » 17. November 2006 22:22

Hallo!

Ich bin seit einiger Zeit dabei, meine ersten Gehversuche in PHP zu machen. Jetzt würde ich gerne einige Formulardaten per PHP in eine MySQL-Datenbank übertragen. Die Datenbank ist auch schon erstellt und die Tabelle, in der die Daten landen sollen steht auch schon. Aber irgendwie bekomme ich es einfach nicht hin, die Daten zu übertragen. Ich schätze, der Fehler ist irgendwo in meinem INSERT-Query.

Hier die Scripts:

dynasty.sql
Code: Select all
-- phpMyAdmin SQL Dump
-- version 2.9.0.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 17. November 2006 um 22:16
-- Server Version: 5.0.24
-- PHP-Version: 5.1.6
--
-- Datenbank: `dynasty`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `chars`
--

CREATE TABLE `chars` (
  `id` int(7) unsigned NOT NULL auto_increment,
  `name` char(30) collate latin1_general_ci NOT NULL,
  `str` int(3) unsigned NOT NULL,
  `per` int(3) unsigned NOT NULL,
  `end` int(3) unsigned NOT NULL,
  `cha` int(3) unsigned NOT NULL,
  `int` int(3) unsigned NOT NULL,
  `agi` int(3) unsigned NOT NULL,
  `luc` int(3) unsigned NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;


index.php
Code: Select all
<html>
  <head>
    <title>Kampf</title>
    <link rel='stylesheet' type='text/css' href='standard.css'>
    <script type='text/javascript'>
      function inc (v, x, m, e) {
        var b = parseInt(e.value);
        if(b > 0){
          var y = parseInt(v.value) + x;
        if(y <= m){
            v.value = y;
            e.value--;
          }
        }
        return $v.value;
     }
      function dec (v, x, m, e) {
          var y = parseInt(v.value) - x;
        if(y >= m){
            v.value = y;
            e.value++;
          }
        return v.value
      }
    </script>
  </head>
  <body bgcolor=666666>
    <form name='Kampf' action='ch_save.php' method='post'>
      <table>
        <tr>
          <th colspan=4><input type='text' name='char_name' value='Namenlos' size=30 class='Input'>
        <tr>
          <th>Stärke
          <th><input type='button' name='str_sub' value='-' class='sButton' onclick='dec(str, 1, 1, bonus)'>
          <th class='Output'><input type='text' name='str' value='5' size=3 readonly>
          <th><input type='button' name='str_add' value='+' class='sButton' onclick='inc(str, 1, 10, bonus)'>
        <tr>
          <th>Wahrnehmung
          <th><input type='button' name='per_sub' value='-' class='sButton' onclick='dec(per, 1, 1, bonus)'>
          <th class='Output'><input type='text' name='per' value='5' size=3 readonly>
          <th><input type='button' name='per_add' value='+' class='sButton' onclick='inc(per, 1, 10, bonus)'>
        <tr>
          <th>Ausdauer
          <th><input type='button' name='end_sub' value='-' class='sButton' onclick='dec(end, 1, 1, bonus)'>
          <th class='Output'><input type='text' name='end' value='5' size=3 readonly>
          <th><input type='button' name='end_add' value='+' class='sButton' onclick='inc(end, 1, 10, bonus)'>
        <tr>
          <th>Charisma
          <th><input type='button' name='cha_sub' value='-' class='sButton' onclick='dec(cha, 1, 1, bonus)'>
          <th class='Output'><input type='text' name='cha' value='5' size=3 readonly>
          <th><input type='button' name='cha_add' value='+' class='sButton' onclick='inc(cha, 1, 10, bonus)'>
        <tr>
          <th>Intelligenz
          <th><input type='button' name='int_sub' value='-' class='sButton' onclick='dec(int, 1, 1, bonus)'>
          <th class='Output'><input type='text' name='int' value='5' size=3 readonly>
          <th><input type='button' name='int_add' value='+' class='sButton' onclick='inc(int, 1, 10, bonus)'>
        <tr>
          <th>Beweglichkeit
          <th><input type='button' name='agi_sub' value='-' class='sButton' onclick='dec(agi, 1, 1, bonus)'>
          <th class='Output'><input type='text' name='agi' value='5' size=3 readonly>
          <th><input type='button' name='agi_add' value='+' class='sButton' onclick='inc(agi, 1, 10, bonus)'>
        <tr>
          <th>Glück
          <th><input type='button' name='luc_sub' value='-' class='sButton' onclick='dec(luc, 1, 1, bonus)'>
          <th class='Output'><input type='text' name='luc' value='5' size=3 readonly>
          <th><input type='button' name='luc_add' value='+' class='sButton' onclick='inc(luc, 1, 10, bonus)'>
        <tr>
          <th>Bonuspunkte
          <th colspan=4 class='Output'><input type='text' name='bonus' value='10' size=3 readonly>
        <tr>
          <th colspan=5><input type='submit' name='c1_submit' value='Senden!' class='lButton'>
      </table>
    </form>
  </body>
</html>


char_save.php
Code: Select all
<?php
  // $_POST-Daten übertragen
  $char_name = $_POST['char_name'];
  $strength = intval($_POST['str']);
  $perception = intval($_POST['per']);
  $endurance = intval($_POST['end']);
  $charisma = intval($_POST['cha']);
  $intelligence = intval($_POST['int']);
  $agility = intval($_POST['agi']);
  $luck = intval($_POST['luc']);
 
  // $_POST-Daten testen
  echo "
    $char_name<br>
    $strength<br>
    $perception<br>
    $endurance<br>
    $charisma<br>
    $intelligence<br>
    $agility<br>
    $luck<br>
  ";

  // Verbindung zum Datenbankserver
  $con = mysql_connect ("localhost", "root", "")
  or die ("Nix Verbindung: " .mysql_error());

  // Datenbank auswählen
  $db = mysql_select_db("dynasty")
  or die ('Datenbank nix da!');

  // MySQL-Query definieren
  $query = "
    INSERT INTO chars (
      name,
      str,
      per,
      end,
      cha,
      int,
      agi,
      luc
    )

    VALUES (
      '$char_name',
      '$strength',
      '$perception',
      '$endurance',
      '$charisma',
      '$intelligence',
      '$agility',
      '$luck'
    )
  ";

  // Query ausführen
  mysql_query ($query)
  or die('Query nix klappt!');

  // Verbindung trennen
  mysql_close ($con);
?>


Ich wäre wirklich froh, wenn mir jemand helfen könnte. Weiß außerdem noch jemand umfassende, leicht verständliche Tutorials zu dem Thema?

Danke im Voraus an alle, die sich die Zeit nehmen zu antworten.

LG
~Wasty
Wastelander
 
Posts: 5
Joined: 17. November 2006 01:08

Postby Wastelander » 17. November 2006 22:29

Hat sich erledigt! :oops:

Der Query muss natürlich wegen dem Zellennamen int wiefolgt heißen:

Code: Select all
$query = "
  INSERT INTO chars (
    `name`,
    `str`,
    `per`,
    `end`,
    `cha`,
    `int`,
    `agi`,
    `luc`
  )

  VALUES (
    '$char_name',
    '$strength',
    '$perception',
    '$endurance',
    '$charisma',
    '$intelligence',
    '$agility',
    '$luck'
  )
";


Sorry... :roll:
Wastelander
 
Posts: 5
Joined: 17. November 2006 01:08

Postby H.Klingel » 28. November 2006 17:09

Gibt doch nach der Ausführung der Query mal mysql_error() aus.

Noch ein Tipp: ich würde mit mysqli statt mit mysql arbeiten. Damit ist eine objekt-orientierte Programmierung möglich...

Viele Grüße,
Harald
H.Klingel
 
Posts: 31
Joined: 29. August 2005 09:07


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 2 guests