« 1 2 »
Autor Zpráva
zdenek
Profil
ahoj, mám problém. nevíte kde mám chybu?

if ($kontrola==****) {
        mysql_connect("localhost", "root", "****");
        mysql_select_db("root");
        mysql_query("set names utf8");
        $sql = mysql_query("UPDATE hlavni SET text=$text WHERE autor=´$id´");
        

předem děkuju za odpověď.

Moderátor Davex: Doplnění původního titulku „editace záznamů v databázi“.
Webotikon
Profil
zdenek:
nevíte kde mám chybu?
Vypíš si mysql_error () a zistíš sám. :-)
quiet_user
Profil
Pokud se přihlasuješ do localhostu, tak bez hesla, takže místo "****" nechat jen ""

PS: Pokud to tím není, napiš co Ti to píše za chybu.
panther
Profil
zdenek:
a co to dělá/nedělá a dělat/nedělat by mělo? Příště buď, prosím, konkrétnější.

Vypiš si mysql_error(), máš syntaktickou chybu v dotazu.
zdenek
Profil
Webotikon:
Vypíš si mysql_error () a zistíš sám. :-)
to tam mám, ale zobrazí mi to jen práznou stránku.
Webotikon
Profil
zdenek:
to tam mám, ale zobrazí mi to jen práznou stránku.
Blbosť, ako si to zapísal? Pre istotu si zapni vypisovanie všetkých chybových hlášok:
error_reporting (E_ALL);
quiet_user
Profil
if ($kontrola==****) {


má dělat co?
taky bys mohl říct kam se připojuješ a je nesmysl, aby ti mysql_error() nic nevypsalo
zdenek
Profil
Webotikon:
Blbosť, ako si to zapísal?
takhle:

	if ($kontrola==****) {
		mysql_connect("localhost", "root", "****");
		mysql_select_db("root");
		mysql_query("set names utf8");
		$sql = mysql_query("UPDATE hlavni SET text=$text WHERE autor=´$id´");
if ($sql){

   echo ("Text byl úspěšně vložen. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");

	}
	else print(.mysql_error());
	}
zdenek
Profil
quiet_user:
má dělat co?

posílám si kontrolu od admina, abych si ověřil, zda je to opravdu admin. jestli se $kontrola==můj kód,

připoj se do databáze a updatuj záznam, kde se id=$id.
Webotikon
Profil
A toto ti čo vypíše?
$sql = mysql_query("UPDATE hlavni SET text=$text WHERE autor=´$id´") or die (mysql_error ());
Keeehi
Profil
zdenek:
Máš tam chyby, jak v PHP, tak i SQL dotazu.

if ($kontrola=="****") {

else print(mysql_error());
Co V tom tvém kódu dělá ta tečka která je tam navíc?

Když tohle opravíš, měla by se ti konečně zobrazit chyba v SQL.

Doufám, že víš, že místo hvězdiček tam má být přihlašovaní jméno. V té podmínce nevím co má být, ale ty by jsi to měl vědět.
zdenek
Profil
takhle vypadá celý zdrojový kód:

<?php


$id = trim($_GET['id'];);

$autor=$_POST['autor'];
$text=$_POST['text'];
$kontrola=$_POST['kontrola'];

if (empty($autor)) {
	echo("Musíte vyplnit pole autor. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");
}
elseif (empty($text)){
	echo("Musíte vyplnit pole text. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");
}
elseif (empty($kontrola)){
	echo("Musíte vyplnit pole kontrola. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");
}
else {
	
	if ($kontrola==****) {
		mysql_connect("localhost", "root", "*****");
		mysql_select_db("root");
		mysql_query("set names utf8");
		$sql = mysql_query("UPDATE hlavni SET text=$text WHERE id=´$id´") or die (mysql_error ());
if ($sql){

   echo ("Text byl úspěšně vložen. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");

	}
	else echo (Vyskytla se chyba.);
	}
else
	echo "Kontrola byla špatně zadána. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>";
}
?>


kde mám chybu?
Keeehi
Profil
řádky 21(PHP), 25(SQL), 31(PHP)
zdenek
Profil
Keeehi:
Když tohle opravíš, měla by se ti konečně zobrazit chyba v SQL.
opět nic.... já fakt nevím...
zdenek
Profil
co mám na řádku 25?
Keeehi
Profil
Tam je ta chyba v tom dotazu. Zatím mi to však přijde, že se ho to nepokusilo zatím ani jednou provést, neboť to vždy selže na úrovni PHP (syntax error).
zdenek
Profil
a nevíš co s tím?
Keeehi
Profil
Vím, ale mohl by jsi zkusit na to přijít sám.
Nápověda: Jak se liší řetězec od čísla? Resp. co je potřeba navíc, když chci zapsat text, než když chci zapsat "jen" číslo?

Pokud máš na mysli ty chyba v php, tak je opravit. Vlastně všechny chyby (Jak PHP tak i v SQL) jsou ty, že si nedáváš pozor při zapisování řetězců.
zdenek
Profil
já se omlouvám, ale opravdu nevím. jsem zoufalý, prosím o pomoc..
zdenek
Profil
mohl bych vás požádat o alespoň část kódu? pracuju na tom už asi 3 měsíce, a nevím si s tím rady...
zdenek
Profil
ještě připomínka. v kódu

if ($kontrola=="4321") {
		mysql_connect("localhost", "root", "****");
		mysql_select_db("root");
		mysql_query("set names utf8");
		$sql ="UPDATE hlavni SET text=$text WHERE id=´$id´";
		$result = mysql_query($sql);  or die (mysql_error ());

je u té kontroly součíslí :4321.

je nějaký rozdíl, mezi tím, jestli tam bude text, nebo čísla?
panther
Profil
zdenek:
ta chybová hlášení PHP ignoruješ schválně? Na 6. řádku máš další z řady syntaktických chyb. A ta v tom dotazu stále trvá.

je nějaký rozdíl, mezi tím, jestli tam bude text, nebo čísla?
zkus si, jaký je rozdíl mezi
echo 1234;
echo text;
zdenek
Profil
panther:
ta chybová hlášení PHP ignoruješ schválně? Na 6. řádku máš další z řady syntaktických chyb. A ta v tom dotazu stále trvá.

já bych rád to změnil, pomocí nějakých vypsaných chyb, ale mě se žádný nezobrazujou... tam je ten problém
panther
Profil
zdenek:
tak minimálně nečteš, co je ti tu razeno. Už to tu jedno padlo. [#6]
zdenek
Profil
a kam se má vložit error_reporting (E_ALL);??
panther
Profil
zdenek:
na začátek souboru.
zdenek
Profil
a má tam být echo??
panther
Profil
zdenek:
podívej se do manuálu, jak se ta funkce používá. Mě fakt nebaví pořád dokola odpovídat na základní věci, které si můžeš zkusit nebo vyčíst z manuálu.

Kdyby tam echo mělo být, bylo by zmíněno i v [#6];
zdenek
Profil
sice budu vypadat jako magor, ale zase se mi nic nezobrazilo. já už opravdu nevím.
panther
Profil
zdenek:
<?php

error_reporting(E_ALL);
$id = trim($_GET['id'];);

$autor=$_POST['autor'];
$text=$_POST['text'];
$kontrola=$_POST['kontrola'];

if (empty($autor)) {
    echo("Musíte vyplnit pole autor. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");
}
elseif (empty($text)){
    echo("Musíte vyplnit pole text. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");
}
elseif (empty($kontrola)){
    echo("Musíte vyplnit pole kontrola. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");
}
else {
    
    if ($kontrola=='****') {
        mysql_connect("localhost", "root", "*****");
        mysql_select_db("root");
        mysql_query("set names utf8");
        $sql = mysql_query("UPDATE hlavni SET text='$text' WHERE id=" . (int)$id) or die (mysql_error ());
if ($sql){

   echo ("Text byl úspěšně vložen. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>");

    }
    else echo ('Vyskytla se chyba.');
    }
else
    echo "Kontrola byla špatně zadána. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>";
}
?>

U echa jsou ty závorky zbytečné, staší uvozovky/apostrofy.
Textový vstup do DB by měl být ošetřen, tedy mysql_real_escape_string() pro řetězce, (int) pro čísla.
« 1 2 »

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0