27. august 2004 - 17:47Der er
10 kommentarer og 2 løsninger
Fjerne hvis ikke checked
Min bruger kan vha. checkboxe markere hvilke spillere der er på et bestemt hold. I mit efterfølgende script skal jeg så gerne have fjernet dem der ikke længere er 'checked' Det gør jeg ved at hente alle spillere, der ikke er checked og kontrollere om de er sat på det specifikke hold. Hvis ja, så skal de slettes. Det har virket før (i ASP), men jeg kan ikke få det til at virke i PHP.
$strSQLNotIn = "SELECT medlemsnr FROM medlemmer WHERE medlemsnr NOT IN (".$strNotIn.")"; $resNotIn = mysql_query($strSQLNotIn); echo "strNotIn: ".$strSQLNotIn; echo "<br><br>";
while ($rowNotIn = mysql_fetch_assoc($resNotIn)) { $strSQL2 = "SELECT * FROM hold WHERE medlemsnr = '".Trim($rowNotIn['medlemsnr'])."' AND teamid = '".$_GET['team']."'"; $res2 = mysql_query($strSQL2); echo "res2: ".$strSQL2."<br>";
if (mysql_num_rows($res2) > 0){ $strSQL3 = "DELETE FROM hold WHERE medlemsnr = '".Trim($rowNotIn['medlemsnr'])."' AND teamid = '".$_GET['team']."'"; // $res3 = mysql_query($strSQL3); echo $strSQL3."<br>"; } }
'echo' sætninger er blot med for at jeg kan følge med i forløbet.
Resultatet af ovenstående er, at alle spillere returneres fra første SQL query, og dem der er checked (altså med i $strNotIn) bliver slettet.
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Jo chk1 ser ud som du skriver, og de rigtige data bliver også taget med over.
Dit eksempel sidst i din første kommentar dur ikke, da de medlemsnr. der er i chk1, netop er dem der skal blive på holdet. Jeg er derfor nødt til at finde alle de numre, der ikke er i chk1, og kontrollere om de er knyttet til holdet. Hvis de er det skal tilknytningen slettes.
Jeg kendte i øvrigt ikke implode(),men det gør det naturligvis lidt lettere. Jeg tror, at jeg prøver at indsætte din kode, og arbejder lidt videre.
strNotIn: SELECT medlemsnr FROM medlemmer WHERE medlemsnr NOT IN (007,004,059,060,011,005,002,003,008)
res2: SELECT * FROM hold WHERE medlemsnr = '001' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '002' AND teamid = '1' DELETE FROM hold WHERE medlemsnr = '002' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '003' AND teamid = '1' DELETE FROM hold WHERE medlemsnr = '003' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '004' AND teamid = '1' DELETE FROM hold WHERE medlemsnr = '004' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '005' AND teamid = '1' DELETE FROM hold WHERE medlemsnr = '005' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '006' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '007' AND teamid = '1' DELETE FROM hold WHERE medlemsnr = '007' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '008' AND teamid = '1' DELETE FROM hold WHERE medlemsnr = '008' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '009' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '011' AND teamid = '1' DELETE FROM hold WHERE medlemsnr = '011' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '012' AND teamid = '1' DELETE FROM hold WHERE medlemsnr = '012' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '013' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '014' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '015' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '016' AND teamid = '1' res2: SELECT * FROM hold WHERE medlemsnr = '017' AND teamid = '1'
De tal der er med i første linie, skal IKKE slettes. Det skal derimod fx 012.
if ( is_array( $_POST['chk1'] ) ) { $strNotIn = implode( ",", $_POST['chk1'] ); $sql = "DELETE FROM hold WHERE medlemsnr NOT IN ( $strNotIn )"; mysql_query( $sql ); }
Jeg tror, at jeg lige er nødt til at forklare mig lidt nærmere.
Jeg har en tabel med mine medlemmer 'medlemmer' identificeret med 'medlemsnr'. Der udover har jeg nogle hold i tabellen 'teams' med id 'teamid'. Knytningen mellem de to sker i tabellen 'hold'. Jeg er derfor nødt til at finde dem, der ikke indgår i 'chk1', og derefter fjerne en tilknytningen mellem dem og det pågældende hold.
Jeg er ikke i tvivl om, at scriptet generelt virker, men min første sql_query returnerer ikke det jeg regner med.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.