Jump to content
xt:Commerce Community Forum

Eingabeformular Probleme


thyphoon

Recommended Posts

Hallo,

habe gerade angefangen PHP zu lernen und habe mir hierf?r das Buch "Einstieg in PHP 5" gekauft. Kann ich nur jedem Empfehlen der mit PHP anfangen will.

Naja jetzt kommt mein Problem. Ich habe angefangen mir ein Formular zu erstellen, mit dem es leichter ist die Preise und den Status der Produkte im XTC Shop zu ?berarbeiten.

Da ich erst mal ausprobieren wollte ob es funktioniert, um nicht die SQL Datenbank von XTC zu zerlegen, habe ich das ganze an einer einfachen Datenbank mit Adressdaten ausprobiert. Hier funktioniert das Ganze. Aber wenn ich das Ganze jetzt auf die XTC Datenbank umschreibe und anwende werden die ?nderungen nicht gespeicht.

Noch eins zur Funktion man soll die M?glichkeit haben erst die ?nderungen zu machen und dann am schluss alles auf einmal zu speichern und nicht jeden Artikel einzeln wie im XTC Shop (Dies ist n?mlich sehr l??tig, wenn man viele Artikel auf einmal ?ndern muss).

Der PHP Code sieht wie folg aus.


<?php

  // Verbindung

  $host = "localhost";

  $user = "admin";

  $pass = "";


  mysql_connect($host,$user,$pass);

  mysql_select_db("shop");


  /* Datens?tze ?ndern */


  $res = mysql_query("select * from products");


  while ($dsatz = mysql_fetch_assoc($res))

  {

   $id = $dsatz["products_id"];

  $sqlab = "update products set products_price = '$pr[$id]', ";

   $sqlab .= " products_status = '$st[$id]',";

   $sqlab .= " where products_id = $id";

   mysql_query($sqlab);

  }


  /* Formular-Beginn */

  echo "<form action='xtc_update.php' method='post'>";


  /* Tabellen-Beginn */

  echo "<table>";

  echo "<tr><td>Produkt ID</td><td>Artnr.</td>";

  echo "<td>Preis</td><td>Status</td></tr>";


  /* Anzeigen */

  $res = mysql_query("select * from products order by products_model asc");


  /* Alle vorhandenen Datens?tze */

  while ($dsatz = mysql_fetch_assoc($res))

  {

   $id = $dsatz["products_id"];

   echo "<tr>";

  echo "<td>$id</td>";

  echo "<td>". $dsatz["products_model"] . "</td>";

   echo "<td><input name='pr[$id]' value='"

     . $dsatz["products_price"] . "' size='10'></td>";

   echo "<td><input name='st[$id]' value='"

     . $dsatz["products_status"] . "' size='10'></td>";

   echo "</tr>";

  }

  echo "<tr>";

  echo "<td><input type='submit' value='Speichern'></td>";

  echo "<td><input type='reset'></td>";

  echo "</tr>";

  echo "</table></form>";

?>

An was kann das Ganze liegen, dass die Daten nicht gespeichert werden? Oder hat jemand eine andere L?sung?

Vielen Dank im Voraus f?r eure Hilfe.

Gruss

thyphoon

Link to comment
Share on other sites

und ich w?rde dir

das


while ($dsatz = mysql_fetch_assoc($res))

 {

   $id = $dsatz["products_id"];

   $sqlab = "update products set products_price = '$pr[$id]', ";

   $sqlab .= " products_status = '$st[$id]',";

   $sqlab .= " where products_id = $id";

   mysql_query($sqlab);

 }

nur dann ausf?hren, wenn du auch die daten vom formular abgeschickt hast, also ung. so:

if($_REAQUEST["Speichern"])

 while ($dsatz = mysql_fetch_assoc($res))

 {

   $id = $dsatz["products_id"];

   $sqlab = "update products set products_price = '$pr[$id]', ";

   $sqlab .= " products_status = '$st[$id]',";

   $sqlab .= " where products_id = $id";

   mysql_query($sqlab);

 }


Link to comment
Share on other sites

Hallo,

danke f?r die schnelle Antwort.

Habe es mal so ?bernommen aber das eigentliche Problem hat ich immer noch.

Kann es vieleicht mit der Datenbank zusammen h?ngen, dass man vieleicht bei der XTC Datenbank das nicht so einfach ?ber externen Zugriff ?ndern kann?

Hab n?mlich auch schon mehrere Wege probiert.

Leider kenn ich mich aber nicht ganz so gut mit Datenbankstruktur von XTC aus.

Aber wenn jemand eine L?sung hat w?re ich sehr dankbar.

Gruss

thyphoon

Link to comment
Share on other sites

Hallo,

ich hab den Fehler selbst gefunden.

Und zwar hab ich in der Variable $sqlab ein Komma zu viel gemacht.

Die funktionsf?hige Datei sieht wie folgt aus.


<?php

  // Verbindung

  $host = "localhost";

  $user = "";

  $pass = "";


  mysql_connect($host,$user,$pass);

  mysql_select_db("shop");


  /* Datens?tze ?ndern */


  $res = mysql_query("select * from products order by products_model asc");


  while ($dsatz = mysql_fetch_assoc($res))

  {

   $id = $dsatz["products_id"];

  $sqlab = "update products set products_price = $pr[$id], ";

   $sqlab .= " products_status = $st[$id]";

   $sqlab .= " where products_id = $id";

   mysql_query($sqlab);

  }


  /* Formular-Beginn */

  echo "<form action='xtc_update.php' method='post'>";


  /* Tabellen-Beginn */

  echo "<table>";

  echo "<tr><td>Produkt ID</td><td>Artnr.</td>";

  echo "<td>Preis</td><td>Status</td></tr>";


  /* Anzeigen */

  $res = mysql_query("select * from products order by products_model asc");


  /* Alle vorhandenen Datens?tze */

  while ($dsatz = mysql_fetch_assoc($res))

  {

   $id = $dsatz["products_id"];

   echo "<tr>";

  echo "<td>$id</td>";

  echo "<td>". $dsatz["products_model"] . "</td>";

   echo "<td><input name='pr[$id]' value='"

     . $dsatz["products_price"] . "' size='10'></td>";

   echo "<td><input name='st[$id]' value='"

     . $dsatz["products_status"] . "' size='10'></td>";

   echo "</tr>";

  }

  echo "<tr>";

  echo "<td><input type='submit' value='Speichern'></td>";

  echo "<td><input type='reset'></td>";

  echo "</tr>";

  echo "</table></form>";

?>

Ich hofe irgendjemand kann es gebrauchen.

Man kann damit nat?rlich alle anderen Daten auch pflegen. Bitte nicht vergessen die Zugangsdaten f?r die mysql Datenbank zu ?ndern oder ein "include" Verweis ein zu bauen.

Gruss

thyphoon

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...