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 31.12.2003, 14:31:02
eastkay eastkay ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 7
loeschen von daten in einer DB

Ich habe folgendes Problem, ich kann keine einzelnen Datensätze über ein Formular löschen. Wo hab ich einen Fehler gemacht ?
kann mir jemand helfen?

Dank, schon mal im voraus. Kay

----------------------------------------------------------------------
Formular aus Termdel.php
----------------------------------------------------------------------
<form1 action="loeschen.php" method="post">
<table border="0" width="100%">
<tr bgcolor="#33ccff">
<td width="2%"><b><i>ID</i></b></td>
<td width="7%"><b><i>Datum</i></b></td>
<td width="7%"><b><i>Zeit</i></b></td>
<td width="10%"><b><i>Beschreibung bzw. Ort</i></b></td>
<td width="20%"><b><i>Treffpunkt</i></b></td>
<td width="20%"><b><i>Art</i></b></td>

</tr>
<?php
include("db.php");
$abfrage = "SELECT id_term, zeit_term, bez_term, ort_term, datum_term, art_term FROM termin order by date_term ;";
$ergebnis = mysql_query($abfrage,$opendb);

while($zeile=mysql_fetch_array($ergebnis))

{
echo "<tr>n";
echo " <td><input type="text" name="$zeile[id_term]" value="$zeile[id_term]" size="3"></td>n";
echo " <td><input type="text" name="$zeile[datum_term]" value="$zeile[datum_term]" size="10"></td>n";
echo " <td><input type="text" name="$zeile[zeit_term]" value="$zeile[zeit_term]" size="15"></td>n";
echo " <td><input type="text" name="$zeile[bez_term]" value="$zeile[bez_term]" size="25"></td>n";
echo " <td><input type="text" name="$zeile[ort_term]" value="$zeile[ort_term]" size="20"></td>n";
echo " <td><input type="text" name="$zeile[art_term]" value="$zeile[art_term]" size="20"></td>n";
echo " <td><input type="submit" value="löschen" ></td>n";
echo "</tr>n";
}

mysql_close();
?>
</table>
</form1>

----------------------------------------------------------------------
Inhalt Datei loeschen.php
----------------------------------------------------------------------

<?php
/* Datenübernahme aus dem Formular termdel.php*/
$array["$zeile[id_term]"] = trim ($array["$zeile[id_term]"]);

$host = "localhost"; /*Severname*/
$user = "root"; //Benutzer//
$pass = ""; //Passwort//
$DBname = "thuringia"; //Datenbankname//


$openDB = mysql_connect($host, $user, $pass);


$query = "delete from termin where id_term ='$array[$zeile[id_term]]'";

if (mysql_query ($DBname, $query, $openDB))
echo '<body bgcolor="#33ccff">
<p align="right"><a href="PHP_self"></a></p>
<center>
<h1><i>Termin wurde gelöschtt</i></h1><br><br><br>
<a href=index.php"><i>Verwaltung</i></a><spacer type="horizontal" size="10"><a href="termeingabe.php"><i>neuer Termin</i></a><br><br><br>' ;
else
echo '<body bgcolor="#33ccff">
<p align="right"><a href="$PHP_SELF"></a></p>
<center>
<h1><i>FEHLER !!! Termin wurde nichtgeöscht!</i></h1><br><br><br>
<a href="termeingabe.php"><i>neuer Termin>/i></a><br><br><br>' ;

mysql_close ($openDB);
?>
Mit Zitat antworten
  #2  
Alt 31.12.2003, 15:29:43
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Uiuiui. Da ist aber noch so einiges nicht wirklich richtig.

Termdel.php
- <form1...> und </form1> - was ist das? Es gibt bloß <form> und </form> (mehr)

- Tabelle: Wo bleiben die restlichen 24%? ;)

- SELECT ... FROM - sind das alle Felder? Wenn ja, dann schreib einfach SELECT * FROM (beachten!)

- mysql_fetch_array() - arbeitest Du immer bei den Arrays immer mit dem Feldnamen? Dann reicht mysql_fetch_assoc() aus

- name="$zeile[id_term]" (gilt auch für alle andern) - dynamische Bezeichner machen in dem Fall eher keinen Sinn. Benne alle(!) Felder nach ihrem Feldnamen in mySQL, also id_term, datum_term, usw. Erleichtert die Arbeit durchaus


loeschen.php
- Zugangsdaten solltest Du vor dem Posten entfernen, nicht jeder ist lieb

- echo 1 a) PHP_SELF - da fehlt das $

- echo 1 b) a) wird nicht funktionieren, da Strings mit ' nur ausgegeben werden. Nimm dafür lieber "


So, nun zum eigentlichen.
Du solltest das komplette Formular (Formular, Tabelle, Felder) innerhalb der Schleife ausgeben lassen. Damit würden die Submit-Buttons in jeder Zeile Sinn machen und Du hast ein paar andere Probleme weniger.
In loeschen.php muss die Abfrage dann so lauten:
$query = "DELETE FROM termin WHERE id_term ='$id_term';";
Hast Du Dich an die Punkte weiter oben gehalten, sollte das alles klappen.
Mit Zitat antworten
  #3  
Alt 02.01.2004, 10:18:20
eastkay eastkay ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 7
Hi,
habe alles so gemacht, geht aber immer noch nicht. aber wehnigstens kommt jetzt eine fehlermeldung. Wie hast du das mit der schleife gemeint??
Mit Zitat antworten
  #4  
Alt 02.01.2004, 10:56:48
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Das mit der Schleife ist so gemeint:
PHP-Code:
// NICHT so:
<?php
echo "<form>n";
echo 
" <table>n";
while (
$zeile=mysql_fetch_array($ergebnis)) {
 echo ...;
 echo 
"<input type='submit'>";
}
echo 
" </table>n";
echo 
"</form>n";
?>

// sondern so:
<?php
while ($zeile=mysql_fetch_array($ergebnis)) {
 echo 
"<form>n";
 echo 
" <table>n";
 echo 
$zeile['datum_term'];
 echo 
"  <input type='submit'>n";
 echo 
" </table>n";
 echo 
"</form>n";
}
?>
Damit hast Du für jeden Datensatz ein eigenes Formular. Ist wohl die simpelste Variante.

Prinzip einleuchtend?


Falls es dann noch immer nicht geht poste bitte gleich den neuen Code mit dazu. Mal schauen, wie es inzwischen aussieht.
Mit Zitat antworten
  #5  
Alt 02.01.2004, 11:11:15
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: loeschen von daten in einer DB

Zitat:
Original geschrieben von eastkay
Ich habe folgendes Problem, ich kann keine einzelnen Datensätze über ein Formular löschen. Wo hab ich einen Fehler gemacht?
'Einen'? Wenn's nur einer wäre.

Aufgrund der Tatsache, daß Du keine Superglobals ($_GET, $_POST, $_REQUEST) verwendest, nehme ich mal kühn an, daß Du mit PHP 4.0.6 oder schlechter auskommen mußt.

termdel.php
PHP-Code:
<form1 action="loeschen.php" method="post">
<table border="0" width="100%">
<?php
include("db.php");
$abfrage "SELECT id_term, zeit_term, bez_term, ort_term, datum_term, art_term FROM termin order by date_term ;";
# Wir nehmen mal kühn an, daß in $opendb eine gültige Verbindungskennung steckt
$ergebnis mysql_query($abfrage,$opendb);
# Wir nehmen ebenfalls kühn an, daß $ergebnis eine gültige Ressourcenkennung hat

while($zeile=mysql_fetch_array($ergebnis))
{
echo 
"<tr>n";
echo 
"  <td><input type="text" name="$zeile[id_term]" value="$zeile[id_term]" size="3"></td>n";
# usw
}

mysql_close();
?>
</table>
</form1> <-- Huch?
Du packst also die janze MySQL Tabelle in einen Sack voll Textefelder und diese in ein Formular. Das ist mutig, aber Du wirst schon wissen, was Du tust. Wahrscheinlich sind es nur 10-20 Datensätze, die Du pikanterweise in Textfelder gleichen Namens packst. Die Preisfrage an dieser Stelle: liefert Dein Lieblingsbrowser nu den ersten oder den letzten Wert beim Server ab?

# loeschen.php

PHP-Code:
<?php
/* Datenübernahme aus dem Formular  termdel.php*/
$array["$zeile[id_term]"]    = trim ($array["$zeile[id_term]"]);
Hier habe ich lange überlegt, was Du mit dieser Zeile bezwecken willst. Du nimmst eine Feld-Variable mit dem Namen einer Funktion, die vom lieben Gott (oder wem auch immer) mit ominösen Werten gefüllt wurde, und entfernst die Leerzeichen (von was auch immer) am Anfang und am Ende. Hier müßte eigentlich selbst eine abgeschaltete Fehlererkennung schon janz laut brüllen.

PHP-Code:
$query "delete from termin where id_term ='$array[$zeile[id_term]]'"
Und hier müßte die PHP Fehlererkennung zusammen mit dem MySQL Server um die Wette brüllen.

Was treibst Du da eigentlich?
Mit Zitat antworten
  #6  
Alt 02.01.2004, 12:02:05
eastkay eastkay ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 7
Ich versuche PHP zu lernen!!
Mit Zitat antworten
  #7  
Alt 02.01.2004, 12:16:10
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von eastkay
Ich versuche PHP zu lernen!!
Der Weg ist falsch.
Mit Zitat antworten
  #8  
Alt 02.01.2004, 13:03:47
eastkay eastkay ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 7
kannst du mir einen besseren weg zeigen ?
Mit Zitat antworten
  #9  
Alt 11.01.2004, 12:44:42
eastkay eastkay ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 7
Danke

C4 danke für deine Hilfe. mein script geht jetzt.

Meikel ES WAR DOCH DER RICHTIGE WEG!!!!
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 14:58:18 Uhr.


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


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