neo1986kk
26.12.2009, 17:43:13
Witam, przeczytałem kilkanaście tematów na forum i trochę zrozumiałem zasadę działania, ale nie wiem jak to przełożyć na mój kod. Proszę o sprawdzenie moich wypocin:P
plik wiadomości.php
<?
include('zbaza.php');
$query = "SELECT * FROM wiadomoscia";
echo '<center><table border="1">'; echo '<tr><td align="center">ZAZNACZ</td><td align="center">DATA</td><td
align="center">WIADOMOŚĆ</td></tr>';
echo '<form action="usunz.php" method="post">'; $i=1;
{
echo '<tr><td align="center">'.$i.'<input type="checkbox" name="usunz[]" value="'. $wiersz1[0].'"></td><td
align="center">'. $wiersz1[1].'</td><td align="center">'. $wiersz1[2].'</td></tr>';
$i=$i+1;
}
echo '<input type="submit" value="usun zaznaczone">';
?>
usunz.php
<?
if (!empty($_POST['usunz'])){ foreach ($_POST['usunz'] as $value) echo $value.'<br />'; }
?>
i tu wyswietla tylko jeden rekord ten najwyższy:(
skowron-line
26.12.2009, 19:03:23
Szkoda że nie napisałeś co chcesz osiągnąć.
Ale proponuje zacząć od wyświetlenia sobie tego co jest tam przesyłane.
i zobacz sobie co pokazuje tablica usunz.
neo1986kk
26.12.2009, 19:10:17
Chcę osiągnąć listę wiadomości, przy których będą checkboxy i użytkownik może zaznaczyć kilka po czym kliknie "usun zaznaczone" i z bazy danych się one usuną. Narazie kombinuje co tu zrobić żeby wyświetlał wszystkie ID a poźniej wrzucę usuwanie rekordów z bazy po ID:)
po wpisaniu tego kodu wyświetla:
Array
(
[usunz] => Array
(
[$i] => 28
)
)
28
skowron-line
26.12.2009, 19:14:06
Musisz osiągnąć coś takiego.
Kod
Array
(
[usunz] => Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 5
[4] => 6
)
)
Później dasz sobie zapytanie.
DELETE FROM tabela WHERE id IN ( '. join( ',', $_POST['usunz'] ) .' )
I tyle.
neo1986kk
26.12.2009, 19:47:28
ehh no mam już wszystko w porządku, ale nie wiem jak skonstruować zapytanie do bazy, gdyż to co podałeś niestety nie działa. Piszę w php coś takiego:
$zapytanie= "DELETE * FROM wiadomoscia WHERE id IN ( '. join( ',', $_POST['usunz'] ) .' )";
i pokazuje się błąd.
skowron-line
26.12.2009, 20:06:50
Cytat(neo1986kk @ 26.12.2009, 19:47:28 )

i pokazuje się błąd.
załamujesz mnie. Chociaż w święta miej litość. JAKI BŁĄD
neo1986kk
26.12.2009, 20:10:57
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
Teraz tak pomyślalem ze może zamiast join można by zrobić coś takiego:
1.obliczyc ile jest elementów tablicy
2.zrobić pętle zeby usuwał dla wszystkich elementów ID które jest zapisane w tablicy czyli
for($i=1, $i<$ilosc elementow, $i++)
{
$zapytanie="delete from table where id=$_POST['usunz'][$i]";
}
jak myślisz?
skowron-line
26.12.2009, 20:19:48
Cytat(neo1986kk @ 26.12.2009, 20:10:57 )

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
A czy nie masz kolorowania składni w swoim edytorze

$zapytanie= 'DELETE * FROM wiadomoscia WHERE id IN ( '. join( ',', $_POST['usunz'] ) .' )';
neo1986kk
26.12.2009, 20:22:31
wiesz co? ja to pisze w notatniku:P
no tak już teraz jest wszystko w porządku ale jest jak zwykle jedno ale... nie usuwa rekordów...
if($zapytanie){echo 'udalo sie';};
wyświetla: udało się ale nie usuwa z bazy
skowron-line
26.12.2009, 20:26:01
Cytat(neo1986kk @ 26.12.2009, 20:22:31 )

wiesz co? ja to pisze w notatniku:P
o majn got. Jest temat o edytorze poczytaj i wybierz sobie coś bo na notatniku daleko nie pociągniesz.
Ja na tym kompie mam notpad2.
neo1986kk
26.12.2009, 20:28:43
<?
include('zbaza.php');
$query= 'DELETE * FROM wiadomoscia WHERE id IN ( '. join( ',', $_POST['usunz'] ) .' )';
$result = mysql_query ($query);
if($result){echo 'udalo sie';};
?>
No teraz nie wyswietla ze sie udalo...
skowron-line
26.12.2009, 20:32:53
neo1986kk
26.12.2009, 22:23:52
nie no tego to nie kumam juz w ogole, zapisałem mu coś takiego:
[PHP]
pobierz,
plaintext - if (!$link) {
- die('Could not connect: ' . mysql_error());
- }
- mysql_select_db('mydb');
- /* this should return the correct numbers of deleted records */
- mysql_query('DELETE * FROM wiadomoscia WHERE id IN ( '. join( ',', $_POST['usunz'] ) .' )');
- printf("Records deleted: %d\n", mysql_affected_rows());
[PHP]
pobierz,
plaintext ale pokazuje Records deleted: -1
acha zanim pomyśle to pisze:P czyli że zapytanie sie nie powiodło...
Ale dlaczego?
Może się to komuś przyda. Pewnie można to zrobić prościej ale ja to zrobiłem tak i działa:
<?php
include('zbaza.php');
$query= 'DELETE FROM wiadomoscia WHERE `id` = '. join( ' OR `id`=', $_POST['usunz'] ) .' '; if($result){echo 'udalo sie';};
?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.