| SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |
|

20-10-2004, 15:31
|
|
Vegeta_D2
Newbie
|
|
Registriert seit: Oct 2004
Beiträge: 12
|
|
Update-Problem mit MySQL
Ich mach grad eine Homepage für nen Verein. Dort hab ich eine Mitgliederliste, die von ner MySQL Datenbank hergeholt wird. Dann hab ich für den Präsidenten eine Änderungsseite der Liste eingerichtet (Nätürlich mit Passwortschutz). Dort kann er einen einzelnen Datensatz auswählen und nachher auf einen Button klicken, welcher ihm dann die einzelnen Daten dieses Datensatzes in Editfelder reinschreibt. Dort kann er dann die einzelnen Daten ändern. Soweit bin ich gekommen. Dann soll er durch einen weiteren Klick (wenn er die Änderungen vorgenommen hat) den veränderten Datensatz in der Datenbank "updaten". Nur das funktioniert nicht richtig. Ich verwende dazu den Befehl "update". Eigentlich müsste alles gehen. Hab echt keinen Fehler gesehn. Kann mir wer helfen????
Hier der Quellcode:
PHP-Code:
elseif ($HTTP_POST_VARS["waehlen"]=="Wählen")
{
if (is_array($ID))
{
while (list($key,$value) = each($ID))
{
$sql = "SELECT * FROM vorstand WHERE `Id` = '$value'";
$Resultat=mysql_query($sql, $mdb);
if (!$Resultat) die("Anfrage war nicht erfolgreich");
//Daten in Tabelle ausgeben:
while ($zeile=mysql_fetch_array($Resultat))
{
//$Resultat=mysql_query($sql, $mdb) or die("Anfrage schlug fehl! Fehler: "
// ."<li>errorno=".mysql_errno()
// ."<li>error=".mysql_error()
// ."<li>query=".$query
// );
?>
<tr>
<td height="40" align="left" valign="top">Nummer:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="ID2" Readonly value="<?=$value?>" Size=30 Maxlength=30></input></td>
<td><Input Type="submit" name="aendern" value="Ändern"></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Firma:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Firma2" value="<?=$zeile[Firma]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Zweck:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Zweck2" value="<?=$zeile[Zweck]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Vorname:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Vorname2" value="<?=$zeile[Vorname]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Name:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Name2" value="<?=$zeile[Name]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Strasse:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Strasse2" value="<?=$zeile[Strasse]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Postfach:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Postfach2" value="<?=$zeile[Postfach]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">PLZ:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="PLZ2" value="<?=$zeile[PLZ]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Ort:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Ort2" value="<?=$zeile[Ort]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Telefon:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Telefon2" value="<?=$zeile[Telefon]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Telefax:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Telefax2" value="<?=$zeile[Telefax]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">E-Mail:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Email2" value="<?=$zeile[Email]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Internet:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Internet2" value="<?=$zeile[Internet]?>" Size=30 Maxlength=30></input></td>
</tr>
<tr>
<td height="40" align="left" valign="top">Status:</td>
<td height="40" align="left" valign="top"><Input Type="text" Name="Status2" value="<?=$zeile[Status]?>" Size=30 Maxlength=30></input></td>
</tr>
<?php
}
}
}
}
elseif ($HTTP_POST_VARS["aendern"]=="Ändern")
{
$Value = $HTTP_POST_VARS["ID2"];
$Firma = $HTTP_POST_VARS["Firma2"];
$Zweck = $HTTP_POST_VARS["Zweck2"];
$Vorname = $HTTP_POST_VARS["Vorname2"];
$Name = $HTTP_POST_VARS["Name2"];
$Postfach = $HTTP_POST_VARS["Postfach2"];
$Strasse = $HTTP_POST_VARS["Strasse2"];
$PLZ = $HTTP_POST_VARS["PLZ2"];
$Ort = $HTTP_POST_VARS["Ort2"];
$Telefon = $HTTP_POST_VARS["Telefon2"];
$Telefax = $HTTP_POST_VARS["Telefax2"];
$Email = $HTTP_POST_VARS["Email2"];
$Internet = $HTTP_POST_VARS["Internet2"];
$Status = $HTTP_POST_VARS["Status2"];
$sql = "Update `vorstand` SET ( `Id` , `Firma` , `Zweck` ,
`Vorname` , `Name` , `Strasse` , `Postfach` , `PLZ` , `Ort` ,
`Telefon` , `Telefax` , `Email` , `Internet` , `StatusM` ) VALUES
('', '$Firma', '$Zweck', '$Vorname', '$Name', '$Strasse', '$Postfach',
' $PLZ', '$Ort', '$Telefon', '$Telefax', '$Email', '$Internet', '$Status')";
$Resultat=mysql_query($sql, $mdb);
$sql = "SELECT * FROM vorstand ORDER BY `Firma`";
$Resultat=mysql_query($sql, $mdb);
if (!$Resultat) die ("Anfrage war nicht erfolgreich");
while ($zeile=mysql_fetch_array($Resultat))
{
?>
<tr>
<td><input type=checkbox name="ID[]" value="<?=$zeile[Id]?>"></td>
<td height="40" align="left" valign="top"><?=$zeile[Firma]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Zweck]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Vorname]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Name]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Strasse]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Postfach]?></td>
<td height="40" align="left" valign="top"><?=$zeile[PLZ]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Ort]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Telefon]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Telefax]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Email]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Internet]?></td>
<td height="40" align="left" valign="top"><?=$zeile[StatusM]?></td>
</tr>
So müsste das dann ausschaun:
http://lsvr02.kanti-frauenfeld.ch/~fgeiger/vorstand.jpg
http://lsvr02.kanti-frauenfeld.ch/~f.../vorstand2.jpg
Edit: Sorry, dass das ganze so breit is. Werde die Bilder noch verkleinern
Geändert von wahsaga (20-10-2004 um 15:39 Uhr)
|

20-10-2004, 15:36
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
ich kann mir nicht helfen, aber auf http://dev.mysql.com/doc/mysql/en/UPDATE.html sieht das anders aus
mach bitte mal
PHP-Code:
$Resultat=mysql_query($sql, $mdb) or die(mysql_error());
statt
PHP-Code:
$Resultat=mysql_query($sql, $mdb);
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

20-10-2004, 15:52
|
|
Vegeta_D2
Newbie
|
|
Registriert seit: Oct 2004
Beiträge: 12
|
|
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '( `Id` , `Firma` , `Zweck` ,`Vorname` , `Name` , `Strasse` , ......
|

20-10-2004, 15:53
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
ich würde wetten, dass es da richtig steht
man könnte sich da zwecks korrekter syntax informieren...
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

20-10-2004, 16:22
|
|
Wendel
Junior Member
|
|
Registriert seit: May 2004
Beiträge: 117
|
|
PHP-Code:
$sql = "Update `vorstand` SET ( `Id` , `Firma` , `Zweck` ,
`Vorname` , `Name` , `Strasse` , `Postfach` , `PLZ` , `Ort` ,
`Telefon` , `Telefax` , `Email` , `Internet` , `StatusM` ) VALUES
('', '$Firma', '$Zweck', '$Vorname', '$Name', '$Strasse', '$Postfach',
' $PLZ', '$Ort', '$Telefon', '$Telefax', '$Email', '$Internet', '$Status')";
Du musst ihm schon sagen wen er updaten soll.
und den vorstand brauch man glaube ich nicht in ` setzen.
WHERE id =$_POST['ID'] würde ich einfach mal hintendran hängen.
Soll in id nix geschriebn werden? würde ich raus nehmen aus dem Update, weil so schreibt er nen leerstring rein.
Wenn er das bei allen macht kannste sie über die id nich mehr unterscheiden!
|

20-10-2004, 18:10
|
|
Vegeta_D2
Newbie
|
|
Registriert seit: Oct 2004
Beiträge: 12
|
|
Ich habs jetzt so:
PHP-Code:
$sql = "UPDATE vorstand SET Firma='$Firma', Zweck='$Zweck',
Vorname='$Vorname', Name='$Name', Strasse='$Strasse',
Postfach='$Postfach', PLZ='$PLZ', Ort='$Ort', Telefon='$Telefon',
Telefax='$Telefax', Email='$Email', Internet='$Internet', StatusM='$Status'
WHERE Id ='$value'";
Aber jetzt passiert gar nix mehr... Keine Meldung, keine Veränderung der Daten, nix
|

21-10-2004, 09:32
|
|
Wendel
Junior Member
|
|
Registriert seit: May 2004
Beiträge: 117
|
|
Keine Fehlermeldung? siehe mrhappiness (mysql_error).
In Deinen POST_ Variablen steht was?
Lass Dir die mal ausgeben.
Und lass mal die ganzen Hochkommas weg (Firma=$Firma).
Wendel
|

21-10-2004, 09:35
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
Zitat:
Original geschrieben von Wendel
Und lass mal die ganzen Hochkommas weg (Firma=$Firma).
|
ich würd sie stehen lassen, da ich nicht davon ausgehe, dass es sich immer nur um zahlen handelt...
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

21-10-2004, 11:57
|
|
Wendel
Junior Member
|
|
Registriert seit: May 2004
Beiträge: 117
|
|
@mrhappiness Si Claro
Geändert von Wendel (21-10-2004 um 11:59 Uhr)
|

21-10-2004, 12:51
|
|
Vegeta_D2
Newbie
|
|
Registriert seit: Oct 2004
Beiträge: 12
|
|
Die Variabeln hab ich mri ausgeben lassen. Da steht definitiv alles richtig. Eine Fehlermeldung mit mysql_error gibts auch keine. Es passiert einfach nix...
|

21-10-2004, 12:53
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
lass dir mal das statement mit echo ausgeben und poste es hier
den php-code dazu bitte auch
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

21-10-2004, 16:59
|
|
Vegeta_D2
Newbie
|
|
Registriert seit: Oct 2004
Beiträge: 12
|
|
bitte nicht auslachen, aber..... welches statement?
|

21-10-2004, 17:05
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
|
bitte nicht auslachen, aber..... welches statement?
|
das sql-statement, welches du an die db sendest, praktisch der inhalt von $sql, einfach ein echo davorsetzen, ...
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

21-10-2004, 17:16
|
|
Vegeta_D2
Newbie
|
|
Registriert seit: Oct 2004
Beiträge: 12
|
|
PHP-Code:
$Value = $HTTP_POST_VARS["ID2"];
$Firma = $HTTP_POST_VARS["Firma2"];
$Zweck = $HTTP_POST_VARS["Zweck2"];
$Vorname = $HTTP_POST_VARS["Vorname2"];
$Name = $HTTP_POST_VARS["Name2"];
$Postfach = $HTTP_POST_VARS["Postfach2"];
$Strasse = $HTTP_POST_VARS["Strasse2"];
$PLZ = $HTTP_POST_VARS["PLZ2"];
$Ort = $HTTP_POST_VARS["Ort2"];
$Telefon = $HTTP_POST_VARS["Telefon2"];
$Telefax = $HTTP_POST_VARS["Telefax2"];
$Email = $HTTP_POST_VARS["Email2"];
$Internet = $HTTP_POST_VARS["Internet2"];
$Status = $HTTP_POST_VARS["Status2"];
$sql = "UPDATE vorstand SET Firma='$Firma', Zweck='$Zweck',
Vorname='$Vorname', Name='$Name', Strasse='$Strasse',
Postfach='$Postfach', PLZ='$PLZ', Ort='$Ort', Telefon='$Telefon',
Telefax='$Telefax', Email='$Email', Internet='$Internet', StatusM='$Status'
WHERE Id ='$value'";
echo($sql);
$Resultat=mysql_query($sql, $mdb) or die (mysql_error());
$sql = "SELECT * FROM vorstand ORDER BY `Firma`";
$Resultat=mysql_query($sql, $mdb);
if (!$Resultat) die ("Anfrage war nicht erfolgreich");
while ($zeile=mysql_fetch_array($Resultat))
{
?>
<tr>
<td><input type=checkbox name="ID[]" value="<?=$zeile[Id]?>"></td>
<td height="40" align="left" valign="top"><?=$zeile[Firma]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Zweck]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Vorname]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Name]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Strasse]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Postfach]?></td>
<td height="40" align="left" valign="top"><?=$zeile[PLZ]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Ort]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Telefon]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Telefax]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Email]?></td>
<td height="40" align="left" valign="top"><?=$zeile[Internet]?></td>
<td height="40" align="left" valign="top"><?=$zeile[StatusM]?></td>
</tr>
Es kam folgendes:
UPDATE vorstand SET Firma='Brenner AG Tägerwilen', Zweck='Bedachungen, Fassaden-, Holz- und Gerüstbau', Vorname='Erwin', Name='Brenner', Strasse='Konstanzerstr. 14', Postfach='Postfach 14', PLZ='8274', Ort='Tägerwilen', Telefon='071 669 30 55', Telefax='071 669 30 56', Email='taegerwilen@brenner-ag.ch', Internet='www.brenner-ag.ch', StatusM='' WHERE Id =''
Geändert von Vegeta_D2 (21-10-2004 um 17:18 Uhr)
|

21-10-2004, 17:21
|
|
Vegeta_D2
Newbie
|
|
Registriert seit: Oct 2004
Beiträge: 12
|
|
Alles klar.... Ich habs ^^
WHERE Id ='$value'"; da hätte ich value gross schreiben müssen....
Danke erstmal
Neues Problem: Die Datensätze, die ich geändert hab, kommen jetzt vor allen anderen. Das heisst: Der ORDER BY Befehl funktioniert nicht mehr richtig. Kennt ihr das Problem?
Geändert von Vegeta_D2 (21-10-2004 um 17:40 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|