Usuwanie z tabeli MySQL na podstawie Tablicy

0

Mam bazę danych.
Mam również w Array listę wszystkich Lp (Liczba porządkowa)
które chcę usunąć. Nie wiem jak mam to wszystko złożyć do
kupy, żeby wskazane rekrody zaczęły mi znikać z mojej tabeli.
Może pomożecie?

Nie wiem co tam w klamry wziąć a co nie.
Bardzo proszę o pomoc.

Coś bym przytoczył. No np.
$sql = "DELETE FROM wpisy WHERE Lp=414";

I co? uwierzycie że nie działa?
Nie wiedzieć czemu.

Php Admin proponuje coś takiego:
"DELETE FROM wpisy WHERE wpisy.Lp = 414"
Ale to również nie działą.

Dzięki za pomoc.
Mój problem jest typowy.

1

Nie działa, bo..? Jakiś błąd..? Komputer Ci się pali..?

0
MexikanoS napisał(a):

Nie działa, bo..? Jakiś błąd..? Komputer Ci się pali..?

Nie pali mi się.
Hmm... nie wiem czemu nie działa.

Jak mam złożyć do kupy Numeryczną Array z numerami Lp do wywalenia
i całą resztę... żeby zadziałało.

Dzięki

0

Poka jak wygląda ta Twoja tabela 'wpisy'.

0

uwierzycie że nie działa?

Co to znaczy "nie działa"? Pokazuje Ci się jakiś błąd?

Ale to również nie działą.

W rozumieniu, że działa z poziomu PMA, lecz nie z Twojego kodu, tak?

0
<?php

$link = mysql_connect('122.138.131.49', 'user', 'tajne');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}else{ echo 'Połączono z bazą!';}

  $aDoor = $_POST['KtoreDoWywalenia'];
  if(empty($aDoor)) 
  {
    echo("You didn't select any records to delete!.");
  } 
  else 
  {
    $N = count($aDoor);

    //echo("You selected $N such: ");
    
    for($i=0; $i < $N; $i++)
    {
      //echo($aDoor[$i] . " ");
    }
  }
  
  //print_r($aDoor);
  // NASTĘPNIE MUSIMY SFORUŁOWAĆ KOMENDE KTÓRA USUNIE NA TE NIECHCIANE WPISY
  
  foreach ($aDoor as $item)
{
    $str .= "".$item . ",";
}

echo $str;

$sql = "DELETE FROM wpisy WHERE Lp=414";

$shoutbox = mysql_query($sql, $link);

?>

No i... normalnie nie działa!

0

normalnie nie działa!

Nikt nie stoi za Tobą, nikt nie widzi Twojego ekranu - pamiętaj, aby opisywać wszystko jak najdokładniej; np. uruchamiam ten kod, nie pokazują się żadne błędy, lecz zmiany nie są wprowadzane do bazy.

$shoutbox = mysql_query($sql, $link);

Nigdzie nie sprawdzasz czy zapytanie się powiodło ;-)

0
Jakub Prażmowski napisał(a):
Jakub Prażmowski napisał(a):

No i... normalnie nie działa!

W czym?

No więc mam ARRAY... i ZWYKŁĘ QUERY muszę zrobić... i jak
z Arraya ma zrobić to zwykłe query, żeby MYSQL to łyknęło
i wykasowało mi kilka pozycji.

Dzięki za pomoc.
To przez tą pogodę.
Może kawy się napiję?

Patryk27 napisał(a):

normalnie nie działa!

Nikt nie stoi za Tobą, nikt nie widzi Twojego ekranu - pamiętaj, aby opisywać wszystko jak najdokładniej; np. uruchamiam ten kod, nie pokazują się żadne błędy, lecz zmiany nie są wprowadzane do bazy.

$shoutbox = mysql_query($sql, $link);

Nigdzie nie sprawdzasz czy zapytanie się powiodło ;-)

Nie pojawiają się żadne błędy bo nie zaimplementowałem obsługi błędów bo mi się nie chce.
Sprawdzam w php adminie czy mi wywaliło rekordy z mojej tabeli.

Nie pojawiają się żadne błędy bo nie zaimplementowałem obsługi błędów bo mi się nie chce.
Sprawdzam w php adminie czy mi wywaliło rekordy z mojej tabeli.

Mam tylko informacje, że połączono z bazą danych.

Nie pojawiają się żadne błędy bo nie zaimplementowałem obsługi błędów bo mi się nie chce.
Sprawdzam w php adminie czy mi wywaliło rekordy z mojej tabeli.

$sql = "DELETE FROM 'wpisy' WHERE 'Lp'=414";

Jak mam zbudować najprostrzye query żeby zadziałało
z pozycji executed script php?

0
if (!mysql_select_db('kubutek_bazadanych', $link)) {
    echo 'Could not select database!';
    }

Hahahaha... zapomniałęm wybrać bazy danych! :D

0
$sql = "DELETE FROM wpisy WHERE Lp = ('417')";

Ok! Lecimy dalej. Tak więc to query działa.
Ale mam więcej Lp niż tylko 417. To jak mam to zapleść, żeby działało no np.

$sql = "DELETE FROM wpisy WHERE Lp = ('417', '416')";

nie działa! :-(

0

ok.

$sql = "DELETE FROM wpisy WHERE IN (421, 422)";

nie działą i

$sql = "DELETE FROM wpisy WHERE IN ('421', '422')";

też nie działa. Jakieś pomysły?

$sql = "DELETE FROM wpisy WHERE IN ('421, 422')";

też nie działa... :-D

1

Po WHERE podaj nazwę kolumny, którą sprawdzasz. I jednak włącz jakąś obsługę błędów.

0
$sql = "DELETE FROM wpisy WHERE Lp IN ('421', '422')";

usunęło tylko 422

$sql = "DELETE FROM wpisy WHERE Lp IN (421, 420)";

usunęło tylko 421

$sql = "DELETE FROM wpisy WHERE Lp IN ('419, 413')";

No zgadnijcie? Tak, tylko 419.

A co mi usunie dwa rekordy?

Dzięki za pomoc!
Kuba

0

A słyszeliście o BEZIE DANYCH?

for($i=0; $i < $N; $i++)
    {
        
            $sql = "DELETE FROM wpisy WHERE Lp = '$aDoor[$i]'";
            mysql_query($sql, $link);
            echo "<br><br>".mysql_errno($link) . ": " . mysql_error($link) . "\n";

    }

Panie Profesorze. Czy dostanę piątkę?

4

U mnie dostałbyś jedynkę

  1. Kiepskie formatowanie kodu
  2. Kiepskie nazewnictwo zmiennych
  3. Używanie przestarzałych funkcji
  4. Brak wiedzy odnośnie korzystania z dokumentacji (bo zaglądając tam wyeliminowalibyśmy punkt 3)
  5. Mieszanie warstwy logiki z prezentacją
  6. Imo - nieprzemyślana baza, bo LP może się zmieniać i nie niesie ze sobą żadnej wartości
  7. Marnujesz czas - swój i nasz, jakbyś wykazał chociaż troszkę pomyślunku - znalazłbyś wszystko sam w internecie.
0

@Jakub Prażmowski - po raz drugi po Tobie sprzątam w tym wątku. Przestań robić bałagan i pisz z sensem, albo całość poleci do kosza.

2

Myślę, że jako reprezentant prawicy patriotycznej, powinieneś rozwiązać problem samodzielnie, a nie lewicowo oglądając się na pomoc innych (jak pisze @axelbest).

0

Panowie. Nie oszukujmy się. Nikt z Was nie pomógł mi w absolutnie niczym. A najśmieszniejsze jest to, że ktoś tam zgrywa ważniaka, że niby to jest najmądrzejszy na świecie. Nie nie. Po prostu zgrywa ważniaka. Sam sobie problem wymyśliłem i sam go rozwiązałem. Ot. Jaja jak berety. Miło popatrzeć i się pośmiać jak koleś pierwszy raz w życiu łączy się z bazą danych i zapomniał wybrać bazy. :-D Hehe.

Dzięki za sprzątanie po mnie!
Pozdrawiam

Kuba

Ps. Jeśli dla Was godło patriotyczne coś znaczy, to ten temat nie poleci do kosza! "Patriotyzm" - mówi wam to coś?


DO HYMNU POLSKI... POWSTAŃ

2

Racja, nie poleci do kosza - bardziej pasuje do perełek.

1 użytkowników online, w tym zalogowanych: 0, gości: 1