[GastForen Programmierung/Entwicklung PHP und MySQL Datenbank updaten

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Datenbank updaten

oBi
Beiträge gesamt: 15

18. Jan 2005, 10:25
Beitrag # 1 von 10
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich bin neu hier und auch ziemlich neu mit PHP beschäftigt, darum benötige ich Eure Hilfe.

Ich arbeite mit einem Login mit Sessions. In dieser Session kommen nacheinander zwei Formulare, die in die gleiche Datenbank-Tabelle schreiben.
Nun habe ich das Problem, daß die beiden Formulare in zwei aufeinanderfolgende Tabellenzeilen schreiben.
Es wäre allerdings besser in eine Zeile. Ich habe schon einiges versucht mit "UPDATE `address` SET ZAHLUNGSWEISE = '$ZAHLUNGSWEISE' WHERE MYID = '$MYID'", aber das funzt nicht, meine PHP-Kenntnisse reichen hier nicht aus.
Vieleicht könnt Ihr mal auf mein zweites Script schauen und mir sagen, was ich ändern muß.

modi_selcet.php:

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<?php
include ("connect.php");

// check und Weiterleitung nach tranfer.php bzw. paypal.php

if (isset($_POST['ZAHLUNGSWEISE'])) {
switch ($_POST['ZAHLUNGSWEISE']) {
case 'Transfer':
$ZAHLUNGSWEISE = 'Transfer';
break;
case 'Paypal':
$ZAHLUNGSWEISE = 'Paypal';
break;
default:
$ZAHLUNGSWEISE = false;
break;
}
} else {
$ZAHLUNGSWEISE = false;
}

if (isset($_POST['insert'])) {

if (false !== $ZAHLUNGSWEISE) {
$link = mysql_connect($dbhost, $dbuser, $dbpass)
or die(mysql_error());

mysql_select_db($dbname, $link)
or die(mysql_error($link));


$result = mysql_query("
INSERT INTO `address` (`ZAHLUNGSWEISE`)

VALUES ('$ZAHLUNGSWEISE')

", $link) or die(mysql_error());


if (0 < mysql_affected_rows($link)) {
$url = strtr(dirname($_SERVER['PHP_SELF']).'/', array('\\/'=>'/', '//'=>'/'));
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
$url = 'https://'.$_SERVER['HTTP_HOST'].':'.$_SERVER['SERVER_PORT'].$url;
} else {
$url = 'http://'.$_SERVER['HTTP_HOST'].':'.$_SERVER['SERVER_PORT'].$url;
}
header('Location: '.$url.$ZAHLUNGSWEISE.'.php');
exit;
}
}
}
?>

<html>
<body leftMargin="0" topMargin="0" MARGINWIDTH="0" MARGINHEIGHT="0" background="../base-Dateien/background.jpg" width="900" height="900" border="0" alt=""><br>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="action" value="insert">
<table border=0 align=center cellspacing=0 cellpadding=0 class=bmborder width="620">
<tr>
<td class="bmcatbg" align="center" colspan="1" ><font face="Arial" size="6" color="#FFFFFF">Ihre Zahlungsabwicklung</font></td>
</tr>
<tr>
<td class=bm2 align=left><font face="Arial" size="4" color="#000000">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zahlungsweise:</font>
</td>
</tr>
<tr>
<td class=bm2 align=center><INPUT TYPE="radio" NAME="ZAHLUNGSWEISE" VALUE="Transfer">
<img src="http://localhost/...hx-mail/pay_elv.gif" width="180" height="55" border="0" alt="">
</td>
</tr>
<tr>
<td class=bm2 align=center><INPUT TYPE="radio" NAME="ZAHLUNGSWEISE" VALUE="Paypal">
<img src="http://localhost/graphx-mail/pay_cc.gif" width="184" height="57" border="0" alt="">
</td>
</tr>
<tr>
<td class=bm2 align=right>&nbsp;</td>
</tr>
</div>
<tr>
<td class=bm2 colspan=2 align=center>
<input type="submit" value="Eintragen" class="bm5" name="insert">
<input type="reset" value="Zurücksetzen" class="bm5"><br> 
</td>
</tr>
</td>
</td>
</tr>
</table>
</table>
</form>
</body>
</html>

Seht Ihr eine Möglichkeit, wie man "INSERT INTO " am sinnvollsten in "UPDATE" ändern kann?

oBi
X

Datenbank updaten

jrandi
Beiträge gesamt: 794

18. Jan 2005, 11:54
Beitrag # 2 von 10
Beitrag ID: #137243
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
willkommen !

Könnte man dies nicht vereinfachen, indem beide tabellen nur einmal in die DB schreiben ? D.h. Formular1.html greift auf formular2.php zu, du übernimmst die variablen mit S_POST und gibst diese als INPUT TYPE HIDDEN weiter, dann kannst du das mit Insert lösen.

gruss
jurg
________________________________
net & print production
http://www.randj.net / http://www.alpha-randj.net


als Antwort auf: [#137163]

Datenbank updaten

oBi
Beiträge gesamt: 15

18. Jan 2005, 12:19
Beitrag # 3 von 10
Beitrag ID: #137265
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo jurg,

scheint ein Missverständnis zu sein, ich habe in der DB nur eine Tabelle. Kannst Du mir ein Beispiel zeigen, wie ich die Varialen mit INPUT TYPE HIDDEN übergeben kann, bin noch nicht so fit in PHP?

oBi


als Antwort auf: [#137163]

Datenbank updaten

jrandi
Beiträge gesamt: 794

18. Jan 2005, 13:34
Beitrag # 4 von 10
Beitrag ID: #137307
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi,

ich habe schon verstanden, dass nur eine tabelle vorhanden ist. aber das tut hier wenig zur sache.

ein input hidden ist gewöhnliches html, wo du die php-var übergibst, z.B. so

<input type="hidden" name="id_n" value="<? echo $id_n; ?>">

gruss
jurg

p.s. natürlich erst noch die var zurückholen mit S_POST, wenn register globals = OFF oder mit request :

$id_n = $_REQUEST["id_n"];
________________________________
net & print production
http://www.randj.net / http://www.alpha-randj.net


als Antwort auf: [#137163]
(Dieser Beitrag wurde von jrandi am 18. Jan 2005, 13:37 geändert)

Datenbank updaten

oBi
Beiträge gesamt: 15

18. Jan 2005, 14:21
Beitrag # 5 von 10
Beitrag ID: #137329
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für Deine schnelle Antwort.
Ich werde es ausprobieren, hoffe es klappt, wenn nicht melde ich mich nochmals.
Vorerst besten Dank.

oBi


als Antwort auf: [#137163]

Datenbank updaten

oesi50
  
Beiträge gesamt: 2315

18. Jan 2005, 14:35
Beitrag # 6 von 10
Beitrag ID: #137333
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Seht Ihr eine Möglichkeit, wie man "INSERT INTO " am sinnvollsten in "UPDATE" ändern kann?

ja: REPLACE

http://vsrv.de/examples/phpdb/test.php

Schau dir mal speichern.php an.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#137163]
(Dieser Beitrag wurde von oesi50 am 18. Jan 2005, 14:36 geändert)

Datenbank updaten

oBi
Beiträge gesamt: 15

18. Jan 2005, 19:01
Beitrag # 7 von 10
Beitrag ID: #137442
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo jurg, Hallo oersi500,

@jurg, wo trage ich "$id_n = $_POST["id_n"];" ein? Im Formular- oder im Scriptteil? Ist alles noch einwenig neu für mich, sorry für vieleicht so eine Frage.

@oersi500, sehr interessantes Script, hift mir hier aber nicht so recht weiter, werde es vieleicht an anderer Stelle brauchen.
Ich habe mir alles kopiert, bin aber auf ein Problem mit dem Quelltext von loeschen.txt gestossen. Habe ihn mir durch Quelltext anzeigen heruntergeladen, funzt aber nicht so richtig. Es kommt folgende Meldung:
Parse error: syntax error, unexpected T_INCLUDE in D:\server\xampp\htdocs\TABELLEN_TEST\loeschen.php on line 3
In meinem Quelltext in Linie 3 ist folgendes: "include("funk.php"); "
Wie komme ich an diesen Quelltext?

Ich hoffe Ihr könnt mir helfen?
oBi



als Antwort auf: [#137163]

Datenbank updaten

jrandi
Beiträge gesamt: 794

18. Jan 2005, 20:26
Beitrag # 8 von 10
Beitrag ID: #137470
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi oBi

Achtung, was ich dir da mitgegeben habe ist nur ein beispiel, die variablen müssen jedoch mit deinem script übereinstimmen.
beim durchchecken ist mir auch aufgefallen, dass du dies auch machst, nur frage ich mich, ob du dies bewusst machst oder einfach ein script abänderst.
(isset($_POST['ZAHLUNGSWEISE']))
wie dem auch sei, ich machs jeweils so aber das sollte keine rolle spielen.
$ZAHLUNGSWEISE = $_POST["ZAHLUNGSWEISE"]; und arbeite nachher nur noch mit $ZAHLUNGSWEISE

bref,
beim ersten formular übergibst du die variable.
beim zweiten musst du alle zurückholen - $_POST - und mit INPUT TYPE HIDDEN (html mit "php-echo") an das script weitergeben, welches in die DB schreibt.
in diesem script wieder $_POST für alle variable

bez. "include("funk.php");
arbeitest du an einem script, das du übernommen hast ?
include bedeutet eine andere datei einzubeziehen, wenn du diese datei also nicht auf dem server hast, gibt's ne fehlermeldung.

gruss
jurg
________________________________
net & print production
http://www.randj.net / http://www.alpha-randj.net


als Antwort auf: [#137163]

Datenbank updaten

oesi50
  
Beiträge gesamt: 2315

18. Jan 2005, 20:33
Beitrag # 9 von 10
Beitrag ID: #137471
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Die funk.php gibt's dort, wo du auch den Rest gefunden hast. Zweiter Link von oben.


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#137163]

Datenbank updaten

oBi
Beiträge gesamt: 15

19. Jan 2005, 11:56
Beitrag # 10 von 10
Beitrag ID: #137647
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo jurg, Hallo oesi50,

ich versuche nochmals zu erklären, wie ich den Ablauf in meiner Webseite vorhabe.
Meine Postings „Login-ID übertragen“ und „Datenbank updaten“ gehören eigentlich zusammen.
Die Login/Session-ID übertragen hat folgenden Hintergrund:
User loggt sich ein bzw. meldet sich an, es wird automatisch eine ID vergeben (funzt alles schon).
Diese ID möchte ich mit einem Link-Anmeldescript (User ist in einer Session und setzt einen oder mehrere Links für free oder kostenpflichtig in der gleichen oder in verschiedenen Kategorien auf meine Seite) übertragen. Ich kann dann hier aus der DB später auslesen wieviele und welche Links er gesetzt hat. Die Tabelle heißt „linker_wait“.
Danach kommt der User zu einem Script „modi.html + modi.php“ in welchem seine pers. Daten erfasst werden, hier brauche ich auch die ID. Denn anschließend kommt ein Script „modi_select.php“, hier muss der User für einen kostenpflichtigen Link angeben ob er mit PAYPAL oder per ÜBERWEISUNG zahlen möchte. Diese Daten sollen per ID in die gleiche Tabellenzeile kommen wie zuvor auch die Daten aus „modi.html“.

Nun hierzu meine Fragen:
1. Wie kann ich die Login/Session-ID in die anderen Tabellen weitergeben?
2. Wie kann ich meine „modi_select.php“ modefizieren um den Tabelleneintrag als UPDATE auf den Eintrag von „modi.html + modi.php“ hinzubekommen.

Ich hoffe ich habe mein Anliegen einigermaßen verständlich dargelegt und bitte um Eure Mithilfe.
oBi

P.S. "include("funk.php"); es funzt jetzt, hatte den Scriptnamen oben ohne Backslash reingeschrieben.


als Antwort auf: [#137163]
X