mysql-Daten mit PHP aktualisieren

SirSalomon

Mitglied
Erst mal ein Hallo, ich bin der Neue hier...

Und, wie sollte es anders sein, hab ich einProblem mit PHP in Verbindugn mit mysql...

Ich versuche einen Datensatz, den ich mit SELECT aussuche in einer Maske unter PHP zu ändern. Das Anzeigen und Eingeben der Daten funktioniert auch, nur das zurückspielen (versuche ich mit UPDATE) will nicht.

Vielleicht mal ein paar Zeilen, wie ich das machen möchte:

...
PHP:
if ($connID) {
    echo "<B><html><head><title>Verbindung...</title><body><p>Verbindung aufgebaut</body></html>\n</B><BR>";
    $sqlauswahl=mysql_query("SELECT * FROM adresse WHERE $Vid = id");
    $anzeige=mysql_fetch_array ( $sqlauswahl );
    
   echo "<H1>Bitte geben Sie die Adressdaten ein</H1>";
   echo "<form action='aenderung.php'>";
   echo "<table border='1'>";
   echo "<tr>";
   echo "<td><B>Firma</B></td>";
   echo "<td><input type='text' name='Afirma' value=" . $anzeige [ "firma"] . "></td>";
   echo "</tr><tr>";
   echo "<td><B>Vor- & Zuname</B></td>";
   echo "<td><input type='text' name='Avorname' value=" . $anzeige ["vorname"] . "></td>";
   echo "<td><input type='text' name='Azuname' value=" . $anzeige ["zuname"] . "></td>";
...

Soweit zur Auswahl, die Variable $Vid, für die SELECT-Funktion, gebe ich in einer Maske vorher ein. Das klappt auch alles soweit...

Wenn dann der Submit-Button gedrückt wird, steht hier im Beispiel nicht mit drin, wir ein anderer PHP-Code aufgerufen, auch den hier kurz angezeigt:

...
PHP:
$Aid = $anzeige["id"];
echo $Aid;
echo "<b>Kundennummer: </b>" . $Aid;
echo "<br>";

?>
<html>
<head>
       <title>Adresse geändert</title>
</head>
<body>
<?php

/*mysql_query("UPDATE adresse SET firma='$Afirma',
 vorname='$Avorname', zuname='$Azuname', strasse='$Astrasse', plz='$Aplz', ort='$Aort', vorwahl='$Avorwahl', 
rufnummer='$Arufnummer', faxnummer='$Afaxnummer', mobil='$Amobil', geburt='$Ageburt' WHERE '$Vid'=id");*/

$aendern=mysql_query("UPDATE adresse SET firma='$Afirma' WHERE '$Aid' =id");

if ($aendern) {
   echo "Änderung der Adresse " . $anzeige["firma"] . " durch ". $Afirma . " erfolgt...<br>";
   echo mysql_error();
   echo "<br>";
   $aenderung=mysql_query("SELECT  * FROM adresse WHERE '$Vid'=id");

   if ($aenderung) {
      echo "<B><html><head><body>Datensatzzeiger aktualisiert</body></html>\n</B><BR>";
   } else {
      echo "<B><HTML><head><body>Datensatzzeiger konnte nicht aktualisiert werden...</body></B><BR>";
      echo "<BR>";
      echo "<B>Folgender Fehler wurde von MySQL zurückgegeben: </B>" . mysql_error() . "<BR>";
      echo mysql_affected_rows() . " <B>Datensätze wurden beeinflusst.</B>";
   }
...

So, zwischen diesen beiden Programmen scheint es Probleme zu geben. Zum einen bekomme ich die Variable $Aid nicht gesetzt, zum anderen funktioniert die Funktion "mysql_query" mit dem Update nicht... In den einzelnen Feldern, also $Afirma oder $Avorname, steht einfach kein Wert mehr.

Wen mir jemand helfen kann, wäre ich dem sehr dankbar. Das ganze fängt an, mir die Motivation zu stehlen.
 
ich glaube Dein Problem ist bei dem WHERE .... das muss heißen "WHERE spalte='$wert' "

Du hast das vertauscht ;)


Dunsti
 
Uff, auch wenn das nicht der Fehler war :mad:, schonmal danke...

Vielleicht hilft folgendes ein wenig mehr: Die Variable "$Aid" wird
nicht mal neu gesetzt. Soll heissen, er findet garkeinen
Vergleichswert zur "id". Deswegen bin ich auch hingegangen und hab
zum einen erstmal das Anzeigen der Variable erzeugt und die im
Vorfeld neu belegt.

Nur stellt sich mir die Frage, warum ich von einer Maske in die
nächste Variabelen übernehmen kann, dann aber in's nächste Modul
keine Variabelen gesetzt sind?

Das wirklich blöde ist dabei ja auch noch, dass angeblich der
Datensatz aktualisiert wurde, den ich ausgewählt und geändert habe...

Naja, so richtig weiter komm ich einfach nicht...
 
ich hab jetzt net deinen ganzen code durchgesehen.....aber hier mal was von mir, dass ich benutze, um eine db upzudaten:
PHP:
if (isset($aendern_news)&&isset($news_id)){
		$aendern = ("update ml666_news set news = \"".$news_neu."\", ueberschrift = \"".$ueberschrift_neu."\" where news_id = \"".$news_id."\"");
		$result = mysql_query($aendern);
		if($result){echo ('<i>Änderung(en) wurde(n) durchgeführt</i>');}
		else {echo('<i>Änderung(en) konnte(n) nicht durchgeführt werden</i>');}
	}

und hier der kram aus der datei, mit der man die eingaben zur änderung macht....
PHP:
<?php
	$db = mysql_connect(XXX','XXX','XXX');
	$aktuell = mysql_select_db('XXX');
	$anweisung = "select news,ueberschrift from ml666_news where news_id = ".$news_id."";
    $result = mysql_query($anweisung);
?>

<h2>News bearbeiten</h2>

<form action="news01.php">
	<table>
		<tr>
			<td valign="top">ueberschrift: </td>
			<td><input value="<?php echo(mysql_result($result, 0, "ueberschrift"));?>" type="text" name="ueberschrift_neu" size="40" maxlength="100"></td>
		</tr>
		<tr>
			<td valign="top">news: </td>
			<td><textarea cols="50" rows="20" name="news_neu"><?php echo(mysql_result($result, 0, "news"));?></textarea></td>
		</tr>
		<tr>
			<td></td>
			<td><input type="submit" value="ändern"></td>
		</tr>
	</table>
	<input type="hidden" name="aendern_news" value="true">
	<input type="hidden" name="news_id" value="<?php echo$news_id; ?>">
</form>
	
	
<?php	
	if(mysql_errno()>0){
		echo (mysql_errno().'<br>'.mysql_error().'<br><br>');
	}
	mysql_close($db);
?>

naja ich holfe mal, das hilft etwas.....:)
vielleicht siehste da ein paar unterschiede....also der kram funzt 100 pro, das verwende ich immer wieder:)

//bad taste
 
Schön, dem werde ich mich in der nächsten Woche widmen :) Jetzt ist erst mal mein kleiner Sohn dran :)

Jepp, auch wenn's offTopic ist. Ich bin seit Mittwoch Abend Papi *freu*

Genug dem OffTopic... Ich werd mal in der nächsten Woche mir den PHP-Code vornehmen... Danke im Vorfeld
 

Neue Beiträge

Zurück