TestMax.dk Paster
  • Forside
  • Print
  • Bookmark
  • Kontakt
  • SiteMap


infobox infobox
 

Brug for lidt hjælp ang slet via checkboxe

14-07-2008 16:33:39
 
 
Muligheder (Anmeld)
Skrevet af CwR
Kliks 451
Kategori PHP Generelt
Hey.. er ved og lave en side hvor man skal kunne slette nogle billeder via en side,,
Planen er af man får en oversigt med alle billederne og under hver billede er der en checkbox. Problemet er hvordan man får den til og slette alle de billeder som der har et krys i.. Hver profil har 5 billeder og der er ret mange profiler.


Siden med oversigten

<body bgcolor="#EEEEEE">
<form action="slet-billede.php" method="post">
<?
require("config.php");
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);
$resultat = mysql_query('SELECT * FROM piger ORDER BY id ');

while($output = mysql_fetch_array($resultat)){
echo "<table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' height='10'>
<tr>
<td width='100%' colspan='5'><b><font face='Arial' size='2'>".$output['navn']."</font></b></td>
</tr>
<tr>
<td width='100%' colspan='5'>&nbsp;</td>
</tr>
<tr>
<td width='20%' align='center'><font size='2'>Billede 1</font></td>
<td width='20%' align='center'><font size='2'>Billede 2</font></td>
<td width='20%' align='center'><font size='2'>Billede 3</font></td>
<td width='20%' align='center'><font size='2'>Billede 4</font></td>
<td width='20%' align='center'><font size='2'>Billede 5</font></td>
</tr>
<tr>
<td width='20%' align='center'><img src='".$output['billede1']."' alt='Profilbillede' id='profileImg' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede2']."' alt='Profilbillede' id='profileImg3' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede3']."' alt='Profilbillede' id='profileImg2' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede4']."' alt='Profilbillede' id='profileImg1' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede5']."' alt='Profilbillede' id='profileImg0' border='0' width='150' height='150'></td>
</tr>
<tr>
<td width='20%' align='center' style='border-bottom-style: solid; border-bottom-width: 1'><input type='checkbox' name='".$output['billede1']."' onchange='this.form.submit()' value='ON'></td>
<td width='20%' align='center' style='border-bottom-style: solid; border-bottom-width: 1'><input type='checkbox' name='".$output['billede2']."' onchange='this.form.submit()' value='ON'></td>
<td width='20%' align='center' style='border-bottom-style: solid; border-bottom-width: 1'><input type='checkbox' name='".$output['billede3']."' onchange='this.form.submit()' value='ON'></td>
<td width='20%' align='center' style='border-bottom-style: solid; border-bottom-width: 1'><input type='checkbox' name='".$output['billede4']."' onchange='this.form.submit()' value='ON'></td>
<td width='20%' align='center' style='border-bottom-style: solid; border-bottom-width: 1'><input type='checkbox' name='".$output['billede5']."' onchange='this.form.submit()' value='ON'></td>
</tr>
</table>";
}
?>
<input type="submit" name="opret" value="Slet billed(er)" style="border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1; background-color: #EEEEEE; font-size:12 px; font-family:Arial; font-weight:bold"></p>
</form>


Hvordan skal man gribe starten an. på slet siden ?
næh
 
infobox infobox


infobox infobox
 
#1Shavi(Anmeld) 14-07-2008 19:44:21
 
 
Well, for det første har du byttet om på value og name i dine inputs.

<input type='checkbox' name='"sletbilled[]"' onchange='this.form.submit()' value="$output['billede5']"></td>


og så bare brug: ($_post['sletbilled']) så laver den en array med dem der er valgt.


ps. Tjek http://www.phpartikler.dk/artikler/formular.php nederst på siden, der har du et meget godt eksempel
[url] http://www.shavi.dk [/url]
 
infobox infobox

infobox infobox
 
#2jordz(Anmeld) 14-07-2008 20:00:17
 
 
#1 > har ret..

når du har indsat


<td><input type="checkbox" name="sletbilled[]" value="$output['billede5']"></td>


så kan du os fjerne onchange det ser federe ud at man bare trykker slet når dem man vil slettet er valgt.

som intro laver du da:


foreah($_POST['sletbilled'] as $var){
$whereadd .= "`id` = '".$var."' OR ";
}

if(count($_POST['sletbilled'])>0){
$sql = "DELETE FROM `piger` WHERE ".substr($whereadd,0,-4)."";
mysql_query($sql);
}


so simply is it.. :)
Sprog: PHP - HTML - CSS - Javascript - MSL
Hjemeside: [url]http://www.Webcomfort.dk[/url]
 
infobox infobox

infobox infobox
 
#3CwR(Anmeld) 14-07-2008 21:08:26
 
 
sådan ?

<body bgcolor="#EEEEEE">
<form action="slet-billede.php" method="post">
<?php
if (isset($_post['sletbilled'])) //Har brugeren sendt formularen?
{
foreach($_POST['sletbilled'] as $billede) //Kør igennem array'et
{
echo "Du har valgt: ".$kon." <br>";
}
}
?>
<?
require("config.php");
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);
$resultat = mysql_query('SELECT * FROM piger ORDER BY id ');

while($output = mysql_fetch_array($resultat)){
echo "<table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' height='10'>
<tr>
<td width='100%' colspan='5'><b><font face='Arial' size='2'>".$output['navn']."</font></b></td>
</tr>
<tr>
<td width='100%' colspan='5'>&nbsp;</td>
</tr>
<tr>
<td width='20%' align='center'><font size='2'>Billede 1</font></td>
<td width='20%' align='center'><font size='2'>Billede 2</font></td>
<td width='20%' align='center'><font size='2'>Billede 3</font></td>
<td width='20%' align='center'><font size='2'>Billede 4</font></td>
<td width='20%' align='center'><font size='2'>Billede 5</font></td>
</tr>
<tr>
<td width='20%' align='center'><img src='".$output['billede1']."' alt='Profilbillede' id='profileImg' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede2']."' alt='Profilbillede' id='profileImg3' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede3']."' alt='Profilbillede' id='profileImg2' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede4']."' alt='Profilbillede' id='profileImg1' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede5']."' alt='Profilbillede' id='profileImg0' border='0' width='150' height='150'></td>
</tr>
<tr>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede1"]."'></td>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede2"]."'></td>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede3"]."'></td>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede4"]."'></td>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede5"]."'></td>
</tr>
</table>";
}
?>
<input type="submit" name="opret" value="Slet billed(er)" style="border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1; background-color: #EEEEEE; font-size:12 px; font-family:Arial; font-weight:bold"></p>
</form>



Skal det er så ind på samme side eller på slet-billede.php

foreah($_POST['sletbilled'] as $var){
$whereadd .= "`id` = '".$var."' OR ";
}

if(count($_POST['sletbilled'])>0){
$sql = "DELETE FROM `piger` WHERE ".substr($whereadd,0,-4)."";
mysql_query($sql);
}

næh
 
infobox infobox

infobox infobox
 
#4Shavi(Anmeld) 14-07-2008 22:36:53
 
 
Vil foreslå at smide det ind i samme fil istedet for at bruge sql filer.

loader hurtigere og mere samarbejds villig.
[url] http://www.shavi.dk [/url]
 
infobox infobox

infobox infobox
 
#5jordz(Anmeld) 14-07-2008 23:30:05
 
 
Tror os du har en fejl, for du echo'er $kon i din foreach..
der ska du nok echo $billede eller sådan noget.
men ja kør det i samme fil, det fylder alligevel så lidt.
Sprog: PHP - HTML - CSS - Javascript - MSL
Hjemeside: [url]http://www.Webcomfort.dk[/url]
 
infobox infobox

infobox infobox
 
#6CwR(Anmeld) 15-07-2008 17:05:18
 
 

<body bgcolor="#EEEEEE">
<form action="slet-billede.php" method="post">
<?
require("config.php");
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);
$resultat = mysql_query('SELECT * FROM piger ORDER BY navn ');

while($output = mysql_fetch_array($resultat)){
echo "<table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' height='10'>
<tr>
<td width='100%' colspan='5'><b><font face='Arial' size='2'>".$output['navn']."</font></b></td>
</tr>
<tr>
<td width='100%' colspan='5'>&nbsp;</td>
</tr>
<tr>
<td width='20%' align='center'><font size='2'>Billede 1</font></td>
<td width='20%' align='center'><font size='2'>Billede 2</font></td>
<td width='20%' align='center'><font size='2'>Billede 3</font></td>
<td width='20%' align='center'><font size='2'>Billede 4</font></td>
<td width='20%' align='center'><font size='2'>Billede 5</font></td>
</tr>
<tr>
<td width='20%' align='center'><img src='".$output['billede1']."' alt='Profilbillede' id='profileImg' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede2']."' alt='Profilbillede' id='profileImg3' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede3']."' alt='Profilbillede' id='profileImg2' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede4']."' alt='Profilbillede' id='profileImg1' border='0' width='150' height='150'></td>
<td width='20%' align='center'><img src='".$output['billede5']."' alt='Profilbillede' id='profileImg0' border='0' width='150' height='150'></td>
</tr>
<tr>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede1"]."'></td>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede2"]."'></td>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede3"]."'></td>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede4"]."'></td>
<td><input type='checkbox' name='sletbilled[]' value='".$output["billede5"]."'></td>
</tr>
</table>";
}
?>
<input type="submit" name="opret" value="Slet billed(er)" style="border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1; background-color: #EEEEEE; font-size:12 px; font-family:Arial; font-weight:bold"></p>
</form>

<?
if (isset($_post['sletbilled'])) //Har brugeren sendt formularen?
{
foreach($_POST['sletbilled'] as $var) //Kør igennem array'et

$whereadd .= "`id` = '".$var."' OR ";
}

if(count($_POST['sletbilled'])>0){
$sql = "DELETE FROM `piger` WHERE ".substr($whereadd,0,-4)."";
mysql_query($sql);
}
?>
</form>


Hvordan får jeg den så til og blive på samme side ?
næh
 
infobox infobox

infobox infobox
 
#7Shavi(Anmeld) 15-07-2008 17:08:15
 
 
<form action="slet-billede.php" method="post">


der.
[url] http://www.shavi.dk [/url]
 
infobox infobox

infobox infobox
 
#8jordz(Anmeld) 15-07-2008 17:23:35
 
 
ja eller blot sætte action="" så bliver den også automatisk posted til samme side.
Jeg vil dog forslå dig at sætte dine redigerings if's, i dette tilfælde:


if(count($_POST['sletbilled'])>0){
$sql = "DELETE FROM `piger` WHERE ".substr($whereadd,0,-4)."";
mysql_query($sql);
}


før den sql hvor du henter billederne, da hvis du gør det efter vil det ligne at dine billeder ikke er blevet slettet før du refresher igen!
Sprog: PHP - HTML - CSS - Javascript - MSL
Hjemeside: [url]http://www.Webcomfort.dk[/url]
 
infobox infobox

infobox infobox
 
#9CwR(Anmeld) 15-07-2008 20:02:36
 
 
#8 mener du med og sætte if's ?

hvordan får jeg den til og update istedet for og slette.. Fordi når der ikke er noget billede så skal der komme et andet billede som nofoto.jpg
næh
 
infobox infobox

infobox infobox
 
#10jordz(Anmeld) 15-07-2008 22:38:31
 
 
#9 > mener du skal lave din slet if og foreach før du laver din SELECT sql.

det andet sprøgsmål er let at besvare du kan både bruge mysql_affected_rows() eller mysql_num_rows($query);

Sprog: PHP - HTML - CSS - Javascript - MSL
Hjemeside: [url]http://www.Webcomfort.dk[/url]
 
infobox infobox

infobox infobox
 
#11Shavi(Anmeld) 15-07-2008 22:43:52
 
 
Altså. Vi kan også lave den nemme måde. Fx hvis der kun er 5 billeder på en side.

Så kan du bare sætte den til at slette de 5 $vars du laver en efter en hvis de er sat.

fx:


if(!empty($billed1))
{ slet }
if(!empty($billed2))
{ slet }




OSV :)
[url] http://www.shavi.dk [/url]
 
infobox infobox

infobox infobox
 
#12CwR(Anmeld) 16-07-2008 16:23:26
 
 
#10 altså sætte det her

<?
if (isset($_post['sletbilled'])) //Har brugeren sendt formularen?
{
foreach($_POST['sletbilled'] as $var) //Kør igennem array'et

$whereadd .= "`id` = '".$var."' OR ";
}

if(count($_POST['sletbilled'])>0){
$sql = "UPDATE FROM `piger` WHERE ".substr($whereadd,0,-4)."";
mysql_query($sql);
}
?>


I toppen af scripet før jeg henter data ud af sql ?

#11 Der er mange billeder på siden.. den laver en loop
næh
 
infobox infobox

infobox infobox
 
#13jordz(Anmeld) 16-07-2008 18:24:06
 
 
#12 > ja gør det
så undgår du de uheldige situationer.
Sprog: PHP - HTML - CSS - Javascript - MSL
Hjemeside: [url]http://www.Webcomfort.dk[/url]
 
infobox infobox

Påmindelse ved nyt svar

Ved at tilmelde dig automatisk påmindelse, modtager du en email så snart denne tråd bliver besvaret, dog sender vi kun en mail til dig, også selvom der er kommet flere svar, simpelthen for at spare dig for spam i din indbakke.


infobox infobox
  Svar på tråden  
   
 
 
infobox infobox

infobox infobox
  Læs dette før du sender dit indlæg!  
 
Ved tryk på send knappen accepterer du vores regelsæt som kan læses her
Praktiske informationer
Type Eksempel Resultat
Fed [b]din tekst[/b] din tekst
Kursiv [k]din tekst[/k] din tekst
Understreg [u]din tekst[/u] din tekst
Kode felt [code]din tekst[/code]
din tekst
infobox infobox