• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wieso funktioniert das INSERT INTO nicht ?

web673

Neues Mitglied
Hi,

ich hab ein kleines Problem (für euch) und ein großes für mich ^^....

ich bin seid ca 2 tagen auf der fehlerfindung.. (finde aber nichts...)

Das INSERT INTO funktioniert einfach nicht....

kann mir da bidde wer helfen ?

PHP:
$table = "galerie";

$katnr = $_GET['katnr'];

if (true) {
	$ergebnis = mysql_query(" SELECT * FROM galerie_kategorie WHERE katnr ='$katnr' LIMIT 1") OR die(mysql_error());
	$row = mysql_fetch_assoc($ergebnis);
	$kategoriename = $row['kategoriename'];
	$kategorie_beschreibung = $row['kategorie_beschreibung'];
}

if (isset($_POST['submit'])) {
    $name = $_POST["name"];
    $eintragdatum = $_POST["eintragdatum"];
	$beschreibung = $_POST["beschreibung"];
	$creator = $_POST["creator"];
	$poster = $_POST["poster"];
	$bildurl = $_POST["bildurl"];
	$show = $_POST["show"];
	$katnr = $_POST["katnr"];

	
	$result = mysql_query("INSERT INTO $table ('id','name', 'eintragdatum', 'beschreibung', 'creator', 'poster', 'bildurl', 'show', 'kategorie') VALUES ('','$name', '$eintragdatum', '$beschreibung', '$creator', '$poster', '$bildurl', '$show', '$katnr')");

		
	if ($result == true) {
		echo   '<h2>Bild hinzuf&uuml;gen</h2><br>
				<p><br>Das Bild mit dem Titel <br><b>"'.$name.'"</b><br><br>wurde erfolgreich in das Album'.$kategoriename.' hinzugef&uuml;gt!</p>';
	}
} else {
	echo   '<h2>Bild hinzuf&uuml;gen</h2><br>
			<p>Bild in das Album <b><u>'.$kategoriename.'</u></b> hinzugef&uuml;gen!<br>
			</p><br>
			<form action="add.php?admin=galerie_album_bild&amp;katnr='.$katnr.'" method="post">
			
<table width="320" border="0" cellspacing="0" cellpadding="0" style="text-align:center;">
  <tr>
    <td width="140">Bildtitel:</td>
    <td width="180"><input class="boxen" name="name" type="text" size="25" maxlength="40"></td>
  </tr>
    <tr>
    <td width="140">Beschreibung:</td>
    <td width="180"><input class="boxen" name="beschreibung" type="text" size="25" maxlength="40"></td>
  </tr>
  <tr>
    <td width="140">Eingetragen am:</td>
    <td width="180"><input class="boxen" name="eintragdatum" type="text" size="25" maxlength="40"></td>
  </tr>
  <tr>
    <td width="140">Künstler:</td>
    <td width="180"><input class="boxen" name="creator" type="text" size="25" maxlength="40"></td>
  </tr>
  <tr>
    <td width="140">Eingetragen von:</td>
    <td width="180"><input class="boxen" name="poster" type="text" size="25" maxlength="40"></td>
  </tr>';
  
   echo '<tr>
		  <td class="right">Dateiname des Bildes:</td>
		  <td class="left">';
		 
$ext = array('jpg', 'png');
  echo '<select name="bildurl" id="image" size="1"><option></option>\n';
  $handle=opendir('../images/upload/galerie/'.$kategoriename.'/');
	  while ($file = readdir ($handle))
   {
    if ($file != "." && $file != "..")
      {
	   if(in_array(strtolower(substr(strrchr($file, '.'),1)),$ext)) { 	
          echo "<option>$file</option>";
        }
	  }
    }
	
  closedir($handle);
  echo '</select>';
  echo '</td></tr> '; 
  
echo '<tr>
    <td width="140">Ver&ouml;ffentlichen:</td>
    <td width="180">ja <input type="radio" name="show" value="on"> nein <input type="radio" name="show" value="off"></td>
  </tr>';
echo '</table>
			<br><p><input name="submit" type="submit" value="hinzuf&uuml;gen"></p>
			</form>';
}

if ($result == true) {
echo '<br><img src="../images/trennlinie.png" width="394" height="2" alt="Linie" /><br><a class="admin_link" href="view.php?admin=galerie_album&katnr='.$katnr.'">zur&uuml;ck</a>';
}
else {
echo '<br><img src="../images/trennlinie.png" width="394" height="2" alt="Linie" /><br><a class="admin_link" href="view.php?admin=galerie_album&katnr='.$katnr.'">zur&uuml;ck</a>';
}

Währe seeeeehhhhrr dankbar über eine kleine Hilfe..

Grüße Joshua
 
Zuletzt bearbeitet von einem Moderator:
versuchs mal damit:

PHP:
<?php
$result = mysql_query("INSERT INTO ".$table." VALUES ('','".$name."', '".$eintragdatum."', '".$beschreibung."', '".$creator."', '".$poster."', '".$bildurl."', '".$show."', '".$katnr."')");
?>

Nils aka XraYSoLo
 
Wahrscheinlich geht die Lösung von XraySolo, dein Problem liegt aber eingenlich woanders.

Du schreibst:

PHP:
$result = mysql_query("INSERT INTO $table ('id','name', 'eintragdatum', 'beschreibung', 'creator', 'poster', 'bildurl', 'show', 'kategorie') VALUES ('','$name', '$eintragdatum', '$beschreibung', '$creator', '$poster', '$bildurl', '$show', '$katnr')");
Es müsste aber so aussehen:


PHP:
   <?php
$result = mysql_query("INSERT INTO $table (id,name, eintragdatum, beschreibung, creator, poster, bildurl, show, kategorie) VALUES ('','$name', '$eintragdatum', '$beschreibung', '$creator', '$poster', '$bildurl', '$show', '$katnr')");

Du darfst die Spaltennamen nicht in Klammern setzen, nur die Values! Dann sollte es auch gehen.

Mfg Mo3b
 
@ Mo3b so hatte ich es vorher ^^... ging aber nicht..

@ XraYSoLo jop danke es funktioniert.... endlcih kann ich in ruhe weitermachen ^^

Grüße
 
Allerdings ist die Lösung von XraYSoLo nicht wirklich schön. Wenn du jetzt etwas an deiner Tabellenstruktur veränderst, dann hast du "den Salat"!
 
Um das ganz Allgemein zu machen kombiniere ich meine lösung mal mit XraySolos:

PHP:
$result = mysql_query("INSERT INTO ".$table." (id,name, eintragdatum, beschreibung, creator, poster, bildurl, show, kategorie) VALUES ('','".$name."', '".$eintragdatum."', '".$beschreibung."', '".$creator."', '".$poster."', '".$bildurl."', '".$show."', '".$katnr."')");

Mfg Mo3b
 
Jau,

und wenn wir schon dabei sind, das ganze nochmal in übersichtlich:

PHP:
$sql = "INSERT INTO
               " . $table . "
        SET
               `id`                = '',
               `name`              = '$name',
               `eintragdatum`      = '$eintragdatum',
               `beschreibung`      = '$beschreibung',
               `creator`           = '$creator',
               `poster`            = '$poster',
               `bildurl`           = '$bildurl',
               `show`              = '$show',
               `kategorie`         = '$katnr'
";
$result = mysql_query($sql) OR die (mysql_error());
 
Wunderschön :razz:

Wofür braucht man eigentlich die Backticks? Wenn man in phpmyadmin einen datensatz einfügt werden die ja auch immer verwendet. Es geht ja aber auch ohne.

Wofür also?

Mfg Mo3b
 
Hi,

die Backticks brauchst du zwingend, wenn du reservierte Wörter wie date, timestamp etc. als Spalten- oder Tabellennamen verwenden willst, da diese ja auch Feldtypen sind. Tust du das nicht, bekommst du eine Fehlermeldung!
 
Zurück
Oben