php.de

ZurĂŒck   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.07.2009, 08:09  
Neuer Benutzer
 
Registriert seit: 24.07.2009
BeitrÀge: 11
PHP-Kenntnisse:
AnfÀnger
markus_munich befindet sich auf einem aufstrebenden Ast
Standard Wert in Spalte dekrementieren durch Button Click

Hallo liebe Gemeinde,

ich schreibe gerade ein Skript fĂŒr ein Warenlager. Hierzu habe ich in MySQL eine Tabelle angelegt, die mir Artikel und die verfĂŒgbare Restzahl anzeigt. Ich möchte gerne bei Ausgeben der Tabelle, neben jedem Datensatz einen Button haben, der bei Click die Restzahl um 1 dekrementiert.
Meine bisherigen Ergebnisse sind:
  • Ausgabe der Tabelle mit Button an jeden Datensatz
  • Skript fĂŒr Dekrementieren erstellt
Leider schaffe ich es nicht, den Button mit dem Skript zu verbinden. Was ich schaffe, ist ein Formular unterhalb der Tabelle, mit dem man durch Eintragen der ID (ich habe es immer zaehler genannt) den Wert dekrementieren kann.

Bitte helft mir, auch die Buttons an das Dekrementierskript anzuhÀngen!

Viele GrĂŒĂŸe
Markus

Skript fĂŒr Ausgabe mit Buttons und Formular unterhalb der Tabelle:
PHP-Code:
<?php

echo "<h1><center>Warenlagerbestandsanzeige</center></h1>";
# Verbindung herstellen zum Server
$connect mysql_connect("localhost","lager_mms","lager");
# Verbindung zur Datenbank herstellen
mysql_select_db("warenlager_mms");
# Tabelle abfragen
$abfrage "SELECT * FROM warenlager";
# Ergebnis der Abfrage speichern
$ergebnis mysql_query($abfrage);
# Schleife fĂŒr die Abfrage aller Spalten
if($ergebnis)
{
# Anzahl der DatensĂ€tze
$number mysql_num_rows($ergebnis);
echo 
"<p>Es sind <strong>$number DatensĂ€tze</strong> aus der MySQL - Datenbank warenlager_mms gelesen worden</p>";

echo 
"<table border=1><tr>";
$reihe mysql_fetch_array($ergebnisMYSQL_ASSOC);
while (
$feld key($reihe))
{
echo 
'<th>'ucwords($feld). '</th>';
next($reihe);
}
echo 
"</tr><tr><td>";
echo 
implode("</td><td>",$reihe);
# Buttons an jedem Datensatz
echo '<input type="Submit" value="Eins Entnommen" name="submit_'.$reihe['zaehler_db'].'" />';

echo 
"</td></tr>";
while (
$reihe mysql_fetch_array($ergebnisMYSQL_ASSOC))
{
echo 
"<tr><td>";
echo 
implode("</td><td>",$reihe);
# Buttons an jedem Datensatz
echo '<input type="Submit" value="Eins Entnommen" name="submit_'.$reihe['zaehler_db'].'" />';
echo 
"</td></tr>";
}

echo 
"</table>";
}
else
{
echo 
"<p>".mysql_error($connect);
}
mysql_close($connect);
?>
# Formular fĂŒr manuelle Eingabe der ID zu dekrementieren
<h2>Wert inkementieren</center></h2>
<form action="http://capitan.tep.e-technik.tu-muenchen.de/wissenmms/includes/Wert_inkrementieren.php" method="post">
Zaehler: <input type="text" size="5" name="zaehlerinkrementieren">
<input type="submit" value="Dekrementieren">
</form>
Skript fĂŒr Dekrementieren:
PHP-Code:
<?php
# Verbindung herstellen zum Server
$connect mysql_connect("localhost","lager_mms","lager")or die
(
"Keine Verbindung moeglich");
# Verbindung zur Datenbank herstellen
mysql_select_db("warenlager_mms")
or die
(
"Die Datenbank existiert nicht");
# Ăœbergabe aus Formular
$zaehlerinkrementieren $_POST["zaehlerinkrementieren"];
/*$mengeinkrementieren = $_POST["mengeinkrementieren"];*/
# $abfrageinkrementieren = "SELECT Menge FROM warenlager WHERE zaehler = '$zaehlerinkrementieren'";
$aenderninkrementieren "UPDATE warenlager Set Menge = Menge - 1 WHERE zaehler = '$zaehlerinkrementieren'";
$updateinkrementieren mysql_query($aenderninkrementieren);
mysql_close($connect);
header("Location: http://capitan.");
?>
markus_munich ist offline  
Sponsor Mitteilung
PHP Code FlĂŒsterer

Registriert seit: 21.08.2005
BeitrÀge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.07.2009, 08:50  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
BeitrÀge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Setz doch einfach den Form Tag ĂŒber das allererste Input Feld
Dateneingaben escapen! (siehe mysql_real_escape_string)
Zitat:
PHP-Code:
mysql_close($connect); 
brauchst du nicht, das erledigt php fĂŒr dich.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline  
Alt 29.07.2009, 09:01  
Erfahrener Benutzer
 
Benutzerbild von ChillSn
 
Registriert seit: 28.07.2009
BeitrÀge: 267
PHP-Kenntnisse:
Fortgeschritten
ChillSn befindet sich auf einem aufstrebenden Ast
ChillSn eine Nachricht ĂŒber Skype™ schicken
Standard

Ich wĂŒrde dir auch empfehlen, die Logindaten fĂŒr die Datenbank in ne andere PHP-Datei auszulagern, damit eliminierst du unnötige Redundanzen und schaffst Übersicht!

Greets,
der ChillSn
__________________
PHP-Code:
while($humans>=2)
       
war(); 
ChillSn ist offline  
Alt 29.07.2009, 09:25  
Neuer Benutzer
 
Registriert seit: 24.07.2009
BeitrÀge: 11
PHP-Kenntnisse:
AnfÀnger
markus_munich befindet sich auf einem aufstrebenden Ast
Standard

Hi,

das mit dem <form> Tag habe ich mir auch schon gedacht und geschafft. Er hĂŒpft dann mit DrĂŒcken des Submit-Buttons in das php-Skript fĂŒhrt aber dann nichts aus. ich denke, dass es an der Übergabe der ID des Datensatzes liegt, weil er nicht weiß, wo er was machen soll.
Bei mir sieht das bis jetzt dann so aus:

Skript mit "Buttons":
PHP-Code:
<?php

echo "<h1><center>Warenlagerbestandsanzeige</center></h1>";
# Verbindung herstellen zum Server
$connect mysql_connect("localhost","lager_mms","lager");
# Verbindung zur Datenbank herstellen
mysql_select_db("warenlager_mms");
# Tabelle abfragen
$abfrage "SELECT * FROM warenlager";
# Ergebnis der Abfrage speichern
$ergebnis mysql_query($abfrage);
# Schleife fĂŒr die Abfrage aller Spalten
if($ergebnis)
{
# Anzahl der DatensĂ€tze
$number mysql_num_rows($ergebnis);
echo 
"<p>Es sind <strong>$number DatensĂ€tze</strong> aus der MySQL - Datenbank warenlager_mms gelesen worden</p>";

echo 
"<table border=1><tr>";
$reihe mysql_fetch_array($ergebnisMYSQL_ASSOC);
while (
$feld key($reihe))
{
echo 
'<th>'ucwords($feld). '</th>';
next($reihe);
}
echo 
"</tr><tr><td>";
echo 
implode("</td><td>",$reihe);
echo 
'<form action="http://capitan.tep.e-technik.tu-muenchen.de/wissenmms/includes/Wert_inkrementieren.php" method="post">';

echo 
'<input type="Submit" value="Eins Entnommen" name="submit_'.$reihe['zaehler_db'].'" />';
echo 
'</form>';
echo 
"</td></tr>";
while (
$reihe mysql_fetch_array($ergebnisMYSQL_ASSOC))
{
echo 
"<tr><td>";
echo 
implode("</td><td>",$reihe);
echo 
'<form action="http://capitan.tep.e-technik.tu-muenchen.de/wissenmms/includes/Wert_inkrementieren.php" method="post">';
echo 
'<input type="Submit" value="Eins Entnommen" name="submit_'.$reihe['zaehler_db'].'" />';
echo 
'</form>';
echo 
"</td></tr>";
}

echo 
"</table>";
}
else
{
echo 
"<p>".mysql_error($connect);
}
mysql_close($connect);
?>
Skript fĂŒr die Dekrementierung:
PHP-Code:
<?php
# Verbindung herstellen zum Server
$connect mysql_connect("localhost","lager_mms","lager")or die
(
"Keine Verbindung moeglich");
# Verbindung zur Datenbank herstellen
mysql_select_db("warenlager_mms")
or die
(
"Die Datenbank existiert nicht");
$zaehlerinkrementieren $_POST['submit_'.$reihe['zaehler_db'].''];
$aenderninkrementieren "UPDATE warenlager Set Menge = Menge - 1 WHERE zaehler = '$zaehlerinkrementieren'";
$updateinkrementieren mysql_query($aenderninkrementieren);
mysql_close($connect);
header("Location: http://capitan.tep.e-technik.tu-muenchen.de/wissenmms/index.php?option=com_content&view=article&id=637:test-php&catid=62:wie-es-funktioniert-user&Itemid=317");
?>
Freue mich ĂŒber Eure Antworten!

Viele GrĂŒĂŸe
Markus
markus_munich ist offline  
Alt 29.07.2009, 09:33  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
BeitrÀge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Debuggen,debuggen,debuggen,debuggen!

PHP-Code:
<pre>
<? var_dump($_POST); ?>
</pre>
aber auch:
PHP-Code:
$updateinkrementieren mysql_query($aenderninkrementieren) OR die(mysql_error " query ".$aenderninkrementieren); 
Zum Einstieg auch mal das als Empfehlung:
tut 1
tut 2


Nicht falsch verstehen, aber da steht ganz viel, was du dringend beachten solltest. Und dich auch im VerstÀndnis weiterbringt.


grĂŒĂŸe
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog

GeÀndert von rudygotya (29.07.2009 um 09:39 Uhr).
rudygotya ist offline  
Alt 29.07.2009, 09:49  
Erfahrener Benutzer
 
Benutzerbild von ChillSn
 
Registriert seit: 28.07.2009
BeitrÀge: 267
PHP-Kenntnisse:
Fortgeschritten
ChillSn befindet sich auf einem aufstrebenden Ast
ChillSn eine Nachricht ĂŒber Skype™ schicken
Standard

Zitat:
Er hĂŒpft dann mit DrĂŒcken des Submit-Buttons in das php-Skript fĂŒhrt aber dann nichts aus. ich denke, dass es an der Übergabe der ID des Datensatzes liegt,
Gib dir mal auf der Zielseite (Inkrementieren-Skript) ĂŒber print_r($_POST) den Inhalt des Arrays aus. Evtl. siehst du dann schon wo der Fehler liegt.

Greets, ChillSn
__________________
PHP-Code:
while($humans>=2)
       
war(); 
ChillSn ist offline  
Alt 29.07.2009, 10:11  
Neuer Benutzer
 
Registriert seit: 24.07.2009
BeitrÀge: 11
PHP-Kenntnisse:
AnfÀnger
markus_munich befindet sich auf einem aufstrebenden Ast
Standard

Hi,

erstmals Danke fĂŒr all Eure Antworten.
Wenn ich mir das Array ausgebe, d.h.:
PHP-Code:
$zaehlerinkrementieren $_POST['submit_'.$reihe['zaehler_db'].''];
print_r($_POST); 
steht im Browser: Array ( [1] => Eins Entnommen ) . Die bspw. 1 in den eckigen Klammern zeigt die ID des Datensatzes schon richtig an.
markus_munich ist offline  
Alt 29.07.2009, 10:32  
Erfahrener Benutzer
 
Benutzerbild von ChillSn
 
Registriert seit: 28.07.2009
BeitrÀge: 267
PHP-Kenntnisse:
Fortgeschritten
ChillSn befindet sich auf einem aufstrebenden Ast
ChillSn eine Nachricht ĂŒber Skype™ schicken
Standard

Und die ID bekommst du ĂŒber

PHP-Code:
key($_POST); 
__________________
PHP-Code:
while($humans>=2)
       
war(); 
ChillSn ist offline  
Alt 29.07.2009, 10:46  
Neuer Benutzer
 
Registriert seit: 24.07.2009
BeitrÀge: 11
PHP-Kenntnisse:
AnfÀnger
markus_munich befindet sich auf einem aufstrebenden Ast
Standard

Hi,

nein, eine ID bekomme ich leider nicht. Ich fĂŒge das ganze so ein:
PHP-Code:
$zaehlerinkrementieren $_POST['submit_'.$reihe['zaehler'].''];
key($_POST);
print_r($_POST); 
Egal wierum ich es stelle, es wird immer die alte Anzeige Array ( [1] => Eins Entnommen angezeigt.

Bitte um Eure Hilfe!

Viele GrĂŒĂŸe
Markus
markus_munich ist offline  
Alt 29.07.2009, 10:49  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
BeitrÀge: 4.072
Asipak sorgt fĂŒr eine eindrucksvolle AtmosphĂ€reAsipak sorgt fĂŒr eine eindrucksvolle AtmosphĂ€re
Standard

Das fehlt ein echo vor key().

Was sagt:
PHP-Code:
echo '<pre>'print_r(array_keys($_POST)), '</pre>'
?
Asipak ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf BeitrÀge zu antworten.
Es ist dir nicht erlaubt, AnhÀnge hochzuladen.
Es ist dir nicht erlaubt, deine BeitrÀge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Submit Button mit Bild, per Click anderer Button the-rod JavaScript, Ajax und mehr 3 26.06.2009 17:52
Inhalt einer Spalte als Wert ausgeben? phppower Datenbanken 6 26.06.2009 10:57
MySql/PHP - Kleinster Wert aus einer Spalte IHOIU67 Datenbanken 18 17.05.2009 15:44
wert einer spalte begrenzen chrismh PHP Tipps 2009 4 01.03.2009 14:21
[Erledigt] PrĂŒfen, ob ein Wert in der Tabelle ist Inchie PHP Tipps 2008 2 02.07.2008 21:08
wert mit submit button ĂŒbergeben Matthiasnet PHP Tipps 2007 2 07.04.2007 19:41
SQL-Problem: Wert in einer Spalte Àndern, ohne löschen phyton Datenbanken 8 05.02.2007 20:15
[Erledigt] Wert aus einer Spalte raussuchen Datenbanken 10 05.12.2006 19:16
nach grösstem (unbekannten) Wert suchen lindner Datenbanken 2 20.08.2006 22:13
Anzahl der Reihen, hoechster Wert einer Spalte mit where Datenbanken 1 20.10.2005 17:46
kleinsten und grĂ¶ĂŸten wert ermitteln niffi PHP Tipps 2005 14 26.04.2005 12:42
ÜberprĂŒfugn ob ein Wert in der spalte vorhanden? PHP Tipps 2005 2 05.02.2005 16:16
MySQL Tabelle nach wert in spalte durchsuchen PHP Tipps 2005 5 31.01.2005 20:37
Arrayelement duch Click auf Button hinzufĂŒgen PHP Tipps 2004-2 7 15.11.2004 14:58
[Erledigt] Problem: per klick auf Button Wert erhöhen/verringern HTML, Usability und Barrierefreiheit 7 07.10.2004 08:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql dekrementieren, http://www.php.de/php-einsteiger/57565-wert-spalte-dekrementieren-durch-button-click.html, php button click abfangen, php dekrementieren, tabelle zĂ€hlerbuttom, php tabelle mit schaltflĂ€chen, tabellenwerte bei submit ĂŒbergeben, php button click, zĂ€hlerbutton per html, c# button wert erhöhen, c button click abfragen, klick button fĂŒr php tabelle, dekrementieren, php button inkrementieren und dekrementieren, form in einer tablle spalte php, klick abfangen php, button bei klick tag dekrementieren, ausgabe aus tabelle button an formular, sql value decrementieren, sql spaltenwerte dekrementieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum