ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
242
242
EMPFEHLEN
-
Hi ich habe hier ein Problem mit dem quelltext: und zwar führt der, wenn ich mehrere Eingaben mit + machen will immer nur den letzten SQl-befehl vom Quelltext aus ... würde mich super freuen, wenn mir wer sagt woran das liegt, bzw. mir sagt wie ichs anders machen kann
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
<?php if(! isset($_POST[abschicken])){ include ('eintragen.htm'); exit; } $server = "localhost"; $user = "#####"; $pass = "#######"; $database = "#####"; $table = "artefakte"; $table2 = "benutzerdaten"; $id = "$_POST[id]"; $anzahl = "$_POST[anzahl]"; $kaderium = "$_POST[kaderium]"; $nano = "$_POST[nano]"; $stasis = "$_POST[stasis]"; $nahrung = "$_POST[nahrung]"; $prodium = "$_POST[prodium]"; $methodeanzahl = "$_POST[methodeanzahl]"; $methodekaderium = "$_POST[methodekaderium]"; $methodenano = "$_POST[methodenano]"; $methodestasis = "$_POST[methodestasis]"; $methodenahrung = "$_POST[methodenahrung]"; $methodeprodium = "$_POST[methodeprodium]"; $_SESSION["user_id"] = "$id"; $date = date("d.m.y u\m H:i:s"); $verbindung = @mysql_connect($server, $user, $pass) or die ("Konnte keine Verbindung zur Datenbank herstellen!"); mysql_select_db($database, $verbindung) or die ("SQL-Fehler: " . mysql_error()); // Anzahl---------------------------------------------------------------------------------- if ($methodeanzahl == 'gleich'){ $sql = "UPDATE $table SET AID='$id', Anzahl='$anzahl', datum='$date' WHERE AID='$id'"; $res=mysql_query($sql); } else if ( $methodeanzahl == 'plus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $anzahlaktuell = $row['Anzahl']; $anzahlanzahl = $anzahlaktuell + $anzahl; $sql = "UPDATE $table SET AID='$id', Anzahl='$anzahlanzahl', datum='$date' WHERE AID='$id'"; $result = mysql_query($sql); } else if ( $methodeanzahl == 'minus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $anzahlaktuell = $row['Anzahl']; $anzahlanzahl = $anzahlaktuell - $anzahl; $sql = "UPDATE $table SET AID='$id', Anzahl='$anzahlanzahl', datum='$date' WHERE AID='$id'"; } // Kaderium--------------------------------------------------------------------------------- if ($methodekaderium == 'gleich'){ $sql = "UPDATE $table SET AID='$id', Kaderium='$kaderium', datum='$date' WHERE AID='$id'"; $res=mysql_query($sql); } else if ( $methodekaderium == 'plus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $kaderiumaktuell = $row['Kaderium']; $kadkad = $kaderiumaktuell + $kaderium; $sql = "UPDATE $table SET AID='$id', Kaderium='$kadkad', datum='$date' WHERE AID='$id'"; } else if ( $methodekaderium == 'minus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $kaderiumaktuell = $row['Kaderium']; $kadkad = $kadaktuell - $kaderium; $sql = "UPDATE $table SET AID='$id', Kaderium='$kadkad', datum='$date' WHERE AID='$id'"; } // Nano -------------------------------------------------------------------------------------- if ($methodenano == 'gleich'){ $sql = "UPDATE $table SET AID='$id', Nano='$nano', datum='$date' WHERE AID='$id'"; $res=mysql_query($sql); } else if ( $methodenano == 'plus'){ $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $nanoaktuell = $row['Nano']; $nanonano = $nanoaktuell + $nano; $sql = "UPDATE $table SET AID='$id', Nano='$nanonano', datum='$date' WHERE AID='$id'"; } else if ( $methodenano == 'minus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $nanoaktuell = $row['Nano']; $nanonano = $nanoaktuell - $nano; $sql = "UPDATE $table SET AID='$id', Nano='$nanonano', datum='$date' WHERE AID='$id'"; } // Stasis ---------------------------------------------------------------------------------- if ($methodestasis == 'gleich'){ $sql = "UPDATE $table SET AID='$id', Stasis='$stasis', datum='$date' WHERE AID='$id'"; $res=mysql_query($sql); } else if ( $methodestasis == 'plus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $stasisaktuell = $row['Stasis']; $stasisstasis = $stasisaktuell + $stasis; $sql = "UPDATE $table SET AID='$id', Stasis='$stasisstasis', datum='$date' WHERE AID='$id'"; } else if ( $methodestasis == 'minus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $stasisaktuell = $row['Stasis']; $stasisstasis = $stasisaktuell - $stasis; $sql = "UPDATE $table SET AID='$id', Stasis='$stasisstasis', datum='$date' WHERE AID='$id'"; } // nahrung----------------------------------------------------------------------------------- if ($methodenahrung == 'gleich'){ $sql = "UPDATE $table SET AID='$id', Nahrung='$nahrung', datum='$date' WHERE AID='$id'"; $res=mysql_query($sql); } else if ( $methodenahrung == 'plus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $nahrungaktuell = $row['Nahrung']; $nahrungnahrung = $nahrungaktuell + $nahrung; $sql = "UPDATE $table SET AID='$id', Nahrung='$nahrungnahrung', datum='$date' WHERE AID='$id'"; } else if ( $methodenahrung == 'minus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $nahrungaktuell = $row['Nahrung']; $nahrungnahrung = $nahrungaktuell - $nahrung; $sql = "UPDATE $table SET AID='$id', Nahrung='$nahrungnahrung', datum='$date' WHERE AID='$id'"; } // prodium --------------------------------------------------------------------------------- if ($methodeprodium == 'gleich'){ $sql = "UPDATE $table SET AID='$id', Prodium='$prodium', datum='$date' WHERE AID='$id'"; $res=mysql_query($sql); } else if ( $methodeprodium == 'plus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $prodiumaktuell = $row['Prodium']; $prodiumprodium = $prodiumaktuell + $prodium; $sql = "UPDATE $table SET AID='$id', Prodium='$prodiumprodium', datum='$date' WHERE AID='$id'"; } else if ( $methodeprodium == 'minus') { $sql ="SELECT * FROM $table WHERE AID = $id "; $result = mysql_query($sql); $row = mysql_fetch_array($result); $prodiumaktuell = $row['Prodium']; $prodiumprodium = $prodiumaktuell - $prodium; $sql = "UPDATE $table SET AID='$id', Prodium='$prodiumprodium', datum='$date' WHERE AID='$id'"; } if($sql !="") mysql_query($sql) or die("SQL-Fehler: " . mysql_error()); // mysql_free_result($res); // mysql_close($verbindung); ?> <!-- <meta http-equiv="Refresh" content="5; URL=index.php"> -->Geändert von aegaes (27.11.05 um 19:47 Uhr)
-
Hab den fehler schon selbst gefunden :P
if($sql !="")
mysql_query($sql)
or die("SQL-Fehler: " . mysql_error());
Das müsste unter jdem update befehl stehen
-
Probier mal Folgendes:
Übrigens solltest du Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen immer kleinschreiben.PHP-Code:<?php
if( !isset($_POST['abschicken']) ) {
include 'eintragen.htm';
exit;
}
$database = 'example';
$table = 'example';
$daten = array(
'anzahl' => $_POST['anzahl'],
'kaderium' => $_POST['kaderium'],
'nano' => $_POST['nano'],
'stasis' => $_POST['stasis'],
'nahrung' => $_POST['nahrung'],
'prodium' => $_POST['prodium']
);
$methoden = array(
'anzahl' => $_POST['methodeanzahl'],
'kaderium' => $_POST['methodekaderium'],
'nano' => $_POST['methodenano'],
'stasis' => $_POST['methodestasis'],
'nahrung' => $_POST['methodenahrung'],
'prodium' => $_POST['methodeprodium']
);
$_SESSION['user_id'] = $_POST['id'];
$date = date('d.m.y \u\m H:i:s');
$verbindung = @mysql_connect()
or die('Konnte keine Verbindung zur Datenbank herstellen!');
mysql_select_db($database, $verbindung)
or die('SQL-Fehler: '.mysql_error());
foreach( $methoden as $key => $value ) {
$spalte = preg_replace('/^(.)/e', 'strtoupper("\\1")', strtolower($key));
switch( $methoden[$key] ) {
case 'plus':
$zusatz = ' `'.$spalte.'` + ';
break;
case 'minus':
$zusatz = ' `'.$spalte.'` - ';
break;
default:
$zusatz = '';
}
$query = sprintf('
UPDATE
`'.$table.'`
SET
`'.$spalte.'` = %s "'.mysql_escape_string($daten[$key]).'",
`datum` = "'.$date.'"
WHERE
`AID` = '.intval($_POST['id']).'
', $zusatz);
echo '<pre>'.$query.'</pre>';
$res = mysql_query($query)
or die('SQL-Fehler: '.mysql_error());
}
mysql_free_result($res);
mysql_close($verbindung);
?>Markus Wulftange
-
Das ist IMHO Ansichtssache. Ich kann z.B. die "Unterstrich-Syntax" überhaupt nicht leiden und nutze zur Trennung einzelner Wörter lieber Großbuchstaben.
Zitat von Gumbo
Viel wichtiger ist jedoch folgendes (was Du ja in dem Code korrigiert hast):
Fehler beim Ansprechen von Array-Elementen:Gruß hpvw
Zitat von [url=http://www.tutorials.de/forum/showpost.php?p=1104581&postcount=2]Matthias Reitinger[/url]
PS @Autor des Threads:
Bitte nutze die richtigen Code Tags, [ php ]code[ /php ] für PHP-Quelltexte, [ html ]code[ /html ] für HTML-Quelltexte und [ code ]code[ /code ] für sonstige Quelltexte, natürlich ohne die Leerzeichen. Das macht die Quelltexte übersichtlicher. Für kurze Code-Teile im Fließtext (z.B. Variablen- oder Funktionsnamen) kannst Du [ mono ]kurzer Code-Fetzen[ /mono ] verwenden.Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.
-
Die stringente Kleinschreibung hat jedoch den Vorteil, dass man sich aufgrund MySQLs Beachtung von Klein- und Großschreibung keine zusätzlichen Gedanken machen muss.Das ist IMHO Ansichtssache. Ich kann z.B. die "Unterstrich-Syntax" überhaupt nicht leiden und nutze zur Trennung einzelner Wörter lieber Großbuchstaben.Markus Wulftange
-
Ich will auch nicht bestreiten, dass es Vorteile hat und möchte ehrlich gesagt auch keine lange Diskussion anfachen. Mir persönlich gefällt es eben mit Großbuchstaben besser und ich bin so daran gewöhnt, dass ich damit keine Probleme habe. Mich störte nur das "immer".
Insbesondere bei Aliasnamen würde ich Deinem "immer" widersprechen, da diese auch wunderbar automatisiert ausgelesen und z.B. in einem Template als Spalten-Überschrift verwendet werden können. Wenn die Werte in einem Skript verarbeitet werden, ist es natürlich sinnvoll Bezeichner zu verwenden, die man als Array-Index oder Objekt-Variable verwenden kann.
Gruß hpvwWarum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.
Ähnliche Themen
-
Von MySQL, Schleifen und POST-Daten ...
Von whisp3r im Forum PHPAntworten: 3Letzter Beitrag: 20.05.08, 21:54 -
while schleifen prob
Von Atse87 im Forum PHPAntworten: 4Letzter Beitrag: 01.08.07, 14:59 -
Mysql-Klasse Prob
Von Headymaster im Forum PHPAntworten: 15Letzter Beitrag: 20.10.06, 17:11 -
Frage zu Mysql und schleifen.
Von MaxMara im Forum PHPAntworten: 1Letzter Beitrag: 20.02.06, 11:46 -
for schleifen prob.
Von nox im Forum PHPAntworten: 4Letzter Beitrag: 27.07.02, 20:56





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren