php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.01.2009, 21:31  
Benutzer
 
Registriert seit: 10.01.2009
Beiträge: 51
Freakli befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] MySQL +/- Update

Hi, ich habe ein kleines Problem, ich möchte einem User ein Betrag gutschreiben, aber der der "überweißt" soll natürlich um den zu übertragenden Betrag weniger haben. Soweit die Theorie. Ich habe auch die "zwei" SQL befehle dazu, nur muss es ja "gleichzeitig" ablaufen.
Hier der Code:
PHP-Code:
<?php
require('login.inc.php');
/* Überprüfen ob Login erfolgt ist, ggf. Anmeldemöglichkeit bieten */
if(is_logged_in())
  {
?>
<title>Konto</title>
<form action="index.php" method="post">
    <table>
      <tr><th>Betrag:</th><td><input type="text" name="betrag" size="64"></td></tr>
      <tr><th>Bemerkung:<td><input type="text" name="bemerkung" size="64"></td></tr>
      <tr><th>Username:<td><input type="text" name="username" size="64"></td></tr>
      <tr><th>Username1:<td><input type="text" name="username1" size="64"></td></tr>
      <tr><td colspan="2"><input type="submit" value="Speichern&nbsp;&nbsp;"> <input type="reset" value="Zur&uuml;cksetzen&nbsp;&nbsp;"></td></tr>
      </table>
      </form>
<!-- START: Logout-Button -->
<form method="get" action="logout.php">
<input type="submit" id="logout" name="logout" value="Logout">
</form>
<!-- ENDE: Logout-Button -->
<?php 
  $username1 
$_POST['username1'];
  
$betrag $_POST['betrag'];
  
$bemerkung $_POST['bemerkung'];
  
$username $_POST['username'];
  echo 
$res['username1'];
require(
'database.inc.php');
   
mysql_connect($mysqlhost,$mysqluser,$mysqlpwd); 

mysql_select_db($mysqldb); 

$queryres mysql_query("SELECT * FROM tabelle");  

while(
$res=mysql_fetch_array($queryres)){
?>
<table border="1">
<td>Datum</td>
<td>Betrag in Trasas</td>
<td>Bemerkung</td>
<tr></tr>
<td><?php echo $res['date']; ?></td>
<td><?php echo $res['betrag']; ?></td>
<td><?php echo $res['bemerkung']; ?></td>
</table>
<?php 

require(
'database.inc.php');
   
mysql_connect($mysqlhost,$mysqluser,$mysqlpwd); 


mysql_select_db($mysqldb); 

$queryres mysql_query("SELECT * FROM tabelle"); 
 
while(
$res=mysql_fetch_array($queryres)){
      
      
$tabelle mysql_fetch_object($queryres);
  
    print 
mysql_error();
  
$username1 $_POST['username1'];
  
$id $_POST['id'];
  
$betrag $_POST['betrag'];
  
$bemerkung $_POST['bemerkung'];

    
mysql_select_db($mysqldb);
      {
        
        
    
$sql "UPDATE tabelle SET betrag = betrag-$betrag, bemerkung = '$bemerkung' WHERE username1 = '$username1'";
    
$sql "UPDATE tabelle SET betrag = betrag+$betrag, bemerkung = '$bemerkung' WHERE username = '$username'";
    
$result mysql_query($sql);
    
    
    }
}
}
?>
Das Script geht auch, aber nur mit einem der Update Befehle. ich Hoffe ihr könnt mir helfen.
Freakli ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.01.2009, 21:40  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

Du solltest das eine sql auch ausführen, btw schönes Beispiel wie man Daten manipulieren kann bei ungesicherten Input Daten
HPR1974 ist offline   Mit Zitat antworten
Alt 27.01.2009, 21:45  
Benutzer
 
Registriert seit: 10.01.2009
Beiträge: 51
Freakli befindet sich auf einem aufstrebenden Ast
Standard

Öhm, wie SQL ausführen, das die Input Felder unsicher sind weiß ich berreits. Warum ich sie verwende? Weil ich noch ein Anfänger bin.
Ich will nur wissen wie man die zwei SQL befehle miteinander gleichzeitig ausführen kann.
Freakli ist offline   Mit Zitat antworten
Alt 27.01.2009, 22:22  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Gleichzeitig geht nicht, musst du schon nacheinander jeweils mit einem mysql_query() machen. Bei deiner Version überschreibst du ja $sql mit dem zweiten Query.
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline   Mit Zitat antworten
Alt 28.01.2009, 00:58  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Du hast 2 SQL Statements, dann sollte man beide SQL Statements auch ausführen mit mysql_query.

Ps.: Dein Script is anfällig auf SQL-Injections (bitte googlen) und es werden keine SQL Fehler zurückgegeben.
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 28.01.2009, 03:52  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
$sql = "UPDATE tabelle SET betrag = betrag-$betrag, bemerkung = '$bemerkung' WHERE username1 = '$username1'";
$username1 ist also der Überweisende. Ist das nicht derjenige, der eingeloggt ist? Warum muss man dann den Namen (einen beliebigen Namen) noch einmal eingeben?

Wie sieht die DB-Tabelle wirklich aus?
David ist offline   Mit Zitat antworten
Alt 28.01.2009, 07:37  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

wenn Du mysqli benutzt kanst Du mehrere queries mit mysqli_multi_query absetzen.
HPR1974 ist offline   Mit Zitat antworten
Alt 28.01.2009, 08:15  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Das müsste dann aber zum Beispiel per Transaktion gesichert werden.
Es geht aber auch in einem einzelnen Statement
Code:
UPDATE
  konten as sender, konten as empfaenger
SET
  sender.saldo = sender.saldo - 50.0,    
  empfaenger.saldo = empfaenger.saldo + 50.0  
WHERE
  sender.user_id = 2  
  AND empfaenger.user_id = 4  
  AND sender.saldo >= 50.0
Das "AND sender.saldo >= betrag" kann man auch als constraint ausdrücken.
David ist offline   Mit Zitat antworten
Alt 28.01.2009, 11:18  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 380
PHP-Kenntnisse:
Fortgeschritten
splasch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi David

Das ist mir auch neu bisher kannte ich nur das man Spalten mit as unter anderen Namen angeben kann aber Tabellen ist mir neu.

Gehe richtig in der Anahme das es sich bei dem update um 1 Tabelle handelt.
Die 2 mal unter virtuellen Namen angesprochen wird?

Ein wenig Erklärung zu den Sql Statments währe immer gut.

Mfg Splasch
splasch ist offline   Mit Zitat antworten
Alt 28.01.2009, 11:58  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von splasch Beitrag anzeigen
Gehe richtig in der Anahme das es sich bei dem update um 1 Tabelle handelt.
Die 2 mal unter virtuellen Namen angesprochen wird?
Jap, du hast es erfasst...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Antwort


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
Queries fehlerhaft nach MySQL Update 4/5 BlueMood Datenbanken 3 16.08.2006 10:53
Update auf php5 -->Problem mit mysql PHP Tipps 2006 6 15.03.2006 12:43
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] mysql: INSERT und wenn vorhanden UPDATE Datenbanken 7 07.01.2006 09:54
mysql problem: mysql update wird nicht ausgeführt schmiddy PHP Tipps 2007 4 27.12.2005 20:35
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
einfache mysql abfrage und mysql update haut nicht ganz hin djrace PHP Tipps 2005-2 6 12.08.2005 15:28
update in mysql über php se-clan PHP Tipps 2005-2 24 17.07.2005 19:57
Update in mysql funzt nicht maeck PHP Tipps 2005-2 4 27.06.2005 22:52
Error nach mySQL update: mysql_fetch_array() PHP Tipps 2005 5 04.02.2005 17:16
MySQL UPDATE Befehl funktioniert nicht PHP Tipps 2005 6 24.01.2005 15:03
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
php / Mysql Update auf neuste Version PHP Tipps 2007 5 05.01.2005 19:34
Problem bei MYSQL / Update Resource #id Fehler PHP Tipps 2004 2 29.09.2004 13:09
[Erledigt] Wieso geht das mysql update nich PHP Tipps 2004 6 30.07.2004 11:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sql update ausführen, name betrag bemerkung tabelle, update php mysql ausführen, tabellen update aus input, php schaltfläche sql statement ausführen, php mysql update ausführen

Alle Zeitangaben in WEZ +1. Es ist jetzt 04:28 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