Autor Zpráva
Pavel Vodnář
Profil *
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
Pavel Vodnář:
podívej se na syntaxi INSERTu, něco ti tam přebývá.
Taps
Profil
Pavel Vodnář:
vlož sem ještě kod formuláře, ze kterého odesíláš data
Pavel Vodnář
Profil *
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   &nbsp; &nbsp;&nbsp; <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
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 *
panther:
Chybku nevidím, je tam něco navíc?
panther
Profil
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 *
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"]." ");
, pořád to neukládá změněné hodnoty, je napsán správně?
Kcko
Profil
Pavel Vodnář:
echo mysql_error();


Programování není souzeno každému, bez urážky.
Pavel Vodnář
Profil *
echo mysql_error();
nevypíše žadnou chybu. Jaká by tam mohla být jiná? díky
blaaablaaa
Profil
Pavel Vodnář:
Podivej se treba tady www.w3schools.com/sql/sql_insert.asp
Pavel Vodnář
Profil *
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
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 *
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
A tou první podmínkou (řádek 16 v [#1]) to projde?
petr 6
Profil
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 *
proč if submit si nedokáže vypsat: echo $_GET["id_inzeratu"]; ?
Tori
Profil
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 *
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 *
opravím li to takto:
 <form action="oprava-inzeratu.php?id_inzeratu=<?php echo $_GET["id_inzeratu"]; ?>" method="POST" enctype="multipart/form-data"> 
pak už to vypíše id jak má, ale stále mi to neupravuje údaje v tabulce, kde může být další chybka?
Pavel Vodnář
Profil *
do tabulky to přepisuji takto:



$queryreg = mysql_query(" 
UPDATE `inzeraty` 
SET ``= '',``= '',``= '',`nadpis`= '$nadpis2', `text`= '$text2',``= '',``= '',``= '',``= '' 
WHERE `id_inzeratu`='".($_GET['id_inzeratu'])."' 
");  


Tori
Profil
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();
To byste se hned dočetl, že takto to nejde zapisovat.
Pavel Vodnář
Profil *
Tori už to vidím, děkuji
mysql_query(" UPDATE inzeraty SET `nadpis`= '$nadpis2', `text`= '$text2' WHERE id_inzeratu='".($_GET['id_inzeratu'])."' "); 

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