php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.09.2006, 12:54  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard update sql anweisung - problem

Hi Jungs (und mädls),

ich habe folgenden Code:

Code:
<?
error_reporting(E_ALL);
include("db_connect.php");

if($submit)
{
$sql = "UPDATE newsdata SET titel='".$ueber."', textkurz='".$vorschautext."', textlang='".$artikeltext."' WHERE titel='".$_GET['newstoedit']."'";
mysql_query ($sql) or die(mysql_error());
}

echo "Sie bearbeiten: ".$_GET['newstoedit'];

include("db_connect.php");
$sql = "select textkurz, textlang, sonstiges from newsdata where titel='".$_GET['newstoedit']."'";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
?>
<html>
<head><title>Upload in Datenbank</title>
</head>
<body>
<form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="sent" value="1">
  


    <input name="ueber" type="text" id="ueber" value="<? print $_GET['newstoedit']; ?>" size="50" maxlength="50"> 
  &Uuml;berschrift</p>
  


<input name="vorschautext" cols="50" id="vorschautext" value="<? print $row['textkurz']; ?>" maxlength="250">    
Vorschautext</p>
  


<input name="artikeltext" cols="50" id="artikeltext" value="<? print $row['textlang'] ?>" maxlength="100000">
Artikeltext</p>
  


    <input name="bild" type="file" id="bild" size="50">
    

    

    <input name="submit" type="submit" value="Bekannt geben">
    <input name="reset" type="reset" value="alles l&ouml;schen">
</p>
  </form>
</body>
</html>

<?
}
print "
";
print "<a href=\"news_edit.php\">zurück zur Übersicht</a>";
?><?
error_reporting(E_ALL);
include("db_connect.php");

if($submit)
{
$sql = "UPDATE newsdata SET titel='".$ueber."', textkurz='".$vorschautext."', textlang='".$artikeltext."' WHERE titel='".$_GET['newstoedit']."'";
mysql_query ($sql) or die(mysql_error());
}

echo "Sie bearbeiten: ".$_GET['newstoedit'];

include("db_connect.php");
$sql = "select textkurz, textlang, sonstiges from newsdata where titel='".$_GET['newstoedit']."'";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
?>
<html>
<head><title>Upload in Datenbank</title>
</head>
<body>
<form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="sent" value="1">
  


    <input name="ueber" type="text" id="ueber" value="<? print $_GET['newstoedit']; ?>" size="50" maxlength="50"> 
  &Uuml;berschrift</p>
  


<input name="vorschautext" cols="50" id="vorschautext" value="<? print $row['textkurz']; ?>" maxlength="250">    
Vorschautext</p>
  


<input name="artikeltext" cols="50" id="artikeltext" value="<? print $row['textlang'] ?>" maxlength="100000">
Artikeltext</p>
  


    <input name="bild" type="file" id="bild" size="50">
    

    

    <input name="submit" type="submit" value="Bekannt geben">
    <input name="reset" type="reset" value="alles l&ouml;schen">
</p>
  </form>
</body>
</html>

<?
}
print "
";
print "<a href=\"news_edit.php\">zurück zur Übersicht</a>";
?>
Das ganze dient zum editieren von News.
Nun ist es allerdings so, dass ich, wenn ich auf "submit" drücke somit die $_GET['newstoedit'] nicht mehr habe.

In der $_GET['newstoedit'] befindet sich zur Zuordnung der News der Titel.
Wenn ich jedoch mit dem oben genannten Code den Titel ändere so kann die obere SQL Anweisung die entsprechende News nicht mehr zuordnen die "geupdatet" werden soll bzw. ist ab dem Zeitpunkt in dem ich submit drücke, für das Script eh nicht mehr klar welche Zeile in der Tabelle newsdata geupdatet werden soll.

Habt Ihr vllt einen Lösungsansatz für mich?
Mach!N3 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.09.2006, 13:01  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

1. Nimm bitte die PHP-Tags, damit der Code ordentlich angezeigt wird.
2. Wenn das nicht nur durch die Anzeige verbockt wurde, dann rücke den Code mal ein, dass man ihn auch lesen kann.

Hierzu editiere doch bitte mal Dein obiges Posting. Ein neuer Beitrag dazu ist unnötig.

3. Scheinbar hast Du schon mal was von $_GET bzw. register_globals gehört. Bei $submit hast Du es aber wohl schlagartig vergessen.

4. Wenn Du vor der Ausgabe des Form ein $_GET['newstoedit'] hast, und auch nach dem Abschicken wieder haben willst, warum packst Du es nicht einfach in das Form mit rein. Wie das mit hidden-Fields funktioniert, hast Du ja offensichtlich auch schonmal gesehen und verwendest es auch schon.
Dass das Ding dann nicht in $_GET liegt, sondern in $_POST, sollte ja nicht so schlimm sein.

Ansonsten versteh ich grad net, wo das Problem liegt.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 09.09.2006, 13:25  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

Danke für Deine Antwort.

Das mit den hidden-fields ist mir leider nicht so bewusst.

Kannst Du mir vllt bitte mit einem Code weiterhelfen?
Mach!N3 ist offline  
Alt 09.09.2006, 13:35  
Erfahrener Benutzer
 
Benutzerbild von zwerg
 
Registriert seit: 12.08.2005
Beiträge: 437
zwerg
Standard

PHP-Code:
<form action="<? echo $PHP_SELF?>?newstoedit=<? echo " ".$_GET['newstoedit']." ";?>" method="post" enctype="multipart/form-data">
Du musst an den Teil "action" auch $_GET['mewstoedit'] dranhängen...
zwerg ist offline  
Alt 09.09.2006, 14:09  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Mach!N3
Danke für Deine Antwort.

Das mit den hidden-fields ist mir leider nicht so bewusst.

Kannst Du mir vllt bitte mit einem Code weiterhelfen?
Na das da ist ja aus Deinem Form:
Code:
<input type="hidden" name="sent" value="1">
Die 1 ist dann in $_POST['sent'] zu finden.

Sowas kannst du auch ganz einfach nochmal reinpacken:

PHP-Code:
input <type="hidden" 'name="newtoedit" value="'.$_GET['newstoedit'].'">' 
Natürlich noch richtig als PHP verpacken...

Wie zwerg schon geschrieben hat, kannst Du auch das Ding an action="" anhängen. Dann ist es auch nach Abschicken mit submit in $_GET[] und nicht in $_POST[].
Der_Gerhard ist offline  
Alt 09.09.2006, 17:46  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

Hi again,

sorry, dass ich erst jetzt zurückschreibe aber bei dem schönen Wetter musste ich einfachh mit meeiner Kleinen Tochter raus.

Also hier ist mal das Script (absolut im Aufbau noch gell) zum Testen:

http://web1.vs159021.vserver.de/scri...adminpanel.htm

Es geht wie gesagt konkret um die Funktion "News editieren" (news_edit.php). Dort hat man dann eine Auswahl der Überschriften der bisher veröffentlichten News. Wählt man eine aus kommt man zum editier Bildschirm (edit_focus.php).
Ändert man nun etwas, so wird die Änderung nicht übernommen.
Konkret liegt mein Verständnissproblem also in der edit_focus.php. Das ist die Datei die nach der Auswahl der Überschrift verwendet wird.

Hier die momentanen Codes:

news_edit.php:


Code:
<?php
include("db_connect.php");
$sql = "select titel from newsdata order by id";
$result = mysql_query($sql) or die(mysql_error());
print("Gewünschte Neuigkeit wählen um editieren zu können:");

while($row = mysql_fetch_assoc($result))
{
print "
";
print "<a href=\"edit_focus.php?newstoedit=".$row['titel']."\">";
print $row['titel'];
print "</a>";
}
?>
edit_focus.php:
Code:
<?
error_reporting(E_ALL);
include("db_connect.php");

if($submit)
{
$sql = "UPDATE newsdata SET titel='".$ueber."', textkurz='".$vorschautext."', textlang='".$artikeltext."' WHERE titel='".$_GET['newstoedit']."'";
mysql_query ($sql) or die(mysql_error());
}

echo "Sie bearbeiten: ".$_GET['newstoedit'];

include("db_connect.php");
$sql = "select textkurz, textlang, sonstiges from newsdata where titel='".$_GET['newstoedit']."'";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
?>
<html>
<head><title>Upload in Datenbank</title>
</head>
<body>
<form action="<? echo $PHP_SELF; ?>?newstoedit=<? echo " ".$_GET['newstoedit']." ";?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="sent" value="1">
  


    <input name="ueber" type="text" id="ueber" value="<? print $_GET['newstoedit']; ?>" size="50" maxlength="50"> 
  &Uuml;berschrift</p>
  


<input name="vorschautext" cols="50" id="vorschautext" value="<? print $row['textkurz']; ?>" maxlength="250">    
Vorschautext</p>
  


<input name="artikeltext" cols="50" id="artikeltext" value="<? print $row['textlang'] ?>" maxlength="100000">
Artikeltext</p>
  


    <input name="bild" type="file" id="bild" size="50">
    

    

    <input name="submit" type="submit" value="Bekannt geben">
    <input name="reset" type="reset" value="alles l&ouml;schen">
</p>
  </form>
</body>
</html>

<?
}
print "
";
print "<a href=\"news_edit.php\">zurück zur Übersicht</a>";
?>
Und wie gesagt Jungs, oben habt Ihr den Link um das Script mal zu testen.
Die Änderungen beim editieren werden nicht übernommen.
Für Euren Rat wäre ich Euch dankbar.

Gruß
Mach!N3 ist offline  
Alt 09.09.2006, 18:44  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

Nun klappts!

Danke an Euchh alle!

hier nochmal der Code:

edit_focus:
Code:
<?
include("db_connect.php");
if($submit)
{
$sql = "UPDATE newsdata SET titel='".$ueber."', textkurz='".$vorschautext."', textlang='".$artikeltext."' WHERE id='".$_POST['identify']."'";
mysql_query ($sql);
}



include("db_connect.php");
$sql = "select titel, textkurz, textlang, sonstiges from newsdata where id='".$_GET['newstoedit']."'";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
?>
<html>
<head><title>Upload in Datenbank</title>
</head>
<body>
<form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="sent" value="1">
<input type="hidden" name="identify" value="<? print $_GET['newstoedit']; ?>">
  


    <input name="ueber" type="text" id="ueber" value="<? print $row['titel']; ?>" size="50" maxlength="50"> 
  &Uuml;berschrift</p>
  


<input name="vorschautext" cols="50" id="vorschautext" value="<? print $row['textkurz']; ?>" maxlength="250">    
Vorschautext</p>
  


<input name="artikeltext" cols="50" id="artikeltext" value="<? print $row['textlang'] ?>" maxlength="100000">
Artikeltext</p>
  


    <input name="bild" type="file" id="bild" size="50">
    

    

    <input name="submit" type="submit" value="Bekannt geben">
    <input name="reset" type="reset" value="alles l&ouml;schen">
</p>
  </form>
</body>
</html>

<?
}
print "
";
print "<a href=\"news_edit.php\">zurück zur Übersicht</a>";
?>
Mach!N3 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Update taucher PHP Tipps 2008 6 01.07.2008 05:50
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
db update problem annaloga PHP Tipps 2006 4 11.06.2006 22:25
datenbank update via install.php problem annaloga Datenbanken 6 31.05.2006 10:59
PHP MySQL Problem Stephan75 PHP Tipps 2006 10 21.05.2006 19:58
Problem mit Header-Senden und DB-Zugriff ajo_silent PHP-Fortgeschrittene 14 02.05.2006 13:12
[Erledigt] Update mit Select Anweisung verknüpfen Datenbanken 3 12.09.2005 16:37
problem mit UPDATE query nautiluS Datenbanken 4 17.03.2005 10:22
[Erledigt] Problem mit UPDATE Datenbanken 3 22.02.2005 17:47
Update Problem beim zurück schreiben... PHP Tipps 2005 3 09.02.2005 12:50
Update per Cronjob (where Feld = Wort) Apfeltyp PHP Tipps 2004-2 3 14.12.2004 18:25
[Erledigt] Select &amp;amp;amp; Update Syntax Problem! Datenbanken 3 14.12.2004 18:17
Problem mit Update (If schleife?!) Datenbanken 3 11.12.2004 23:08
[Erledigt] UPDATE Syntax problem Datenbanken 6 17.08.2004 16:18
mysql !!! Update problem!!! PHP Tipps 2004 2 18.07.2004 20:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql update submit, submit sql update post with input, sql update set input, sql update values, php sql update post, update sql input submit, update value code, php sql update set where, sql update type, update sql select, sql update anweisung zuordnen, subit update sql datenbank, sql select submit update sql, sql update mehr input, enctype=\multipart/form-data\ update sql, sql update input value, sql update input, input text in sql schreiben update, sql update mit multipart/form-data, php sql update where

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.