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

29-11-2003, 12:22
|
DeadNovum
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 72
|
|
Datensatz löschen
habe folgendes Script geschrieben:
<html>
<form action="<?=$PHP_SELF?>" method="post">
<p>ID der zu löschenden News:<br />
<textarea name="delete_news" rows="5" cols="5" wrap>
</textarea><br />
<input type="submit" name="loeschen" value="Löschen" />
</p>
</form>
<a href="index.php">Index</a>
</html>
<?php
include("config.php");
$connect= @mysql_connect($dbserver,$dbuser,$dbpass);
mysql_select_db($dbname,$connect);
if ($loeschen == "Löschen") {
$sql = "DELETE FROM news WHERE ID=$delete_news";
if (@mysql_query($sql))
echo "News gelöscht";
else
echo "PECH GEHABT, FEHLER IM SCRIPT!!!";
}
exit();
?>
ich hab keine ahnung, warum es nicht funzt. ichhab es mir schon ein paar mal durchgelesen und finde keinen fehler. Mein server bringt mir auch keine Fehlermeldung, noch wertet er mir einen echo befehl aus. kann mir einer helfen?
|

29-11-2003, 12:49
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
1. Du arbeitest mit register_globals = on -> das is nich gut.
2. frage nicht den wert des buttons ab, wenn Du den änderst is deine abfrgae auch weg
3. ne ID in einer Textarea??? wasn Das?
4. benutze mal mysql_error()
5. das @verhindert die ausgabe wichtiger informationen und sollte nur benutzt werden wenns absolut gewollt ist und nicht nur aus schönheitsgründen
6. benutze nicht <?= sondern <?php echo
7. $PHP_SELF siehe 1.
etc.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

29-11-2003, 12:53
|
DeadNovum
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 72
|
|
ich hab keine ahnun, was register globals = on bedeudet.
in meinem buch steht, dass ich das so schreiben soll.
ich denke, dass das so funktionieren soll:
zahl in Textarea => zahl wird in script übertragen
wenn klick auf löschen => lösche datensatz mit der in Textarea eingefügten nummer.
|

29-11-2003, 12:54
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
dann kauf Dir mal ein neues Buch
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

29-11-2003, 12:55
|
DeadNovum
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 72
|
|
die sind teuer und ich hab keine ahnung, welches gut und leicht zu verstehen ist.
|

29-11-2003, 12:57
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
von Hanser 49,90 oder einfach nur das manual lesen
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

29-11-2003, 13:00
|
DeadNovum
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 72
|
|
ich will aber jetzt wissen, was ich falsch gemacht hab und nicht erst in 5 wochen, wenn ich genug kohle zusammgekratzt hab, damit ich mir das buch kaufen kann und meinen fehler immer noch nicht finde.
|

29-11-2003, 16:28
|
Enzio
Banned
|
|
Registriert seit: Jul 2003
Ort: Abensberg (BY)
Beiträge: 148
|
|
PHP-Code:
<?php
if(isset("loeschen"))
{
include("config.php");
$connect = @mysql_connect($dbserver, $dbuser, $dppass);
mysql_select_db("$dbname, $connect");
$sql = "DELETE FROM news WHERE ID = $delete_news";
if (@mysql_query($sql))
{
echo 'News geloescht';
}else{
echo 'Pech gehabt, Fehler im Script!';
}
}else{
echo '<html>
<form action="'.$PHP_SELF.'" method="post">
<input type="text" size="25" name="delete_news" value="ID der zu löschenden News">
<input type="submit" name="loeschen" value="Löschen" />
</form>
<a href="index.php">Index</a>
</html>';
}
?>
mist. da is irgendwo ein fehler...
wart mal
Geändert von Enzio (29-11-2003 um 16:31 Uhr)
|

29-11-2003, 19:43
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.625
|
|
Zitat:
Original geschrieben von Enzio
mist. da is irgendwo ein fehler...
|
wenn du die @'s wegmachst und mysql_error() verwenden würdest, könntest du deine suche verkürzen.
|

29-11-2003, 21:17
|
DeadNovum
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 72
|
|
PHP-Code:
<?php
include("config.php");
$connect = mysql_connect($dbserver, $dbuser, $dppass);
mysql_select_db("$dbname, $connect");
$sql = "DELETE FROM news WHERE ID = $delete_news";
if (mysql_query($sql))
{
echo 'News geloescht';
}else{
echo 'Pech gehabt, Fehler im Script!';
}
}else{
echo '<html>
<form action="'.$PHP_SELF.'" method="post">
<input type="text" size="25" name="delete_news" value="ID der zu löschenden News">
<input type="submit" name="loeschen" value="Löschen" />
</form>
<a href="index.php">Index</a>
</html>';
}
?>
Zitat:
Parse error: parse error, unexpected '}' in D:\xampp\htdocs\test\loeschen.php on line 12
|
|

29-11-2003, 21:35
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
da fehlt ein if! Zähl mal deine Klammern!
|

29-11-2003, 23:39
|
DeadNovum
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 72
|
|
PHP-Code:
<form action="<?=$PHP_SELF?>" method="post">
<input name="delete_news" size=25 value='ID'>
<input type='submit' name='loesch_button' value='Löschen'>
</form>
<?php
include("config.php");
$connect= @mysql_connect($dbserver,$dbuser,$dbpass);
mysql_select_db($dbname,$connect);
if ($loesch_button == "Löschen") {
$sql = "DELETE FROM 'news' WHERE 'ID'= '$delete_news'";
if (mysql_query($sql)){
echo "News gelöscht. Weiterleitung erfolgt in 3 Sekunden. Bitte warten";
header("refresh:3;url=index.php");
}
else{
echo "PECH GEHABT, FEHLER IM SCRIPT!!!";
}
}
exit();
?>
hab es so noch mal probiert. geht aber auch nicht
|

29-11-2003, 23:55
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
dann gewöhn dir mal bitte an, ordentlich zu verschachteln, dann siehts du das auch!
PHP-Code:
<?php
include("config.php");
$connect= @mysql_connect($dbserver,$dbuser,$dbpass);
mysql_select_db($dbname,$connect);
if ($loesch_button == "Löschen") {
$sql = "DELETE FROM 'news' WHERE 'ID'= '$delete_news'";
if (mysql_query($sql)) {
echo "News gelöscht. Weiterleitung erfolgt in 3 Sekunden. Bitte warten";
header("refresh:3;url=index.php"); #was soll das denn sein?
} else {
echo "PECH GEHABT, FEHLER IM SCRIPT!!!"; # wieso eigentlich im script? und nicht im mysql?
}
} # das ist die letzte klammer. die müsste aber auf erster
# und nicht auf zweiter ebene sein!
exit(); # n exit am ende des scriptes? sinn?
?>
|

30-11-2003, 00:06
|
DeadNovum
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 72
|
|
Was hat das verschachteln mit der funktionstüchtigkeit des scriptes zu tun? wenn ich wollte, könnte ich alles in eine zeile schreiben:
PHP-Code:
<?php
include("config.php");
$connect= @mysql_connect($dbserver,$dbuser,$dbpass);
mysql_select_db($dbname,$connect);
if ($loesch_button == "Löschen") {
$sql = "DELETE FROM 'news' WHERE 'ID'= '$delete_news'";
if (mysql_query($sql)) {
echo "News gelöscht. Weiterleitung erfolgt in 3 Sekunden. Bitte warten";
header("refresh:3;url=index.php"); #nach 3 sek wird man automatish nach index.php weitergeleitet
} else {
echo "PECH GEHABT, FEHLER IM SCRIPT!!!"; #ist mir eigentlich wurscht wo der fehler ist. wichtig ist nur, dass ein fehler da ist
}
} # ob die klammer auf 2. oder 3 oder 1 ebenen ist, spielt für das script selbst keine rolle, nur für den betrachter. # und nicht auf zweiter ebene sein!
exit(); # n exit am ende des scriptes? sinn? => ka steht in meinem BUCH
?>
|

30-11-2003, 00:14
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
dann würdest du aber vermutlich nochspäter checken, dass du eine klammer zu wenig hast!!!
BTW: Mellos Tipps berücksichtigst du auch nicht.
|
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
|