Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Brisanje chekcbox

[es] :: PHP :: PHP za početnike :: Brisanje chekcbox

[ Pregleda: 1840 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

username1987
Ne radim

Član broj: 270860
Poruke: 31
178.77.10.*



Profil

icon Brisanje chekcbox10.12.2010. u 14:50 - pre 161 meseci
Pozdrav svima. Evo i moje drugo pitanje na koje nisam uspio naci odgovor. Pošto sam nedavno počeo da radim sa PHP-om, zapeo sam kod jednog problema. Mjesec dana ga pokušavam da riješim ali bezuspješno. Naime, pokušavam da napravim skriptu iz jednog tutoriala u kojem je autor koda negdje pogriješio.
Tutorial se nalazi na slijedećem linku:http://www.phpeasystep.com/mysql/8.html
Evo i kod sa sajta:
Code:
<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Lastname</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['name']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['lastname']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['email']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}

// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=delete_multiple.php\">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>


Pošto nisam došao da mi neko piše skriptu ili nešto, potrudio sam se pa sam potražio i ispravio par grešaka.
Od ovog koda sam napravio 2ije stranice,jednu forma.php(da mi izlista npr usere iz baze) i brisi.php koju poziva ova prethodna.
forma.php
Code:
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="brisi.php">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Lastname</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><?php echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['name']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['lastname']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['email']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>

brisi.php
Code:
<?php

$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");



if(!empty($_POST['delete'])){  
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}



if($result)
{
echo "Uspjesno izbrisano";
}
else
{
    echo "Ne moze";
    
}
}
mysql_close();

?>


Samo još da napomenem da sam koristio pretragu na ovom forumu ali mi nije dala rezultate. U ovoj skripti koju sam postavio kada se izvrši uvijek se uspuni ovaj drugi uslov "Ne moze". Hvala.

 
Odgovor na temu

username1987
Ne radim

Član broj: 270860
Poruke: 31
178.77.10.*



Profil

icon Re: Brisanje chekcbox10.12.2010. u 14:59 - pre 161 meseci
Samo mali update. Probao sam da ovaj dio koda iz forma.php dodam u brisi.php i u tom slučaju izvršava ispis poruke "Uspjesno izbrisano" ali ne radi, tj redovi u bazi se ne brisu.

Code:
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);


Ovaj dio koda sam dodao u brisi.php

 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
*.dynamic.isp.telekom.rs.

Sajt: https://avramovic.info


+46 Profil

icon Re: Brisanje chekcbox12.12.2010. u 18:59 - pre 161 meseci
Ne vidim odakle dohvataš $checkbox promenljivu?

Probaj ovako:

Code:
$del_id = $checkbox[$i];


zameni sa

Code:
$del_id = $_POST['checkbox'][$i];


Takođe, u brisi.php ne vidim gde ti je $count definisan? To bi bilo count($_POST['checkbox']);

Mada, ja bih izbegavao for petju za takvo brisanje i smestio bih sve to u jedan delete query:

Code:
mysql_query("DELETE FROM tabela WHERE id IN (".implode(",",$_POST['checkbox']).")");

Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

username1987
Ne radim

Član broj: 270860
Poruke: 31
178.77.11.*



Profil

icon Re: Brisanje chekcbox12.12.2010. u 22:48 - pre 161 meseci
Uz malu doradu tvog koda, riješeno. Hvala prijatelju.
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Brisanje chekcbox

[ Pregleda: 1840 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.