SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.10.2004, 23:41:31
garnet garnet ist offline
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!
Mit Zitat antworten
  #2  
Alt 16.10.2004, 00:12:49
garnet garnet ist offline
Anfänger
 
Registriert seit: Oct 2004
Beiträge: 7
Das mit dem DELETE funktioniert mittlerweile!
Mit Zitat antworten
  #3  
Alt 16.10.2004, 09:34:04
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
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?
Mit Zitat antworten
  #4  
Alt 16.10.2004, 09:41:32
garnet garnet ist offline
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)
Mit Zitat antworten
  #5  
Alt 16.10.2004, 09:55:28
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
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>';
?>
Mit Zitat antworten
  #6  
Alt 16.10.2004, 11:09:14
garnet garnet ist offline
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
Mit Zitat antworten
  #7  
Alt 16.03.2006, 22:07:07
tazman tazman ist offline
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>&nbsp;</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
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:24:03 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt