Autor | Zpráva | ||
---|---|---|---|
Pavel Vodnář Profil * |
#1 · Zasláno: 21. 2. 2011, 16:42:53
Ahojky, mám kód:
$submit = $_POST['submit']; $selected_radio2 = $_POST['puntik']; $nadpis2 = $_POST['nadpis']; $text2 = $_POST['text']; $fupload = $_POST['fupload']; $date = date("Y-m-d"); $time= date("H:i:s"); $name=$_SESSION["loggeduser"]; $vypis="SELECT zadavatel,nadpis, text, picture FROM inzeraty WHERE id_inzeratu='".$_GET["id_inzeratu"]."'"; $vysledek = MySQL_Query($vypis); if ($vystup_z_db = mysql_fetch_array($vysledek)) { $text=$vystup_z_db["text"]; $nadpis=$vystup_z_db["nadpis"]; $picture=$vystup_z_db["picture"]; $zadavatel=$vystup_z_db["zadavatel"]; //echo $nadpis; //echo $text; $nadpis = $_POST['nadpis']; $text = $_POST['text']; //echo $_GET["id_inzeratu"]; if ($submit) { echo $_GET["id_inzeratu"]; $queryreg = mysql_query(" INSERT INTO inzeraty VALUES ('$id','','$kategorie','$nadpis2','$text2','$date','$name','$nam','$time') WHERE id_inzeratu='".$_GET["id_inzeratu"]."' "); } } Proč to nezapíše do DB: $nadpis2 = $_POST['nadpis']; $text2 = $_POST['text']; ? díky |
||
panther Profil |
#2 · Zasláno: 21. 2. 2011, 16:52:42
Pavel Vodnář:
podívej se na syntaxi INSERTu, něco ti tam přebývá. |
||
Taps Profil |
#3 · Zasláno: 21. 2. 2011, 16:53:33
Pavel Vodnář:
vlož sem ještě kod formuláře, ze kterého odesíláš data |
||
Pavel Vodnář Profil * |
#4 · Zasláno: 21. 2. 2011, 16:58:02
Taps:
formulář je zde: <form action="oprava-inzeratu.php" method="POST" enctype="multipart/form-data"> <table cellpadding="3" cellspacing="4" border="0"> <tr> <td>Výběr kategorie:</td> <td><input type="radio" value="n" name="puntik" >Nabídka <input type="radio" value="p" name="puntik" >Poptávka</td> </tr> <tr> <td>Nadpis inzerátu:</td> <td><input type="text" name="nadpis" size="50" value="<?echo $nadpis=$vystup_z_db["nadpis"];?>"></td> </tr> <tr> <td>Text inzerátu:</td> <td><TEXTAREA rows="12" style="width:100%" name="text" > <?echo $text=$vystup_z_db["text"];?></TEXTAREA></td> </tr> <tr><td>Obrázek:</td><td><input type="file" name="fupload" style="width:400px;" accept="image/*"/></td><tr> <tr> <td></td><td><input type="submit" name="submit" value="Pokračovat"/></td> </tr> </table> </form> |
||
dan55 Profil |
#5 · Zasláno: 21. 2. 2011, 17:00:30
Pavel Vodnář:
Už ti odpověděli, ale pozor, až ten tvůj web spustíš, ať ti to hned nehackneme, tak si ošetři vstupy! mysql_real_escape_string(); htmlspecialchars(); intval(); |
||
Pavel Vodnář Profil * |
#6 · Zasláno: 21. 2. 2011, 17:02:38
panther:
Chybku nevidím, je tam něco navíc? |
||
panther Profil |
#7 · Zasláno: 21. 2. 2011, 17:05:34
Pavel Vodnář:
„Chybku nevidím, je tam něco navíc?“ ano, srandu jsem si nedělal, když jsem to psal. Nahlédni do nějaké učebnice/manuálu MySQL a hledej. |
||
Pavel Vodnář Profil * |
#8 · Zasláno: 21. 2. 2011, 17:38:52
panther:
koukám do manuálu a když řádek ořežu takto: mysql_query(" INSERT INTO inzeraty VALUES ('','','','$nadpis2','$text2','','','','') WHERE id_inzeratu=".$_GET["id_inzeratu"]." "); |
||
Kcko Profil |
#9 · Zasláno: 21. 2. 2011, 17:46:01
Pavel Vodnář:
echo mysql_error(); Programování není souzeno každému, bez urážky. |
||
Pavel Vodnář Profil * |
#10 · Zasláno: 22. 2. 2011, 08:50:09
echo mysql_error(); |
||
blaaablaaa Profil |
#11 · Zasláno: 22. 2. 2011, 09:07:59
Pavel Vodnář:
Podivej se treba tady www.w3schools.com/sql/sql_insert.asp |
||
Pavel Vodnář Profil * |
#12 · Zasláno: 22. 2. 2011, 10:05:16
upgradoval jsem to takto:
if ($submit) { echo $_GET["id_inzeratu"]; echo $nadpis2; echo $nadpis; //mysql_query(" INSERT INTO inzeraty VALUES ('','','','$nadpis2','$text2','','','','') WHERE id_inzeratu=".$_GET["id_inzeratu"]." "); $queryreg = mysql_query(" UPDATE `inzeraty` SET `text`= '$text2', `nadpis`= '$nadpis2' WHERE `id_inzeratu`='".mysql_real_escape_string($_GET['id_inzeratu'])."' "); } Ale celkově ta podmínka nepracuje, nemuže být chyba někde jinde? |
||
Tori Profil |
#13 · Zasláno: 22. 2. 2011, 10:19:09 · Upravil/a: Tori
Pavel Vodnář:
A co vlastně chcete udělat? Změnit existující inzerát (UPDATE), vložit nový (INSERT), nebo buď přepsat nebo vložit podle toho, jestli existuje takové ID (REPLACE) ? Jen poznámka k řádkům 4 a 12 : předpokládám, že sloupec id_inzeratu nemá textový, ale číselný typ, takže bych použila spíš výše zmíněnou funkci intval. |
||
Pavel Vodnář Profil * |
#14 · Zasláno: 22. 2. 2011, 10:55:29
Mám inzerát - text, nadpis uložen v tabulece pod nazvem text, nadpis - teď se snažím přijít na to jak již dřive uložený text v db editovat, id je auto-inkrement - číselné. Ale vůbec to nereaguje na podmínku z #12 jakto?
|
||
Tori Profil |
#15 · Zasláno: 22. 2. 2011, 11:16:04
A tou první podmínkou (řádek 16 v [#1]) to projde?
|
||
petr 6 Profil |
#16 · Zasláno: 22. 2. 2011, 11:21:03
Pavel Vodnář:
V [#1] nedeklaruješ proměnnou $id, ale tu zásadnější chybu popsali již moji předřečníci a způsob vkládaní i upravování řádků v tabulce je popsán i v každém knižním i internetovém tutoriálu k MySQL. |
||
Pavel Vodnář Profil * |
#17 · Zasláno: 22. 2. 2011, 12:20:50
proč if submit si nedokáže vypsat: echo $_GET["id_inzeratu"]; ?
|
||
Tori Profil |
#18 · Zasláno: 22. 2. 2011, 12:34:11
Pavel Vodnář:
„proč if submit si nedokáže vypsat: echo $_GET["id_inzeratu"]; ?“ Protože formulář posíláte na adresu "oprava-inzeratu.php", nikoli "oprava-inzeratu.php?id_inzeratu=123456789". Odkud se pak má to id číst? (Až teď jsem si všimla, jinak bych napsala už v předchozím příspěvku). |
||
Pavel Vodnář Profil * |
#19 · Zasláno: 22. 2. 2011, 14:48:04
Aha tak to by me něnapadlo, jak tedy pak odesílat formulář aby mi to korespondovalo s daným id? Děkuji Vám
|
||
Pavel Vodnář Profil * |
#20 · Zasláno: 22. 2. 2011, 14:53:46
opravím li to takto:
<form action="oprava-inzeratu.php?id_inzeratu=<?php echo $_GET["id_inzeratu"]; ?>" method="POST" enctype="multipart/form-data"> |
||
Pavel Vodnář Profil * |
#21 · Zasláno: 22. 2. 2011, 15:06:07
do tabulky to přepisuji takto:
$queryreg = mysql_query(" UPDATE `inzeraty` SET ``= '',``= '',``= '',`nadpis`= '$nadpis2', `text`= '$text2',``= '',``= '',``= '',``= '' WHERE `id_inzeratu`='".($_GET['id_inzeratu'])."' "); |
||
Tori Profil |
#22 · Zasláno: 22. 2. 2011, 15:14:48
Pavel Vodnář:
„SET ``= '',``= ''“ Koukněte se ještě jednou na syntaxi UPDATE. Taky není od věci používat $vysledek = mysql_query(".........") or echo "Chyba: ".mysql_error(); |
||
Pavel Vodnář Profil * |
#23 · Zasláno: 22. 2. 2011, 15:25:26
Tori už to vidím, děkuji
mysql_query(" UPDATE inzeraty SET `nadpis`= '$nadpis2', `text`= '$text2' WHERE id_inzeratu='".($_GET['id_inzeratu'])."' "); |
||
Časová prodleva: 13 let
|
0