Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno $sql = "UPDATE... špatná syntaxe

Ahoj, mám příkaz

$sql = "UPDATE 'czsp_kalendar' SET 'rok' = '$rok','datum' = '$datum','nazev' = '$nazev' WHERE 'id' = '$id'";

na změnu dat v tabulce a stále chyba

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''czsp_kalendar' SET 'rok' = '2011','datum' = '16. 5.','nazev' = 'kráti pokusss' ' at line 1

Nemůžu přijít na to, co tam kydlím špatně. :-(

Předmět Autor Datum
$sql = "UPDATE czsp_kalendar SET rok = '$rok', datum = '$datum', nazev = '$nazev' WHERE id = '$id'";…
Wikan 15.06.2011 13:55
Wikan
Jupííííííííííííííííííííííí díky ti 589x
Kráťa 15.06.2011 14:12
Kráťa
Názvy sloupečků zkus dát bez uvozovek : $sql = "UPDATE czsp_kalendar SET rok = '$rok',datum = '$dat…
hynajs 15.06.2011 13:56
hynajs
Sice jsi odpověď už dostal, ale nedá mi se ti neříct že když píšeš název tabulky či třeba sloupce a…
martin.developer 15.06.2011 15:09
martin.developer
Já to pak zabezpečím, až mi to bude chodit. Teď bojuji s mazáním záznamů a se zobrazováním data míst…
Kráťa 15.06.2011 18:46
Kráťa
Mazání - DELETE FROM tabulka WHERE id = 'neco' - smaže řádek kde je sloupec id roven neco. (Jde to…
martin.developer 15.06.2011 19:42
martin.developer
S mazáním jsem pako! Já si tam předávám proměnnou, přes $_GET a jak jsem to kopíroval, nechal jsem v…
Kráťa 15.06.2011 21:06
Kráťa
Odkud bereš to ID? Pokud to chápu správně jedná se o stránku kde je vždy jeden záznam, nebo se jedná…
martin.developer 15.06.2011 21:23
martin.developer
Děkuji za pomoc. poslední
Kráťa 16.06.2011 02:29
Kráťa

Mazání -

DELETE FROM tabulka WHERE id = 'neco'

- smaže řádek kde je sloupec id roven neco. (Jde to samozřejmě omezit přes LIMIT X)

Převod data - pokud je to yyyy-mm-dd tak v PHP lehce -

date_default_timezone_set("Europe/Prague"); //Nastavení správné časové zóny
echo date("j. n.", strtotime("2011-06-15")); // Vypíše 15. 6.

S mazáním jsem pako! Já si tam předávám proměnnou, přes $_GET a jak jsem to kopíroval, nechal jsem v tom souboru, kam se to předá $_POST. Příkaz jsem měl dobře snad 10x a furt to nechodilo :-)

Datum tahám z databáze a je pokaždé jiné, čili bych potřeboval něco jako

<?php $getid = $zaz["id"];
$getid_kodovana = urlencode($getid);
 ?>
<p>
<b><?php echo date("j. n.", strtotime($zaz["datum"])); ?></b> 
<?php echo $zaz["nazev"]; ?>
</p>

což samozřejmě nechodí a navíc můj největší problém, je navíc správná syntaxe, zejména ' a ". :-(

Odkud bereš to ID?
Pokud to chápu správně jedná se o stránku kde je vždy jeden záznam, nebo se jedná o nějaký výpis více řádků?

Pokud jde o stránku s jedním záznamem a ID je získáno třeba z url (example.com/ukaz.php?id=5) -

<?php
$id = intval($_GET['id']);
$query = mysql_query("SELECT datum,nazev FROM tabulka WHERE id = '" . $id . "'");

$data = mysql_fetch_array($query);
?>

<p>
<strong><?php echo date("j. n.", strtotime($data["datum"])); ?></strong> 
<?php echo $data["nazev"]; ?>
</p>

Pokud jde o stránku s výpisem záznamů (example.com/ukaz_vse.php) -

<?php
$query = mysql_query("SELECT datum,nazev FROM tabulka ORDER BY datum DESC"); //vytáhne vše a seřadí podle data sestupně

while ($data = mysql_fetch_array($query)) //pomocí while budeme tahat řádky z výsledku než nedojdeme na konec - false a while přestane pracovat.
{
?>

<p>
<strong><?php echo date("j. n.", strtotime($data["datum"])); ?></strong> 
<?php echo $data["nazev"]; ?>
</p>

<?php
}
?>

Zpět do poradny Odpovědět na původní otázku Nahoru