Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Usuwanie rekordu z bazy danych - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Usuwanie rekordu z bazy danych (/thread-usuwanie-rekordu-z-bazy-danych--4805)

Strony: 1 2


Usuwanie rekordu z bazy danych - Shamann - 04-09-2010

Witam, wiem że postów w tym temacie jest masę ale mimo przeczytania wielu nie znalazłem sposobu na usunięcie rekordu z BD i nie znalazłem błędu w moim kodzie, tak wyglądają moje pliki .php

edit_car.php


@ $db = new mysqli( 'nazwa', 'login', 'haslo', 'nazwa bazy');

if (mysqli_connect_errno())
{
echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.<br /><br />';
exit;
}

$zapytanie = "select * from car";
$wynik = $db->query($zapytanie);

$ile_znalezionych = $wynik->num_rows;

echo '<div style="color: black; margin-left: 10px;"><p>ilość samochodów w ofercie: '.$ile_znalezionych.'</p>';

for ($i=0; $i <$ile_znalezionych; $i++)
{

$wiersz = $wynik->fetch_assoc();



echo '<tr> <td style="border: 1px solid dimgray; background-color: #CCCCCC;"> <b>'.($i+1).'</b></td>';

echo'<td style="border: 1px solid dimgray;">'.$wiersz['model'].'</td>';

echo'<td style="border: 1px solid dimgray;">'.$wiersz['przedz1'].'zł</td>';

echo'<td style="border: 1px solid dimgray;">'.$wiersz['przedz2'].'zł</td>';

echo'<td style="border: 1px solid dimgray;">'.$wiersz['przedz3'].'zł</td>';

echo'<td style="border: 1px solid dimgray;">'.$wiersz['przedz4'].'zł</td>';

echo'<td style="border: 1px solid dimgray;">'.$wiersz['debet'].'zł</td>';



echo'<td style="border: 1px solid dimgray; background-color: white; "><a href="usun.php?id_usun='.$wiersz['model'].'"><img src="grafika/delete.png" border="0"/></a></td></tr>';



}

$wynik->free();
$db->close();

odczytane rekordy ładnie wyświetla mi w systemie, problem z ich usunięciem

usun.php

@ $db = new mysqli( 'nazwa', 'login', 'haslo', 'nazwa bazy');


if (mysqli_connect_errno())
{
echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
exit;
}

if ( isset($_GET['id_usun']) ) {
$id = $_GET['id_usun'];
$query2 = "DELETE FROM `car` WHERE `model`=$id";
$result2 = mysql_query($query2);
}
echo "usunięto <br />";


$wynik->free();
$db->close();


podam może plik .sql bo może w strukturze jest problem:

create table car
(
model char(50) not null primary key,
przedz1 float(6) not null,
przedz2 float(6) not null,
przedz3 float(6) not null,
przedz4 float(6) not null,
debet float(6) not null,
plik_nazwa char(50) not null

);

Z góry dziękuje za pomoc.


RE: Usuwanie rekordu z bazy danych - dziamber - 04-09-2010

Może spróbuj usunąć cudzysłowy z nazwy tabeli, zamiast 'car' niech będzie car


RE: Usuwanie rekordu z bazy danych - kancik - 04-09-2010

(04-09-2010, 22:31)dziamber napisał(a): Może spróbuj usunąć cudzysłowy z nazwy tabeli, zamiast 'car' niech będzie car

nie jest tam 'car' lecz `car` co poprostu nic nie przeszkadza a tylko ułatwia pracę z kodem.

Ja już próbowalem pomóc via PW no ale nie moge się do patrzeć błędu. Z początku myślałem , że brakuje w miejscu
Kod PHP:
$query2 "DELETE FROM `car` WHERE `model`=$id"
popsrotu '' między $id bo podane jest w bazie ten model jako char. no ale i tak nie działa to @Shamann


RE: Usuwanie rekordu z bazy danych - Jag - 05-09-2010

daj
$query2 = "DELETE FROM car WHERE `model`=$id";
lub
$query2 = "DELETE FROM 'car' WHERE `model`=$id";

obstawiam ze chodzi o to ze sotujesz ten sam typ "cudzyslowia" w nazwie tabeli i w rekordzie Tongue


RE: Usuwanie rekordu z bazy danych - Pedro84 - 05-09-2010

Jak już coś to:
Kod PHP:
$query2 "DELETE FROM `car` WHERE `model` = '$id' "



RE: Usuwanie rekordu z bazy danych - Shamann - 05-09-2010

(05-09-2010, 04:16)Pedro84 napisał(a): Jak już coś to:
Kod PHP:
$query2 "DELETE FROM `car` WHERE `model` = '$id' "


dalej nic nie skutkuje, może jeszcze jakieś pomysły?


RE: Usuwanie rekordu z bazy danych - kancik - 05-09-2010

(05-09-2010, 03:31)Jag napisał(a): daj
$query2 = "DELETE FROM car WHERE `model`=$id";
lub
$query2 = "DELETE FROM 'car' WHERE `model`=$id";

obstawiam ze chodzi o to ze sotujesz ten sam typ "cudzyslowia" w nazwie tabeli i w rekordzie Tongue

człowieku weź schowaj się. nie znasz się na temacie to milcz. ` ` jest neutralne. tylko po to by sobie ułatwic pracę i żeby to jakoś wyglądało


a co do Pedro84 to nie ma znaczenia czy są te spacje czy nie . wieć nie nabijaj sobie postów Smile


RE: Usuwanie rekordu z bazy danych - Shamann - 05-09-2010

może problem jest po stronie sql

create table car
(
model char(50) not null primary key,
przedz1 float(6) not null,
przedz2 float(6) not null,
przedz3 float(6) not null,
przedz4 float(6) not null,
debet float(6) not null,
plik_nazwa char(50) not null

);

jest to poprawnie?


RE: Usuwanie rekordu z bazy danych - kancik - 05-09-2010

(05-09-2010, 15:38)Shamann napisał(a): może problem jest po stronie sql

create table car
(
model char(50) not null primary key,
przedz1 float(6) not null,
przedz2 float(6) not null,
przedz3 float(6) not null,
przedz4 float(6) not null,
debet float(6) not null,
plik_nazwa char(50) not null

);

jest to poprawnie?



skoro phpmyadmin to przyjął to jest , jednakże u Ciebie identyfikatorem jest model i ma typ char , ja stosuje zawsze int
Kod PHP:
`modelint(11NOT NULL auto_increment

a o kod zobacz co się wyświetli bo coś musi
Kod PHP:
<?php

if ( isset($_GET['id_usun']) ) 
    {
    
$id $_GET['id_usun'];
    
$query2 "DELETE FROM `car` WHERE `model`=$id";
    
// lub $query2 = "DELETE FROM `car` WHERE `model`='$id'";
    
$result2 mysql_query($query2);
    if ( 
$result2 )
        {
        echo 
'usunieto';
        }
        else
        {
        echo 
'nie usunieto';
        }
    }
    else
    {
    echo 
'nie podano id';
    }

?>
musi się coś wyświetlić . a zobacz jeszcze jak link wygląda przykładowy . czy dobrze podaje id_usun


RE: Usuwanie rekordu z bazy danych - Shamann - 05-09-2010

(05-09-2010, 15:45)kancik napisał(a):
(05-09-2010, 15:38)Shamann napisał(a): może problem jest po stronie sql

create table car
(
model char(50) not null primary key,
przedz1 float(6) not null,
przedz2 float(6) not null,
przedz3 float(6) not null,
przedz4 float(6) not null,
debet float(6) not null,
plik_nazwa char(50) not null

);

jest to poprawnie?



skoro phpmyadmin to przyjął to jest , jednakże u Ciebie identyfikatorem jest model i ma typ char , ja stosuje zawsze int
Kod PHP:
`modelint(11NOT NULL auto_increment

a o kod zobacz co się wyświetli bo coś musi
Kod PHP:
<?php

if ( isset($_GET['id_usun']) ) 
    {
    
$id $_GET['id_usun'];
    
$query2 "DELETE FROM `car` WHERE `model`=$id";
    
// lub $query2 = "DELETE FROM `car` WHERE `model`='$id'";
    
$result2 mysql_query($query2);
    if ( 
$result2 )
        {
        echo 
'usunieto';
        }
        else
        {
        echo 
'nie usunieto';
        }
    }
    else
    {
    echo 
'nie podano id';
    }

?>
musi się coś wyświetlić . a zobacz jeszcze jak link wygląda przykładowy . czy dobrze podaje id_usun



wyświetla się nie usunięto