MySQL Abfrage mit Dropdownmenü aus Php Skript Update Befehl

annika87

Grünschnabel
Hallo Leute,
ich habe folgendes Problem:
Ich möchte auf meiner Seite per Dropdown (Produktauswahl)
das mit einer Mysql Datenbank verlinkt ist
und einem Feld bei dem man die Anzahl eintippenkann Datenbank Einträge updaten,
leider macht es für Alle Eintäge das selbe Update egal welches Produkt ausgewähl wurde.
Stimmt etwas mit meinem Updatebefhl nicht?
Ich bin wirklich ratlos :-(
Liebe Grüße
Code:
<?php 
 
  $server = "localhost";
  $username = "***";
  $passwd = "***";
  $db = "***";
  
  mysql_connect ($server, $username, $passwd);
  mysql_select_db ($db);
  
  
  $conn = mysql_connect($server, $username, $passwd);
  mysql_select_db($db);
  ?>
  
  <?php
  if ($conn) {
    $feedback = "Verbindung zum Datenbankserver wurde hergestellt.";
    if (mysql_select_db("wi15")){
      $feedback2 = "Verbindung zur Datenbank wurde hergestellt.";
    }
  }
  ?>

                 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href="vorlage.css" />
		<title>Titel</title>
	</head>
	<body>
		<div id="wrapper">
			<div id="header">
				SAB - Warenwirtschaft
			</div>
			<div id='ueberschrift'>
				<h1>Waren hinzuf&uumlgen</h1>
			</div>
			<div id="menu_left">
				       	<?php
include "navi.php";
?>
			</div>		
			<div id="content">
  <head>
       <title> Waren hinzuf&uumlgen</title>
  </head>
  <body>
         <form name="Waren hinzuf&uumlgen" method="post" action="inward.php">
    
       <p align="center"> <font> Produktname: </font> 
      <select name=Produktname size= "1">
      //Auswahl Dropdown & Anzahl
       <?php 
       $dropdown = mysql_query("SELECT ID, Name FROM waren");
                       while ($row = mysql_fetch_array ($dropdown)){
                       echo "<option value=$row[0]>".$row[1] ."</option>"; } 
                                          
                                            ?> 
                                            <br>
                                            <br>
                                            <hr>
                                           </p>
                    
          
        <p align="center"> <font> Anzahl: </font> <input name="Bestand" type="integer(+)" Size="10"> </p>
        <p align="center"> <input type="submit" name="eintragen" value ="Produkt hinzufugen"> </p>
         </form> </select>
 <?php
 if(isset($_POST['eintragen'])){
      $name = $_POST['Produktname'];
      $bestand = $_POST ['Bestand'];
       $sql = "UPDATE waren SET Bestand = Bestand+ $bestand WHERE( '$name','$bestand' )"; 
       
 if (mysql_query($sql)) {
            echo "Eintrag erfolgreich.";
}
else {
            echo "Eintrag fehlgeschlagen." .mysql_error();
            echo "<br>$sql";
            }
            }
  ?>
			</div>
			<div class="clear">
			</div>
			<div id="footer">
				Annika
			</div>
    </div>
	</body>
  </html>
 
Du verwendest eine seltsame Syntax beim UPDATE. Die Syntax lautet

Code:
UPDATE tabellenname SET spaltenname = spaltenname + 1 WHERE spaltenname2 = 'wert2' AND spaltenname = 'wert';

Folglich sollte das SQL vermutlich ungefähr so lauten:

PHP:
      $sql = "UPDATE waren SET Bestand = Bestand+ $bestand WHERE Name = '$name' AND Bestand = '$bestand'";

Und bitte die Variablen aus dem POST-Formular escapen:

PHP:
      $name = mysql_real_escape_string($_POST['Produktname']);
      $bestand = mysql_real_escape_string($_POST ['Bestand']);

Und zum Schluss noch ein gut gemeinter Rat: Verwende nicht mehr die mysql_xxxx-Funktionen. Greife statt dessen auf mysqli_xxxx oder noch besser PDO zurück.
 
Hallo :)
das habe ich gerade probiert aber leider macht es kein Update :-(
liegt das Problem vielleicht schon dabei dass ich oben ein Dropdownmenü habe?
 
Variablen in einfachen Anführungszeichen werden von der Engine nicht interpretiert:
http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.single

Benutz doch nächstes Mal die [PHP] - Tags. Die meisten Monitore können heutzutage Farben darstellen. Das macht es uns einfacher den Code zu lesen. Seis dir gedankt ;) Und warum zum Teufel gibst du uns deine Original-Datebankzugangsdaten? Selbst wenns nur lokal ist, würd ich da Dummy-Parameter angeben.

So long,
dä Igäl
 

Neue Beiträge

Zurück