CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
15.10.2004, 23:41:31
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 7
|
|
Problem mit UPDATE und DELETE
Hallo,
ich kämpfe jetzt schon seit ein paar Tagen an zwei verdammt blöden Fehlern:
Der UPDATE Fehler
Ich habe Datensätze in einer Datenbank, diese lade ich dann in ein Formular, um sie ändern zu können.
Hier mein Befehl: ($id wird ins File reingeladen)
$sql="UPDATE tabelle SET (Titel, Untertitel, Tag, Monat, Jahr) VALUES ('$Titel', '$Untertitel', '$Tag', '$Monat', '$Jahr') WHERE `id`= '$id'";
$result = mysql_query($sql);
Habe diesen Befehl zumindest schon in PHP MyAdmin eingegeben und er hat so funktioniert, aber hier erzeugt er immer nur einen neuen Datensatz und ändert nicht den vorhandenen Datensatz.
Der DELETE Fehler
Hier mein Befehl: ($loe wird ins File reingeladen)
$result = "DELETE FROM 'tabelle' WHERE 'id'='$loe'";
$queryloe = mysql_query($result);
Bei dem Befehl tut sich rein gar nichts! Ich weiß mir leider einfach nicht mehr zu helfen.
Ich hoffe, dass mir hier der ein oder andere helfen kann.
lg und schönes Wochenende an alle!
|
16.10.2004, 00:12:49
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 7
|
|
Das mit dem DELETE funktioniert mittlerweile!
|
16.10.2004, 09:34:04
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Re: Problem mit UPDATE und DELETE
Zitat:
Original geschrieben von garnet
Code:
$sql="UPDATE tabelle SET (Titel, Untertitel, Tag, Monat, Jahr) VALUES ('$Titel', '$Untertitel', '$Tag', '$Monat', '$Jahr') WHERE `id`= '$id'";
$result = mysql_query($sql);
[...]
aber hier erzeugt er immer nur einen neuen Datensatz und ändert nicht den vorhandenen Datensatz.
|
Eine UPDATE-Anweisung wird keinen neuen Datensatz erstellen. Entweder der Datensatz existierte vorher schon, ohne dass du es gemerkt hast oder der UPDATE-Befehl steht in einem Zweig einer if-Abfrage, in der in dem anderen Zweig eine INSERT-Anweisung steht. Dann würde hier wohl der INSERT-Zweig ausgeführt werden.
Zitat:
Das mit dem DELETE funktioniert mittlerweile!
|
Woran lag es?
|
16.10.2004, 09:41:32
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 7
|
|
Zitat:
Eine UPDATE-Anweisung wird keinen neuen Datensatz erstellen. Entweder der Datensatz existierte vorher schon, ohne dass du es gemerkt hast oder der UPDATE-Befehl steht in einem Zweig einer if-Abfrage, in der in dem anderen Zweig eine INSERT-Anweisung steht. Dann würde hier wohl der INSERT-Zweig ausgeführt werden.
|
Es steht weit und breit kein INSERT Befehl, er erstellt nur einen zusätzlichen Datensatz und das offensichtlich über den UPDATE Befehl.
Habe den Befehl jetzt in diesen hier geändert, da ich das wo im Web gefunden habe, aber mit dem tut sich jetzt gar nichts mehr, es ändert sich nichts, aber es erstellt sich auch kein neuer Datensatz mehr
PHP-Code:
$sql = "
UPDATE
tabelle
SET
Titel = '$Titel',
Untertitel = '$Untertitel',
Tag = '$Tag',
Monat = '$Monat',
Jahr = '$Jahr',
WHERE
`id`='$id'";
Woran das mit dem DELETE lag, weiß ich nicht so genau, ich hab die Form ein wenig verändert und jetzt klappts.
$result = "DELETE FROM `tabelle` WHERE `id`='$id' LIMIT 1";
Geändert von garnet (16.10.2004 um 09:43:47 Uhr)
|
16.10.2004, 09:55:28
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Zitat:
Original geschrieben von garnet
PHP-Code:
$sql = "
UPDATE
tabelle
SET
Titel = '$Titel',
Untertitel = '$Untertitel',
Tag = '$Tag',
Monat = '$Monat',
Jahr = '$Jahr',
WHERE
`id`='$id'";
|
So sieht die Syntax für einen UPDATE-Befehl auch eigentlich aus. Natürlich musst du Spaltennamen etc. an deine Tabelle anpassen. Existiert denn überhaupt ein Datensatz in deiner Tabelle, bei dem die Spalte id den Wert hat, der in der Variablen $id steht?
Es ist immer sehr hilfreich, sich die MySQL-Anweisung anzeigen zu lassen und mysql_error() zu benutzen:
PHP-Code:
<?php
$sql = "UPDATE
`tabelle`
SET
`spalte1` = '$wert1',
`spalte2` = '$wert2'
WHERE
`id` = '{$id}'";
mysql_query($sql) or die(mysql_error());
print '<pre>';
print_r($sql);
print '</pre>';
?>
|
16.10.2004, 11:09:14
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 7
|
|
Eigentlich existiert alles, $id wird in die Seite über .php?id=wert reingeladen.
Aber ich werds halt so mal probieren, aber eigentlich bin ich schon alles hundert mal durchgegangen, aber ich konnte auch keinen Fehler in der Struktur finden.
lg
|
16.03.2006, 22:07:07
|
Anfänger
|
|
Registriert seit: Mar 2006
Beiträge: 1
|
|
AW: Problem mit UPDATE und DELETE
Also, so langsam dreh ich wegen diesem UPDATE Problem auch durch. Bin sonst ein zurückhaltender Mensch, der immer sehr viel versucht, bevor er um Hilfe fragt (jetzt eine ganze Woche nonstop). Jetzt reichts! (Sag mir bitte niemand mehr; Hast Du schon die Suchfunktion ausprobiert? - Habe seit einer Woche jedes Manual, jede Webseite und jedes Forum durchelesen zu dem Thema und wurde nirgends fündig.
MySQL ist Version c. 3.23
PHP Version ca. 4.4
Mein Code:
$db = mysql_connect("localhost","benutzer","passwort");
mysql_select_db("datenbank",$db);
(alle Werte ersetzt aber gültig, da in selbem Script durch andere Funktionen erwiesen)
Mein $sql (mit allen Tables, Primarykey auf ArtNr ):
$sql="UPDATE artikel SET ArtName='{$_POST['ArtName']}',
ArtText='{$_POST['ArtText']}', BestNr='{$_POST['BestNr']}',
ArtPreis='{$_POST['ArtPreis']}', ArtGrNr='{$_POST['ArtGrNr']}',
ArtUGrNr='{$_POST['ArtUGrNr']}' WHERE ArtNr='{$_POST['ArtNr']}'";
$result=mysql_query($sql,$db) or die ("MySQL - Fehler mit: <br>$sql<br>" . mysql_error());
Sämtliche Variablen sind mit dem gefüllt, was sie sollten, vorgängig schon hundertem male mit echo geprüft!
NICHTS geht mit UPDATE. Das ganze Programm scheint problemlos zu funktionieren, nur immer diese UPDATES gehen nicht! Auch wenn ich die innere Schicht Marken rausnehme, die _POST's durch vorgehend zugewiesene Variablen ersetze.. kann weder ein reserviertes Wort finden noch sonst ein Problem. Es geht einfach nicht und gibt nichtmal eine Fehlermeldung, wird einfach immer übergangen. Dass selbe script hat übrigens vor etwa 5 Jahren mal noch funktioniert! (vermutlich ältere PHP-Version)
Das (php-Kleid), in welches diese Abfrage eingebettet ist:
(zuerst ein paar HTML Einleitungsfunktionen und dann:)
PHP-Code:
<?php
//error_reporting(E_ALL);
//Verbindung zu MySQL und zur Datenbank datenbank als benutzer am lokalen Rechner aufbauen
$db = mysql_connect("localhost","benutzer","passwort");
mysql_select_db("datenbank",$db);
//Datensaetze Loeschen
if($_GET[clear]) mysql_query("DELETE FROM artikel WHERE ArtNr='$_GET[clear]'",$db);
//Datensaetze veraendern
if ($_GET[edit]) {
if ($_POST[ArtText]) {
$sql="UPDATE artikel SET ArtName='{$_POST['ArtName']}',
ArtText='{$_POST['ArtText']}', BestNr='{$_POST['BestNr']}',
ArtPreis='{$_POST['ArtPreis']}', ArtGrNr='{$_POST['ArtGrNr']}',
ArtUGrNr='{$_POST['ArtUGrNr']}' WHERE ArtNr='{$_POST['ArtNr']}'";
$result=mysql_query($sql,$db) or die ("MySQL - Fehler mit: <br>$sql<br>" . mysql_error());
} else {
$sql = "SELECT * FROM artikel WHERE ArtNr='$_GET[edit]'";
$result = mysql_query($sql,$db);
$data = mysql_fetch_array($result);
?>
<form method="post" action="<? echo $PHP_SELF ?>">
<input type="text" name="ArtNr" value="<? echo $data[ArtNr] ?>">
<table border="0" align="center">
<tr>
<td>ArtName</td>
<td><input type="text" name="ArtName" value="<? echo $data[ArtName] ?>" size="50"></td>
</tr>
<tr>
<td>ArtText</td>
<td><textarea name="ArtText" value='' cols="50" rows="10"><? echo $data[ArtText] ?></textarea></td>
</tr>
<tr>
<td>BestNr</td>
<td><input type="text" name="BestNr" value='<? echo $data[BestNr] ?>' size="50"></td>
</tr>
<tr>
<td>ArtPreis</td>
<td><input type="text" name="ArtPreis" value='<? echo $data[ArtPreis] ?>' size="50"></td>
</tr>
<tr>
<td>ArtGrNr</td>
<td><input type="text" name="ArtGrNr" value='<? echo $data[ArtGrNr] ?>' size="50"></td>
</tr>
<tr>
<td>ArtUGrNr</td>
<td><input type="text" name="ArtUGrNr" value='<? echo $data[ArtUGrNr] ?>' size="50"></td>
</tr>
<tr>
<td> </td>
<td><a href="<? echo ''.$PHP_SELF.'?edit='.$data[ArtNr].'' ?>">SUBMIT</a></td>
//<td><input type="submit" name="submit" value="submit"></td>
</tr>
</table>
</form>
<?
}
}
//Daten auslesen
$result = mysql_query("SELECT * FROM artikel order by ArtNr DESC",$db);
?>
<table border="1" cellpadding="0" cellspacing="2" width="390">
<tr>
<td width="50"><h1>Art.Nr.:</h1></td>
<td width="440"><h1>Artikel-Name</h1></td>
<td width="55"></td>
<td width="55"></td>
</tr>
<? while ($daten = mysql_fetch_array($result)) { ?>
<tr>
<td width="50"><? echo $daten[ArtNr]; ?></td>
<td width="440"><? echo $daten[ArtName]; ?></td>
<td width="55"><a href="<? echo ''.$PHP_SELF.'?clear='.$daten[ArtNr].'' ?>"><img src="../bilder/muell1.gif"></a></td>
<td width="55"><a href="<? echo ''.$PHP_SELF.'?edit='.$daten[ArtNr].'' ?>">bearbeiten</a></td>
</tr>
<? } ?>
</table>
</div>
</body>
</html>
Geändert von tazman (16.03.2006 um 22:14:09 Uhr)
Grund: blöder Umbruch
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:24:03 Uhr.
|