dolar
13.12.2016, 10:20:28
Zrobilam strone do edycji wpisow na blogu... nie dziala mi UPDATE. Wg mnie ma wskazany rekord, ktory ma zedytowac, wszystko powinno grac, a jednak cos jest nei halo. Oto kod :
include 'db.php';
$baza = Db::getInstance();
$czyZalogowany = true;
} else {
header('Location: /logowanie.php'); }
$akcja = $_GET['akcja'];
$id = (int)$_GET['id'];
if ($akcja == 'edytuj' && $id > 0) {
$sql = 'SELECT * FROM blog WHERE id='.$id;
$zapytanieSelect = mysqli_query($baza, $sql);
$wpis = $zapytanieSelect->fetch_all(MYSQLI_ASSOC);
}
'tytul' => '',
'tresc' => ''
));
}
$tytul=$wpis[0]['tytul'];
$tresc=$wpis[0]['tresc'];
$sql4 = "UPDATE `blog` SET `tytul`='$tytul',`tresc`='$tresc' WHERE id=`$id`";
$edytuj = mysqli_query($baza, $sql4);
}
<input type="text" id="tytul" name="tytul" value="<?php echo $tytul ?>"/>
<textarea id="tresc" name="tresc"><?php echo $tresc ?> <input type="submit" name="zapisz" value="zapisz"/>
markonix
13.12.2016, 10:42:26
dolar
13.12.2016, 10:49:06
Niestety wyskakuje blad : Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future
viking
13.12.2016, 10:54:25
To się zdecyduj czego używasz, w tych zapytaniach powyżej jest wyraźnie mysqli.
dolar
13.12.2016, 10:57:47
No dobra fakt. Moj blad. Wyskoczylo mi :
Warning: mysqli_query() expects at least 2 parameters, 1 given in /blog/wpis.php on line 43
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /blog/wpis.php on line 43
Czyli ze nie widzi jakby moich zmiennych? $tytul i $tresc?
markonix
13.12.2016, 11:02:13
Nie, te błędy dotyczą argumentów przesyłanych do funkcji.
Zapytanie to drugi argument, a pierwszy to połączenie z bazą.
dolar
13.12.2016, 11:19:37
Dzisiaj peirwszy raz uzywam UPDATE i chyba jeszcze nad tym posiedze bo nei rozumiem gdzie jest w tej funkcji znajduje se argument - bo z tego o wyskakuje to jest b lad w argmentach gdzies? chce 2 a ja mam tylko 1?
viking
13.12.2016, 11:27:33
Jak czytać dokumentację PHP?W podanych liniach wymagane jest przekazanie adekwatnej liczby parametrów.
dolar
13.12.2016, 11:33:34
Toc ma wszystko podane... :/. Skad ma edytowac, co ma edytowac... czytam i czytam i nie widze bledu, chyba ze moze w zapisie?
viking
13.12.2016, 11:44:42
A co jest w tej linii 43 pliku /blog/wpis.php?
dolar
13.12.2016, 11:46:36
Ok wyeliminowalam tamte bledy, ale nadal nie chce mi sie edytowac w bazie danych. Oto kod:
include 'db.php';
$baza = Db::getInstance();
$czyZalogowany = true;
} else {
header('Location: /logowanie.php'); }
$akcja = $_GET['akcja'];
$id = (int)$_GET['id'];
if ($akcja == 'edytuj' && $id > 0) {
$sql = 'SELECT * FROM blog WHERE id='.$id;
$zapytanieSelect = mysqli_query($baza, $sql);
$wpis = $zapytanieSelect->fetch_all(MYSQLI_ASSOC);
}
'tytul' => '',
'tresc' => ''
));
}
$tytul=$wpis[0]['tytul'];
$tresc=$wpis[0]['tresc'];
$sql4 = "UPDATE `blog` SET `tytul`=[$tytul],`tresc`=[$tresc] WHERE `id`=[$id],";
$edytuj = mysqli_query($baza, $sql4);
$zapytaj = mysqli_query
($baza, $sql4) or
die('Nastapil blad w polaczeniu w zapytaniu do bazy '. mysqli_error
($baza)); }
viking
13.12.2016, 11:55:14
A co to niby za nawiasy [] w zapytaniu?
dolar
13.12.2016, 11:57:31
Wywalenie nawiasow nic nie pomaga - a bo tak probowalam na rozne sposoby ;p
$sql4 = "UPDATE `blog` SET `tytul`=$tytul,`tresc`=$tresc WHERE `id`=$id,";
nospor
13.12.2016, 11:59:24
Masz cale mase bledow w zapytaniu.
Wyswietla ci w ogole ta linijka
or die('Nastapil blad w polaczeniu w zapytaniu do bazy '. mysqli_error($baza));
blad?
Jesli nie, to w ogole tam nei dochodzi.
ps: i po grzyba masz dwa razy wykonywanei to samo zapytanie ....
dolar
13.12.2016, 12:26:40
Niestety wywala taki blad:
Nastapil blad w polaczeniu w zapytaniu do bazyYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1,`tresc`=tresc probna WHERE `id`=11,' at line 1
viking
13.12.2016, 12:31:59
Po id ma nie być przecinka, treść jest stringiem więc jako string ma byc potraktowany.
dolar
13.12.2016, 12:35:05
Hmm faktycznie bledu juz nie wywala ale dalej jakby sie nie edytuje... masakra ile czasu mi to schodzi

Dobra po wpisaniu na sucho tytulu i tresci edytuje! jupi!!! wiec pewnie cos jest nie tak ze zmiennymi moimi
nospor
13.12.2016, 12:52:48
Cytat
wiec pewnie cos jest nie tak ze zmiennymi moimi
No ba.... spojrz dokladnie na swoj kod. przeciez do bazy wkladasz dokladnie to samo co pare linijek wczesniej z bazy pobrales... wiec niby jakim cudem ma sie roznic.... Do bazy masz wkladac dane z forma, no nie?
dolar
13.12.2016, 12:56:35
Cytat(nospor @ 13.12.2016, 12:52:48 )

No ba.... spojrz dokladnie na swoj kod. przeciez do bazy wkladasz dokladnie to samo co pare linijek wczesniej z bazy pobrales... wiec niby jakim cudem ma sie roznic.... Do bazy masz wkladac dane z forma, no nie?
O BOZE! DZIALA!
$tytul1=$_POST['tytul'];
$tresc1=$_POST['tresc'];
$czyPoprawione=false;
$sql4 = "UPDATE `blog` SET `tytul`='$tytul1',`tresc`='$tresc1' WHERE `id`=$id";
$edytuj = mysqli_query($baza, $sql4);
$zapytaj = $edytuj or
die('Nastapil blad w polaczeniu w zapytaniu do bazy'. mysqli_error
($baza)); $czyPoprawione=true;
}
Dziekuje!
nospor
13.12.2016, 12:58:42
A teraz idz i poczytaj o escapowaniu danych, albo o bindowaniu. Bo jak teraz wlozysz apostrof w jakiej pole forma to dostaniesz ladny blad.
dolar
13.12.2016, 13:12:16
To fakt, mam z tym problem, ide czytac, jeszcze raz dzieki! Super ze tutaj samemu sie dochodzi do swoich bledow
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.