php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.04.2005, 04:03  
Gast
 
Beiträge: n/a
Standard Frage: Warum funktioniert dieses PHP/MySQL Script nicht?

So, ich wollte mir eigentlich selber ein NewsSystem schreiben. Die News werden alle mit dem Primär Schlüssel "id" in die MySQL DB eingegeben. Also hab ich mir gedacht man müsste sie auch über die "id" komplett löschen können. Richtig das geht auch solange ich es selber als MySQL Befehl eingebe (DELETE FROM tp_news WHERE id=2). Aber wenn ich versuche das irgendwie in PHP zu verpacken gehts nicht.
Der Code sollte eigentlich ein Textfeld generieren in das man die ID der news die gelöscht werden soll eingibt. Danach auf "Löschen" klickt und weg sollte sie seien. Das funktioniert alles prima, bis auf das die News auch gelöscht wird.
(Die Pfad-angaben stimmen, die Login Daten auch. Daten einfügen kann ich ja...)

Der Code von der open.inc.php:
Code:
<?php 
$con_server 	= "localhost";		// Adresse des mySQL-Server
$con_user 		= "web10";			// Benutzername
$con_pass 		= "meinultrageheimespw";		// Passwort
$con_db		= "usr_web10_2";		// Datenbank
$mysql_conn = @mysql_connect($con_server, $con_user, $con_pass);
if ($mysql_conn != TRUE) {
	echo "Es kommte keine Verbindung mit der Datenbank hergestellt werden! Fehlermeldung: 

".mysql_error();
	die;
}
mysql_select_db($con_db, $mysql_conn);
?>
Der Code von der Hauptdatei:

Code:
<?
    error_reporting(E_ALL);
if ($submit) {

		//Verbindung herstellen
		include ("../inc/opendb.inc.php"); // DB öffen
$loeschen = "DELETE FROM tp_news WHERE id='$delete'";
$loesch = mysql_query($loeschen);
}

else {
?>
<fieldset>
<form name="choise05" id="choise05" method="post" action="<? echo $PHP_SELF ?>">
<label for="delete" class="left">ID:</label>
<input type="text" name="delete" align="right">
<input type="submit" name="Submit" value="Löschen" class="button">
</form>
</fieldset>
<?
}
?>
Danke schonmal im voraus...
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.04.2005, 04:37  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

vieleicht mal anschauen:

register_globals
http://www.phpfriend.de/ftopic26569.html
-> lesen, verstehen, umsetzen und nicht register_globals auf on stellen wollen !!
desweiteren verwendet man sowohl bei mysql_select_db sowie mysql_query folgendes:


mysql error
man sollte in seinen Scripten immer mysql_error() verwenden, in etwa so:
PHP-Code:
$sql "SELECT feld1,feld2 FROM table WHERE id=5";
$result mysql_query($sql) or die(mysql_error().'
Query: '
.$sql); 
mfg
robo47
robo47 ist offline   Mit Zitat antworten
Alt 20.04.2005, 07:06  
Gast
 
Beiträge: n/a
Standard

Wieso hängst du die id nicht an? z.b.: news.php?delete=123

Ich glaub es wäre sinnvoller die anzuhängen, da ich mir nicht sicher bin, ob du "Submit" überhaupt so verwenden kannst ( im Zusammenhang mit dem Button ).

Versuch mal $_GET["delete"] also:
PHP-Code:
$loeschen "DELETE FROM tp_news WHERE id='$_GET["delete"]'; 
Das könnte auch gehen.
  Mit Zitat antworten
Alt 20.04.2005, 11:22  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 146
Hakima befindet sich auf einem aufstrebenden Ast
Standard

Mir ist aufgefallen, dass

PHP-Code:
<?php
<input type="submit" name="Submit" value="Löschen" class="button"
?>
Submit hier grossgeschrieben ist, im Code aber

PHP-Code:
<?php
if ($submit) { 
?>
als Variable klein geschrieben...

Ist mir nur aufgefallen...
Hakima ist offline   Mit Zitat antworten
Alt 21.04.2005, 00:27  
Gast
 
Beiträge: n/a
Standard

Danke für die Antworten.

1. Ich weiss nicht wie mir register_global helfen soll.
Da es ein Script gibt das mit dem Input verfahren bereits schon so funktioniert. Beispiel unten...
2. Ja man kann den Button so verwenden. (Das Script ist egspalten in den sichtbaren und unsichtbaren Teil, sobald auf den Button geklickt wird ist die submit Variable gegeben und der bisher nicht sichbare Teil greift) Beispiel steht auch unten. Mit deiner Lösung ist es aber nicht möglich dem User ein seperates Textfeld zusätzlich zu dem button zu liefern.
3. Ist mir auch aufgefallen nachdem ich das gepostet hatte nutzt aber nichts vermutl. weil der Name des Buttons uninteressant ist sondern das type=submit zählt.

Beispiel:


Code:
/////////////Nicht sichtbarer Teil des Scrpts \/ (PHP)
<html>
<body>
<?
if ($submit) {
$db = mysql_connect("127.0.0.1", "root");
mysql_select_db("kundendb",$db);
$sql = "INSERT INTO kunden (vorname,name,anr,email,tel,str,hnr,plz,ort) VALUES ('$vorname','$name','$anr','$email','$tel','$str','$hnr','$plz','$ort')";
$result = mysql_query($sql,$db);
echo "Ihr Daten wurden abgeschickt! Vielen Dank!

";
}
else {
?>
/////////////Nicht sichtbarer Teil des Scripts /\ (PHP)
/////////////-
/////////////Sichtbarer Teil des Scripts \/
<form method="post" action="<? echo $PHP_SELF ?>">
<table border="0" align="center">
<tr>
<td>Anrede</td>
<td><select name="anr" size="1">
<option value="0">Herr
<option value="1">Frau
</select></td>
</tr><tr>
<td>Vorname</td>
<td><input type="text" name="vorname" value="<? echo $vorname ?>" size="50"></td>
</tr><tr>
<td>Name</td>
<td><input type="text" name="name" value="<? echo $name ?>" size="50"></td>
</tr><tr>
<td>e-mail</td>
<td><input type="text" name="email" value="<? echo $email ?>" size="50"></td>
</tr><tr>
<td>Telefon</td>
<td><input type="text" name="tel" value="<? echo $tel ?>" size="50"></td>
</tr><tr>
<td>Strasse Nr.</td>
<td><input type="text" name="str" value="<? echo $str ?>" size="40">
<input type="text" name="hnr" value="<? echo $hnr ?>" size="5"></td>
</tr><tr>
<td>PLZ Ort</td>
<td><input type="text" name="plz" value="<? echo $plz ?>" size="5">
<input type="text" name="ort" value="<? echo $ort ?>" size="40"></td>
</tr><tr>
<td></td>
<td><input type="submit" name="submit" value="Abschicken"></td>
</tr>
</table>
</form>
/////////////Ende des PHP Scripts \/
<?
}
?>
/////////////Ende des PHP Scripts /\
</body>
</html>
/////////////Sichtbarer Teil des Scripts /\
Danke...

mfg
T0n4us

"Kreativität ist besser als Intelligenz"
Albert Einstein
Nobelpreisträger aber auch Erfinder der Atombombe...
  Mit Zitat antworten
Alt 21.04.2005, 08:40  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

gibt er trotz error_reportings keine fehler aus? ist vieleicht in der php.ini error_reporting ausgeschalten?
mal in der phpinfo schauen!

mfg
robo47
robo47 ist offline   Mit Zitat antworten
Alt 21.04.2005, 09:01  
Gast
 
Beiträge: n/a
Standard

also ich hab da noch was gefunden und zwar bei deiner form

Code:
<form method="post" action="<? echo $PHP_SELF ?>">
da fehlt ein ; nach dem SELF weil wie du ja weißt, php befehle müssen beendet werden und das geht nunmal nur mit ;

Code:
<form method="post" action="<? echo $PHP_SELF; ?>">

nochwas.
if ($submit) <-- das is müll

neue regel sagt

if ($_POST['submit'])

kann schon sein das es bei dir lokal geht aber bei nem richtigen anbieter der schutz will da wirds nich gehen also gewöhn dir schonmal diese schreibweise an.

gruß maik
  Mit Zitat antworten
Alt 21.04.2005, 16:05  
Gast
 
Beiträge: n/a
Standard

Error reporting ist nun an, also gibt er beim laden der seite mit den veränderungen von mA1k folgende Fehlermeldung aus:

Notice: Undefined index: submit in /srv/www/htdocs/web**/html/script/inc/admin_deletenews.php on line 3

Beim eingeben der ID und klicken auf löschen versucht er diese URL zu öffnen (keine ahnung wo die herkommt)

http://web**.prag186.server4you.de/script/tpadmin/<br%20/>Notice:%20%20Undefined%20variable:%20%20PHP_SELF%20in%20/srv/www/htdocs/web**/html/script/inc/admin_deletenews.php%20on%20line%2013<br%20/>

Das macht er nur wenn ich error reporting an habe ansonsten geht er beim klicken auf Löschen zurück zur hauptseite...

THX
  Mit Zitat antworten
Alt 21.04.2005, 16:33  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

http://php-faq.de/q/q-fehler-konstante.html
http://php-faq.de/q/q-fehler-variable.html
robo47 ist offline   Mit Zitat antworten
Alt 22.04.2005, 06:35  
Gast
 
Beiträge: n/a
Standard

Habe den Code nochmal fast ganz umgeschrieben (aufgrund versch. Ratschläge) auch ne andere DB und nen anderen Server genutzt es kommt zwar keine Fehlermeldung mehr aber er will aus irgeneinem grund auf: http://script/tpadmin/index.php zugreifen...
da gibt es aber nichts...
Ausserdem löscht der nichts aus der DB....

PHP-Code:
<?php
    error_reporting
(E_ALL);
if(isset(
$_POST['submit'])) {

        
//Verbindung herstellen
        
include ("../inc/opendb.inc.php"); // DB öffen
$loeschen "DELETE FROM tp_news WHERE id='($_POST[$delete])'";
$loesch mysql_query($loeschen);
}

else {
?>
<fieldset>
<form name="choise05" id="choise05" method="post" action="<? echo($_SERVER['PHP_SELF']) ?>">
<label for="delete" class="left">ID:</label>
<input type="text" name="delete" align="right">
<input type="submit" name="submit" value="Löschen" class="button">
</form>
</fieldset>
<?
}
?>
[/quote]
  Mit Zitat antworten
Antwort


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
Wie funktioniert dieses Script? Zangelo PHP Tipps 2006 11 27.07.2006 10:34
mein script funktioniert nur manchmal ?? Ministry PHP Tipps 2006 6 17.06.2006 23:45
Script funktioniert plötzlich nicht mehr... PHP Tipps 2006 37 24.04.2006 12:56
Frage zu einem Script PHP Tipps 2006 0 09.02.2006 09:57
[Erledigt] kurze frage zu screen in einem shell script Server, Hosting und Workstations 4 16.12.2005 21:22
Frage zum script PHP Tipps 2007 8 24.11.2005 22:10
Frage: Suche Fehler in diesem Script... PHP Tipps 2005-2 14 25.10.2005 19:24
popups blocken, newsletter script und frage zu db's PHP Tipps 2005-2 2 28.09.2005 07:00
Script funktioniert nicht richtig -> fehlermeldungen PHP Tipps 2005-2 2 12.09.2005 11:29
Frage bezüglich eines script PHP Tipps 2005-2 5 02.08.2005 08:47
[Erledigt] Frage zu einem script Datenbanken 3 24.02.2005 03:46
kurze frage zu script im script PHP Tipps 2005 4 04.02.2005 08:53
Script Frage... PHP Tipps 2004 2 06.11.2004 00:20
Script funktioniert nicht PHP Tipps 2004 2 02.11.2004 10:47
Script funktioniert nach Versionswechsel nicht PHP Tipps 2004 4 07.10.2004 18:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mysql daten löschen funktioniert nicht, mysql script, $eintrag = \insert into kunden (vorname,name,anr,email,tel,str,hnr,plz,ort) values (\'$vorname\',\'$name\',\'$anr\',\'$email\',\'$tel\',\'$str\',\'$hnr\',\'$plz\',\'$ort\')\; $result = mysql_query($eintrag,$db); echo \ihr daten wurden abgeschickt! vielen , delete submit löscht immer der letzten key warum? php formular, open.inc my sql, my sql newsletter script, $sql = \insert into kunden (vorname,name,and,email,tel,str,hnr,plz,ort) values, insert into kunden (vorname,name,anr,email,tel,str,hnr,plz,ort) values (\'$_post[\'vorname\']\',, where id in () funktioniert nicht php, <form action=\<? echo $php_self ; ?>\ method=\post\> geht nicht mehr, delete mysql formular, mysql delete where id in, löschen mysql script php, php mysql input value delete id, php5 mysql script, <? if ($submit) { $db = mysql_connect, nicht sichtbarer php, <a id=\delete\ name=\delete\> </a>, php mysql button löschen, php mysql where nicht das

Alle Zeitangaben in WEZ +2. Es ist jetzt 07: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.