usuwanie rekordu (javascript,php,mysql)

0

Mam taki problemik, otoz nie dziala mi skrypt usuwajacy rekord. Chodzi o to,że skrypt usunie rekord tylko i wylacznie wtedy kiedy id jest liczba typu int. Czyli np jesli id_budynek = 34 to usunie,ale jesli id_budynek = a34 to nie dziala. Oto kody:

<?php
//rozpoczęcie sesji
session_name("SZBD");
session_start();

//je_li zmieniana jest tabela zmienna zapisywana jest w sesji a strona ponownie przeladowywana już bez zmiennej tabela
if(isset($_GET['tabela'])) { $_SESSION['tabela'] = htmlspecialchars($_GET['tabela']); ?><script>location.href='./index.php';</script><?php }
//zmienna odpowiedzialna za okre_lanie operacji zapisywana jest do zwykłej zmiennej
if(isset($_POST['op'])) { $op = $_POST['op']; } elseif(isset($_GET['op'])) { $op = $_GET['op']; } else { $op = "pokaz"; }
//je_li strona otwarta jest poraz pierwszy zmienna sesyjna jest ustawiana na tabelę klient
if(!isset($_SESSION['tabela'])) { $_SESSION['tabela'] = "budynek"; }

include 'laczenie.php';
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  <meta name="author" content="Grzegorz Rydzkowski ">
  <title>Interfejs Baza Danych Autor: Rydzkowski</title>
  <link rel="stylesheet" href="./style.css" type="text/css">
  <script type="text/javascript" src="./funcs.js"></script>
 </head>

 <body>



  <div><b>Wybierz tabelę:</b>
    <select onchange="przeladuj(this);">
    
    <optgroup  label="komputer">
     	<option value="komputer_nowe" <?php if($_SESSION['tabela'] == "komputer_nowe") { echo "selected"; } ?> >komputer nowe</option>
	<option value="komputer_uzywane" <?php  if($_SESSION['tabela'] == "komputer_uzywane") { echo "selected";} ?> >komputer uzywane</option>
    </optgroup>
    	<option value="budynek" <?php if($_SESSION['tabela'] == "budynek") { echo "selected"; } ?> >budynek</option>
	<option value="pokoj" <?php if($_SESSION['tabela'] == "pokoj") { echo "selected"; } ?> >pokoj</option>
	<option value="stan" <?php if($_SESSION['tabela'] == "stan") { echo "selected"; } ?> >stan</option>
	
		
   </select>
  </div>
  <div class="head">Aktualna tabela: <?php echo $_SESSION['tabela']; ?></div>

  <div style="height: 30px; width: 270px; margin: auto; margin-bottom: 30px;">

   <div style="float: left; margin: 0 5px;"><input type="button" name="refresh" value="Podgląd tabeli" class="b" onclick="location.href='index.php?op=pokaz'"></div>
   <div style="float: left; margin: 0 5px;"><input type="button" name="new" value="Dodaj nowy rekord" class="b" onclick="location.href='index.php?op=dodaj'"></div>
  
  </div>
  
  

  <?php
   //w zależno_ci co chce zrobić użytkownik, taki plik zostanie wczytany
   switch($op) {
     case 'pokaz': include('show.php'); break;
     case 'dodaj': include('new.php'); break;
     case 'usun': include('delete.php'); break;
     case 'edytuj': include('edit.php'); break;
     case 'szukaj': include('search_result.php');break;
     default: include('error.php'); break;
   }
   ?>

 </body>
</html>

<?php
//zamknięcie połšczenia z bazš danych
mysql_close($link);
?> 
 <?php
if($_SESSION['tabela'] != "wiezniowie")
{
  $b = (string)$_GET['b']; //dla bezpieczeństwa wycišgamy ze mniennej tylko warto_ć liczbowš
  $kolumna = "id_".$_SESSION['tabela'];
  $query2 = mysql_query('DELETE FROM '.$_SESSION['tabela'].' WHERE '.$kolumna.' = "'.$b.'"',$link)or die(mysql_error());
  //$query1 = mysql_query('SELECT * FROM '.$_SESSION['tabela'].'',$link )

  //wy_wietlenie odpowiedniego komunikatu w zależno_ci czy sie powiodło czy nie
  if($query2) {
    echo '<div class="good">Rekord usunięty</div>';
  } else {
    echo '<div class="bad">Rekord nie został usunięty!<br>'.mysql_error($link).'</div>';
  }
}

?>

i plik java script

 //funkcja odpowiedzialna za przeladowanie strony po wyborze innej tabeli z pola select
function przeladuj(a) {
  val = a.value;
  location.href='index.php?tabela='+val;
 return true;
}

//funkcja odpowiedzialna za przej_cie do strony edycji rekordu
function edytuj(a) {
  location.href='index.php?op=edytuj&b='+a;
 return true;
}

//funkcja odpowiedzialna za przej_cie dostrony usuwania rekordu
//przenosi na stronę dopiero po potwierdzeniu usuwania
function usun(a) {
  if(confirm("Czy napewno chcesz usunąć rekord o id "+a+"?")) {
    location.href='index.php?op=usun&b='+a;
  }
 return true;
}

Przejrzalem kod php i wg mnie jest ok, wiec domyslam sie,ze chodzi o java script ktorego kompeltnie nie znam, dlatego prosze Was o pomoc ;) co zmienic zeby dzialalo, niezaleznie czy to bedzie liczba typu calkowitego czy ciag znakow.

0

LIKE porównuje ciągi tekstowe uwzględniając ich kodowanie, natomiast "=" porównuje wartość binarną ciągu, która w różnych kodowaniach będzie różna dla tego samego ciągu tekstowego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.