Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Prosba s PHP [vyřešeno]  (Přečteno 2127 krát)

luisah

  • Závislák
  • ****
  • Příspěvků: 3704
    • Zobrazit profil
Prosba s PHP [vyřešeno]
« kdy: 19 Července 2008, 14:15:16 »
Předem se omlouvám moderátorům, dovolím si sem hodit drobnou prosbu (kdyžtak sám téma smáznu, pokud to budete vyžadovat)

Vytvořil jsem si skrypt PHP, na update databáze, ale pokud si ve formuláři upravím data a nechám uložit, tak se vše jakoby provede, ale nic se neuloží (vše zůstane při starém. Pokud jsem nezadal podminku WHERE a LIMIT tak se vše uloží OK. Už vážně nevím, kde dělám chybu.
Kód: [Vybrat]
   
    $id = $_POST['id'];
    $autor = $_POST['autor'];
    $email = $_POST['email'];
    $nazev = $_POST['nazev'];
    $typ = $_POST['typ'];
    $okres = $_POST['okres'];
    $clanek = $_POST['clanek'];
       
       $sql = "UPDATE pamatka SET
        autor = '$autor',
        email = '$email',
        nazev = '$nazev',
        typ = '$typ',
        okres = '$okres',
        clanek = '$clanek'
        WHERE  id = '$id'
        LIMIT 1; ";
       

    mysql_query($sql)
        or die("
            <script language='JavaScript'>
                alert('Aktualizace nebyla provedena!');
                history.back();
            </script>
            ");

   

    mysql_close();
« Poslední změna: 21 Července 2008, 15:01:25 od luisah »

Marek_

  • Člen
  • **
  • Příspěvků: 342
    • Zobrazit profil
Re: Prosba s PHP
« Odpověď #1 kdy: 19 Července 2008, 14:26:40 »
co třeba ten středník za jedničkou
openSUSE 13.1
Opera 12 - ano, stale

wam]Spider007

  • Host
Re: Prosba s PHP
« Odpověď #2 kdy: 19 Července 2008, 14:26:52 »
cize ked tam nie je WHERE klauzula a LIMIT tak to ide?...
priciny mozu byt 2-
1) nie je splnena podmienka vo WHERE klauzule
2) LIMIT nema v UPDATE co hladat

luisah

  • Závislák
  • ****
  • Příspěvků: 3704
    • Zobrazit profil
Re: Prosba s PHP
« Odpověď #3 kdy: 19 Července 2008, 14:33:04 »
Sakra chlapi, to musíte být tak rychlí, už jsem chtěl theard smáznout.
Marek_ : ten středník by měl být ok -> už to funguje
wam: chyba byla -> bod č. 1 -> chyba ve formuláři nenadefinoval jsem správně id

I tak díky moc. To tak bývá když na to dobu koukáte, pak se zeptáte a hned na to přijdete :D

Marek_

  • Člen
  • **
  • Příspěvků: 342
    • Zobrazit profil
Re: Prosba s PHP
« Odpověď #4 kdy: 19 Července 2008, 14:41:19 »
LIMIT tam být může, zaručí tím, že se bude updatovat/opravovat jen jeden řádek (nebo tolik, kolik je za limit). Někdy to může odvrátit katastrofu.
openSUSE 13.1
Opera 12 - ano, stale

luisah

  • Závislák
  • ****
  • Příspěvků: 3704
    • Zobrazit profil
Re: Prosba s PHP
« Odpověď #5 kdy: 19 Července 2008, 14:42:34 »
LIMIT tam být může, zaručí tím, že se bude updatovat/opravovat jen jeden řádek (nebo tolik, kolik je za limit). Někdy to může odvrátit katastrofu.
Přesně tak :)

wam]Spider007

  • Host
Re: Prosba s PHP
« Odpověď #6 kdy: 19 Července 2008, 14:58:00 »
LIMIT tam být může, zaručí tím, že se bude updatovat/opravovat jen jeden řádek (nebo tolik, kolik je za limit). Někdy to může odvrátit katastrofu.
to je sice pravda, ale neodporucam to robit, moze to sposobyt vacsie problemy ako sa zda :D

// ale hlavne je, ze sa prislo na pricinu ;)

luisah

  • Závislák
  • ****
  • Příspěvků: 3704
    • Zobrazit profil
Re: Prosba s PHP
« Odpověď #7 kdy: 19 Července 2008, 15:51:22 »
LIMIT tam být může, zaručí tím, že se bude updatovat/opravovat jen jeden řádek (nebo tolik, kolik je za limit). Někdy to může odvrátit katastrofu.
to je sice pravda, ale neodporucam to robit, moze to sposobyt vacsie problemy ako sa zda :D

// ale hlavne je, ze sa prislo na pricinu ;)
A jaký problémy? Nějaká konkrétní situace, abych věděl, na co bych se měl připravit.

wam]Spider007

  • Host
Re: Prosba s PHP
« Odpověď #8 kdy: 19 Července 2008, 16:31:37 »
no napriklad podmienke vyhovuje 5 zaznamov z tabulky a vdaka LIMITu sa updatne len jeden a to ktorykolvek z nich, zalezi na poradi ID pripadne niecoho ineho. Ak na to prides hned nic sa nedeje, ale ak neskoro tak ten jeden riadok sa ti bude hladat dost tazko.
Lepsie je podobnu vec riesit kontrolou napr:
Kód: [Vybrat]
DECLARE P_POCET INT -- zadeklarujes si premennu

-- do premennej P_POCET si zistis kolko riadkov bude updatovanych
SELECT COUNT(*) INTO P_POCET FROM TABULKA WHERE podmienka

IF P_POCET = 1 -- ak je pocet riadkov 1, tak vykonas UPDATE
BEGIN
 -- tu vykonas prikaz UPDATE, ktory bude mat rovnaku WHERE ako ma SELECT o 4 riadky vyssie
END
« Poslední změna: 19 Července 2008, 16:33:13 od wam]Spider007 »

 


Provoz zaštiťuje spolek OpenAlt.