• 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:
Werbung:
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
 
Werbung:
@ 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"!
 
Werbung:
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
 
Werbung:
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