While Schleife mit odbc_do

  • While Schleife mit odbc_do

    Hallo,

    Ich brauche hilfe bei while schleife da komm ich einfach nicht weiter:

    Quellcode

    1. $entfID = $_GET['DEL'];
    2. $groupID = $_GET['groupid'];
    3. $i=0;
    4. if($entfID != ""){
    5. $zahl = count($entfID);
    6. while($i <= $zahl){
    7. echo "Test";
    8. $entfernen_query = "delete from person_gruppe where idPerson='".$entfID[$i]."' and idGruppe='".$groupid."'";
    9. $entfernen = odbc_do($DBLink, $entfernen_query);
    10. $i++;
    11. }
    Alles anzeigen


    die daten werden nicht aus den datenbank gelöscht.

    Hauptfunktion ist:
    Benutzer kann mehrere benutzer von einer gruppe auswählen und dann auf button entfernen klicken dann sollte es mir aus den datenbank diese benutzer entfernen. habel ange daran gebastelt hoffentlich kann mir jemand weiterhelfen.

    danke voraus.

    mfg
  • Hi,


    welches (R)DBMS benutzt du denn ?
    Schau dir mal die Ausgabe von odbc_errormsg() an.



    $entfID ist ein Array !!

    Quellcode

    1. if($entfID != ""){


    Quellcode

    1. if( count($entfID)>0 ){


    Einfacher ist es mit einer foreachschleife.

    Quellcode

    1. while($i <= $zahl){

    Quellcode

    1. foreach($entfID as $id){
    2. $entfernen_query = "delete from person_gruppe where idPerson='". (int) $id."' and idGruppe='". (int) $groupid."'";
    3. if(!odbc_do($DBLink, $entfernen_query))
    4. echo odbc_errormsg();
    5. }



    Ist nicht sicher vor SQL Injections, besser ist wenn du direkt einen Typcast zu (int) nutzt.

    Quellcode

    1. idPerson='".$entfID[$i]."'

    oder prepare
    de.php.net/manual/de/function.odbc-prepare.php

    Quellcode

    1. idPerson='".(int) $entfID[$i]."'