WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Php mehrere Daten gleichzeitig löschen (http://www.wcm.at/forum/showthread.php?t=142301)

Robin Hood 18.08.2004 18:23

Php mehrere Daten gleichzeitig löschen
 
Ich habe eine kleines Nachrichtenversendeprogramm auf meiner Seite programmiert(mit php) funktioniert soweit ganz gut.
Nur jetzt möchte ich, dass der user nicht jedes mal die nachricht ansehen muss wenn er sie löschen will, sondern so wie bei gmx nur auf der seite die checkbox anwählen muss.

meine checkbox sieht daher dann so aus:
<input type='checkbox' name='message' value='Id-der-nachricht'>

es funktioniert auch ganz normal das die Id-der-nachricht mitgeschickt wird sieht dann etwa so aus:
message=17&message=18&message=19

Das einzige problem, das ich hab ist es die nachrichten alle aufeinmal zu löschen.Könnt ihr mir helfen?

Wenn ihr was nicht ganz verstanden habt schreibt es einfach.

Danke im vorhinein!!!

pong 18.08.2004 18:43

du gehst einfach das Array durch, welches die ID's enthält, mit einer Schleife und führst halt in dieser deine Löschprozedur durch..

pong

Robin Hood 18.08.2004 19:43

Ja hab ich mir auch gedacht , nur wie bekomm ich die Ids in eine array?

wenn ich schreib:
$a = array($_REQUEST['message']);

dann schreibt er immer nur die erste id ins array!

FordPrefect 18.08.2004 20:19

Also ich mache das bis jetzt so:
PHP-Code:

$i=0;
While (
$nachricht=(nachricht einlesen)){
echo 
"<input type='checkbox' name='nachricht[."$i."]' value='ID der Nachricht'>";
$i++; 

Und beim Auslesen
PHP-Code:

for ($i=0;$i<count($nachricht);$i++;){
if (
$nachricht[$i]!=NULL){
code zum löschen
}


Ich weiß nicht sehr elegant aber es funktioniert.
mfg Peter

Robin Hood 19.08.2004 17:48

Danke, danke, danke!!!
Endlich funktioniert es!!!:) :) :)

FordPrefect 19.08.2004 18:12

Bitte gern geschehen :D
Und ich hatte so auf eine bessere Lösung gehoft. :lol:
mfg
Peter

FordPrefect 26.08.2004 18:46

Tut mir leid, so wie ich es Dir geschrieben habe, funzt es nich richtig.
Wenn Du nur mehr als eine Mail anclickst und sie nicht in laufender Reihenfolge sind, interpretiert er das nicht mehr richtig.
Du musst die gesamte Anzahl der Mails mitgeben, und dann:
PHP-Code:

for ($i=0;$i<=$anzahl der mails;$i++){ 
if (
$mail[$i]!=""){
usw

mfg Peter

T.dot 27.08.2004 00:02

Nachdem ich sowas auf meinen PHP Seiten immer für fast alle Tabellen brauch, hab ich inzwischen ne funktion dafür (wie gut oder schlecht sie ist, darf jeder selbst rausfinden), die gekürze Version davon steht unten:

Übergeben wird das Array, der Name des Feldes der getrennt werden soll und der String fürs Teilen (zb n Beistrich)

PHP-Code:

function array_to_string($array$splitfield$splitstring=",")
{
    if(
sizeof($array)>0)
    {
        
$i=0;
        
reset($array[$splitfield]);    
        while(
$i<sizeof($array[$splitfield]))
        {    
            if(
current($array[$splitfield])!=0)
            {    
$strReturn .= current($array[$splitfield]) . "$splitstring";
            }
            
next($array[$splitfield]);
            
$i++;
        }
        return 
substr($strReturn,0,strlen($strReturn)-1);
    }


aufgerufen wird das ganze über:
$strdel = array_to_string($POST, "delBewertungsskala",",");

danach kann ich dann einfach mit:
$sql = "DELETE FROM tblTabelle WHERE ID IN ($strdel)";
alle Werte löschen die keiner mehr braucht...

Voraussetzung dafür ist natürlich, das das Array mit den jeweiligen IDs für den Datensatz durchnummeriert sind...

hoffe mich verständlich ausgedrückt zu haben, mfg Thomas


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag