Topic: su delete proble

Taigi naudoju siuos skriptus failu trinimui. Paspaudus delete, man paraso "Rows deleted" atrodo kaip ir viskas tvarkoje ir istryne, bet paziuriu i duomenu baze jie buna neistrinti. Galbut esate susidure su kazkuom panasaus ir galbut zinot kur galetu buti problema? Viska sutikrinau keleta kartu ir niekaip nerandu priezasties.

Lentele rusis:
rusis_id
rusis_pav
tipas_id


Pirmas failas

<?php

$host = "xxx";
$user = "xxx";
$password = "xxx";
$database = "xxx";

mysql_connect($host, $user, $password) or die("Nesijungia prie MySQL: " . mysql_error());
mysql_select_db($database) or die("N&#235;ra tokios duombaz&#235;s: " . mysql_error());
mysql_query("SET NAMES CP1257");
if(!isset($cmd))
{

   $result = mysql_query("select * from rusis order by rusis_id");
   

   while($r=mysql_fetch_array($result))
   {
   
      $rusis_pav=$r["rusis_pav"];
      $rusis_id=$r["rusis_id"];
     
     
   
      echo "<a href='delete.php?cmd=delete&rusis_id=$rusis_id'>$rusis_pav - Delete</a>";
      echo "<br>";
    }
}
?>


Antras


<?
$host = "xxx";
$user = "xxx";
$password = "xxx";
$database = "xxx";

mysql_connect($host, $user, $password) or die("Nesijungia prie MySQL: " . mysql_error());
mysql_select_db($database) or die("N&#235;ra tokios duombaz&#235;s: " . mysql_error());
mysql_query("SET NAMES CP1257");



if($_GET["cmd"]=="delete")
{
    $sql = "DELETE FROM rusis WHERE rusis_id=$rusis_id";
    $result = mysql_query($sql);
    echo "Row deleted!";
}
?>

Re: su delete proble

Pas tave tekstas ""Row deleted!" yra išvedamas nepriklausomai nuo to ar eilutės iš tikro buvo ištrintos ar ne. Pradžiai pagal scripto viršuje naudojamus mysql_error() pasidaryk ir toje vietoje, kur trini eilutę. Taip pat pasidomėk ką grąžina funkcija mysql_query() sėkmingos ir nesėkmingos operacijų atvejais.

Re: su delete proble

jei teisingai patikrinau tai mysql query grazina mysql_query(DELETE FROM rusis WHERE rusis_id= ) po lygybes nera $rusis_id, nelabai suprantu kodel?

Re: su delete proble

kestyla wrote:

po lygybes nera $rusis_id, nelabai suprantu kodel?

O kokia to kintamojo reikšmė? (-; kur jis aprašomas?

Re: su delete proble

minde wrote:
kestyla wrote:

po lygybes nera $rusis_id, nelabai suprantu kodel?

O kokia to kintamojo reikšmė? (-; kur jis aprašomas?

imamas is pirmo failo pagal id. Ir siunciamas i sita. Bet kazko nepasiima. Ar as klystu?

Re: su delete proble

kestyla wrote:

imamas is pirmo failo pagal id. Ir siunciamas i sita. Bet kazko nepasiima. Ar as klystu?

Dėl siuntimo tai siunčiamas, bet antrame faile jis niekur nepaimamas. Tikriausiai kalba eina apie aplinką, kurioje automatiškai nesukuriami globalūs kintamieji (sistemos nustatymas register_globals = OFF). Tokioje vieotje kintamasis šiaip iš oro neatsiranda. Tavo atvejų jo ieškoti reikėtų $_GET masyve.

Re: su delete proble

minde wrote:
kestyla wrote:

imamas is pirmo failo pagal id. Ir siunciamas i sita. Bet kazko nepasiima. Ar as klystu?

Dėl siuntimo tai siunčiamas, bet antrame faile jis niekur nepaimamas. Tikriausiai kalba eina apie aplinką, kurioje automatiškai nesukuriami globalūs kintamieji (sistemos nustatymas register_globals = OFF). Tokioje vieotje kintamasis šiaip iš oro neatsiranda. Tavo atvejų jo ieškoti reikėtų $_GET masyve.

gal galetumete placiau pakomentuoti ?

Re: su delete proble

http://www.php.net/manual/en/language.v … ternal.php
http://www.php.net/manual/en/tutorial.forms.php
http://www.php.net/manual/en/language.v … efined.php
http://www.php.net/manual/en/security.globals.php

Re: su delete proble

ivedus  echo $_GET["rusis_id"]; man isveda norima rezultata, bet $rusis_id=$_GET["rusis_id"];  man neveikia. Taip negalima daryti?

Re: su delete proble

Tai parodyk visą antrą failą.

Re: su delete proble

minde wrote:

Tai parodyk visą antrą failą.

<?
$host = "xxx";
$user = "xxx";
$password = "xxx";
$database = "xxx";

mysql_connect($host, $user, $password) or die("Nesijungia prie MySQL: " . mysql_error());
mysql_select_db($database) or die("N&#235;ra tokios duombaz&#235;s: " . mysql_error());
mysql_query("SET NAMES CP1257");



if($_GET["cmd"]=="delete")
{
    $rusis_id=$_GET["rusis_id"];

    $sql = "DELETE FROM rusis WHERE rusis_id=$rusis_id";
    $result = mysql_query($sql);
    echo "Row deleted!";
}
?>

Re: su delete proble

O kodėl niekur netikrini ar užklausa sėkmingai vyksta?

13 (edited by kestyla 2007-12-13 17:12:38)

Re: su delete proble

minde wrote:

O kodėl niekur netikrini ar užklausa sėkmingai vyksta?

kuri funkcija?

jei $_GET["rusis_id"] si tai tikrinau ar veikia, jin isveda man reikalinga rezultata, bet dabar noredamas ta rezultata priskirti kitam kintamajam man neveikia. O jei rankiniu butu ivedu $rusis_id='9'; man istrina tuos duomenis kur yra id-9

Re: su delete proble

kestyla wrote:
minde wrote:

O kodėl niekur netikrini ar užklausa sėkmingai vyksta?

kuri funkcija?

jei $_GET["rusis_id"] si tai tikrinau ar veikia, jin isveda man reikalinga rezultata, bet dabar noredamas ta rezultata priskirti kitam kintamajam man neveikia. O jei rankiniu butu ivedu $rusis_id='9'; man istrina tuos duomenis kur yra id-9

Aš kalbėjau apie mysql_query() funkciją, kurios klaidos tu niekaip netikrini. Beto yra nemažas skirtumas tarp diejų sakinių:

$rusis_id='9'
$rusis_id=9;

Kaip manai, kuris variantas veikia jeigu per URL perduoti: scriptas.php?kintamasis=9   ?

15 (edited by kestyla 2007-12-13 21:27:46)

Re: su delete proble

minde wrote:
kestyla wrote:
minde wrote:

O kodėl niekur netikrini ar užklausa sėkmingai vyksta?

kuri funkcija?

jei $_GET["rusis_id"] si tai tikrinau ar veikia, jin isveda man reikalinga rezultata, bet dabar noredamas ta rezultata priskirti kitam kintamajam man neveikia. O jei rankiniu butu ivedu $rusis_id='9'; man istrina tuos duomenis kur yra id-9

Aš kalbėjau apie mysql_query() funkciją, kurios klaidos tu niekaip netikrini. Beto yra nemažas skirtumas tarp diejų sakinių:

$rusis_id='9'
$rusis_id=9;

Kaip manai, kuris variantas veikia jeigu per URL perduoti: scriptas.php?kintamasis=9   ?

Taip kai buna $rusis_id=9; tada neveikia.
o kaip ja patikrinti, bandziau su tuo OR DIE, bet nieko nemeta is vis galbut blogai ivedu, gal galetumete konkreciau pagelbeti?
padarius  $rusis_id='$_GET["rusis_id"]'; viena karta istryne, antra karta nebetrina.

Re: su delete proble

kestyla wrote:

Taip kai buna $rusis_id=9; tada neveikia.
o kaip ja patikrinti, bandziau su tuo OR DIE, bet nieko nemeta is vis galbut blogai ivedu, gal galetumete konkreciau pagelbeti?

Matai čia reikia mokytis pradmenis. Kas iš to, kad aš tau pasakysiu konkrečiai kas blogai, jeigu tu kažką programuoji tai po 5min. vėl susidursi su panašia "problema" prie kurios vėl sėdėsi 2 dienas.

Kur apie PHP kintamųjų tipus pasiskaityti jau daviau nuorodas, o apie MySQL'o gal tiks čia: http://dev.mysql.com/doc/refman/4.1/en/literals.html

Re: su delete proble

patikrinau klaida, meta: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '["rusis_id"]' at line 1

Re: su delete proble

kestyla wrote:

patikrinau klaida, meta: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '["rusis_id"]' at line 1

Tai ištaisyk.

19 (edited by kestyla 2007-12-16 16:17:28)

Re: su delete proble

minde wrote:
kestyla wrote:

patikrinau klaida, meta: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '["rusis_id"]' at line 1

Tai ištaisyk.

nuemiau kabutes ir dabar veikia, taip ir nesupratau kodel pradzioje neveike kai taip buvau padares, o dabar veikia :(

nes buvau padares $rusis_id='$_GET["rusis_id"]'; bet pacioj pradzioje bandymu buvau padares taip kaip ir dabar bet neveike. Mistika kazkokia.

20 (edited by kestyla 2007-12-20 18:50:04)

Re: su delete proble

Minde su dideliu prasymu kreipiuos i tave, ar gali padeti. As buvau istaises cia tam delete klaida, bet taip ir nesupratau kas cia buvo blogai.
Dabar turiu siek tiek kitoki koda:


<?php
$host = "aaa";
$user = "aaao";
$password = "aaa";
$database = "aaa";

mysql_connect($host, $user, $password) or die("Nesijungia prie MySQL: " . mysql_error());
mysql_select_db($database) or die("N?ra tokios duombaz?s: " . mysql_error());
mysql_query("SET NAMES CP1257");




if($_POST["cmd"]=="edit")
{

  $rusis_id = $_POST["rusis_id"];
$rusis_pav = $_POST["rusis_pav"];
       


      $sql = "UPDATE rusis SET rusis_pav='$rusis_pav' WHERE rusis_id=$rusis_id";

      $result = mysql_query($sql)or die( mysql_error());
   

   }
?>



Ir man meta tokia: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


Nesuprantu kas cia netinka, ir taip ir taip ziuriu atrodo viskas gerai, bet neveikia vistiek.

Ar galetum padeti?