Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Daten aus einer Datenbank loeschen.

Hallo alle zusammen,

ich habe folgendes Problem:

Ich möchte Daten aus einer Datenbank loeschen. Der Primarykey der die Spalte der Relation eindeutig Definiert ist ein VARCHAR. Also sind Zahlen und Buchstaben möglich.
Zum löschen der Daten verwende ich folgende function die nicht 100% funktioniert:

<?php
function loeschen($loeschen='EG1293') {
include_once 'db.php';
global $loeschen;
echo $loeschen;
mysql_query("delete from dozent where dozentennummer = $loeschen;");
?>TEXT<?php

}
?>

$loeschen='EG1293' ist ein Beispiel.!

Steht für die Variable $loeschen eine reine Zahl funktioniert alles wunderbar. Die Daten werden gelöscht.
Sobald wie im Beispiel Buchstaben dabei sind funktioniert nichts mehr.
Hat jemand eine Lösung?

Vielen dank

Hier gehts zum Orginal Eintrag "Daten aus einer Datenbank loeschen." im Forum

Antworten

Deine SQL-Syntax stimmt nicht, wo sind Deine Anführungszeichen? Siehe auch [doc]mysql_error[/doc]


2.

Hallo Orben,

Dein Problem liegt wahrscheinlich daran, dass Du den Suchwert nicht in Anführungsstrichen angibst. MySQL interpretiert Werte, die nicht von " bzw. ' eingeschlossen sind als numerisch. Das erklärt auch, weshalb es mit einer reinen Zahl funktioniert.

Code:                   In Zwischenablage kopieren (nur IE)
1">

Das sollte helfen!

Gruß,

Lius


3.

Lius, auch Dir wird es bald keinen Spaß machen, auf diese Art von Fragen so ausführlich zu antworten, da das eine Frage ist, die wöchentlich mind. 2 mal reinkommt....


4.

Irgendwie bekomme ich es nicht so hin! Hier ist nochmal der Komplette Quellcode:


<html>
<?php
include_once 'db.php';
include_once 'function_loeschen.php';
loeschen()
?>
<?php
if (isset($_POST['Submit']))
{
$loeschen = $_POST[loeschen];
mssql_query("delete from weiterbildungsmassnahme where bezeichnung = '$loeschen' ;");
echo $loeschen;
echo "<br> TE";
}
else
{
echo "Fehler";
}
?>

<body>

<p>&nbsp;</p>
<p>&nbsp;</p>
<p align="center"><font size="5"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Zu
l&ouml;schenden Weiterbildungsmassnahme w&auml;hlen:</font></strong></font></p>
<form method="POST" name="massnahme">

<div align="center">
<p>
<select Titel="massnahme" name="loeschen" lang="de" size="1">
<option>Bitte wählen</option>
<option disabled>--------------------</option>
<?PHP

$result = mssql_query("SELECT weiterbildungsmassnahme.bezeichnung FROM weiterbildungsmassnahme ;");
$num=mssql_num_rows($result);
for ($i=0; $i<$num;$i++)
{
$bezeichnung = mssql_result($result,$i,bezeichnung);

?>
<option value = " <?PHP echo $bezeichnung ; ?> "> <?PHP echo $bezeichnung ; }?> </option>
</select>
</p>
<p>&nbsp;</p>
</div>

<div align="center">

<input name="Submit" type="submit" onClick="submit()" value="L&ouml;schen">
</div>
</form>


<p align="center">&nbsp;</p>
</body>
</html>

Das ist die Funktion:

<?php
function loeschen($loeschen='')
{
include_once 'db.php' ;
global $loeschen ;

echo $loeschen ;
mssql_query("delete from weiterbildungsmassnahme where bezeichnung = '$loeschen' ;") ;
}
?>

Laut der ECHO-Ausgabe wird die Variable richtig übertragen!

Vielen Dank nochmal!


5.

Also oben war es noch mysql, jetzt isses mssql ... aber immernoch lässt Du Dir keinen SQL-Fehler ausgeben. Wieso?


6.

Das liegt daran das ich es auf zwei wegen versuch! Lokal mit MySQL aber das richtige Skript sollte mit MSSQL funktionieren.

Mal ganz doof von mir! Wie kann ich mir die Fehler ausgeben lassen?


7.

Das habe ich Dir oben schon gepostet, bei mssql könnte [doc]mssql_get_last_message[/doc] funktionieren. Außerdem ist es generell keine gute Idee, ohne Abstraktionsschicht verschiedene Datenbanksysteme zu benutzen, das könnte schief gehen...


8.

An welcher stelle muss ich das einbauen? Geht irgendwie nicht! Ich bin mit PHP nicht so erfahren!


Hier gehts zum Orginal Eintrag "Daten aus einer Datenbank loeschen." im Forum
 
phpforum.de | Impressum | Handy Bundles