Dobry den, som zaciatocnik v programovani co sa tyka PHP a MysQL. Chcel by som poradit mam v PHP subore tento script:
<?php
do
{
require_once('../otevridb.inc');
if (!OtevriDB()) break;
//zisti ID autora
$dbv = mysql_query(
"SELECT id_autora FROM autori WHERE login='{$_REQUEST['login']}'");
$autor = mysql_result($dbv, "id_autora");
// Uloženie článku.
@$výsledek = mysql_query(
"INSERT INTO clanky (nazev, autor, rubrika, datum, uvodnik, telo)"
. " VALUES ('{$_REQUEST['nazev']}',"
. "$autor,{$_REQUEST['rubrika']},"
. " CURRENT_TIMESTAMP(),'{$_REQUEST['uvodnik']}','{$_REQUEST['telo']}')");
if (!$výsledek)
{
echo "Číslo chyby: ".mysql_errno()."Popis chyby: ".mysql_error();
exit;
}
$id_clanku=mysql_insert_id();
// Vynulovanie počitadla prístupov.
$výsledek = mysql_query(
"INSERT INTO pocitadlo (id_clanku, pristupy) VALUES ($id_clanku, 0)");
mysql_close();
} while (false);
header("Location: redakce.php");
?>
je to script na ukladanie clankov do databazy, ktory pri odoslani udajov vsak miesto ulozenia vypisuje toto:
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 4 in /domains1/localhost/public/www_root/obec/adminke/uloz_clanek.php on line 10
Číslo chyby: 1064
Popis chyby: 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 '1, CURRENT_TIMESTAMP(),'Uvodnik côanku','Text clanku')' at line
Neviete mi prosim Vas poradit preco to nechce nahravat do databazy?
dakujem
Fórum › MySQL
PHP + Mysql
Chybu máš v myslím že v SQL dotaze. Je tam napísané, že nemôže skočiť na riadok 0 v MySQL. A nižšie máš napísane na ktorom riadku je pravdepodobne tá chyba. Píšem, že pravdepodobne, lebo niekedy môžeš mať chybu inde, a tá chyba sa prejaví napr.
nižšie. Mne sa vidí, že sa sa serveru nepáči to $_REQUEST atď(aspoň to tam je napísané).
Podle knihy jo? Máš v tom pár chyb, tahle je to spravne:
<?php
do
{
require_once('../otevridb.inc');
if (!OtevriDB()) break;
//zisti ID autora
$dbv = mysql_query("SELECT id_autora FROM autori WHERE login='".$_REQUEST['login']."'");
$autor = mysql_result($dbv, "id_autora");
// Uloženie článku.
$výsledek = mysql_query("
INSERT INTO clanky (nazev, autor, rubrika, datum, uvodnik, telo)
VALUES ('".$_REQUEST['nazev']."', '$autor','".$_REQUEST['rubrika']."',
CURRENT_TIMESTAMP(),'".$_REQUEST['uvodnik']."','".$_REQUEST['telo']."')
")
or die("Číslo chyby: ".mysql_errno()." Popis chyby: ".mysql_error());
//tohle je debilita viz or die nahoře
/* if (!$výsledek)
{
echo "Číslo chyby: ".mysql_errno()." Popis chyby: ".mysql_error();
exit;
}*/
$id_clanku=mysql_insert_id();
// Vynulovanie počitadla prístupov.
$výsledek = mysql_query(
"INSERT INTO pocitadlo (id_clanku, pristupy) VALUES ('$id_clanku', '0')");
mysql_close();
} while (false);
header("Location: redakce.php");
?>
To marzelo : To že si to robil podle knihy neznamená že to musíš mít správně. Prohlídni si řádek 31 ;-)To w3q : Ale o žádný skočení na řádek O nejde, má tam syntaksní chybu jak prase. Viz řádek 31 mého kóu.
To petrl : petrl dakujem ti velmi pekne uz mi to nahrava pekne do databazy, len este mi nechce zistit ID autora (v databaze pri nahrani mi pri kazdom clanku vypisuje id_autora : 0) toto presne vypisuje: Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 4 in /domains1/ws165600/public/www_root/obec/adminke/uloz_clanek.php on line 9
Warning: Cannot modify header information - headers already sent by (output started at /domains1/ws165600/public/www_root/obec/otevridb.inc:18) in /domains1/ws165600/public/www_root/obec/adminke/uloz_clanek.php on line 34
Inak PHP je tazky jazyk, ale zaujimavy. Ako dlho si sa ucil tento jazyk? mam na mysli tie zakladne veci.
To JannyM : pomoci . (tecky) se spojuji retezce...
$pole["pozdrav"] = "ahoj";
$pole["rozlouceni"] = "nashle";
echo "Ted ti reknu ".$pole["pozdrav"]." a potom ".$pole["rozlouceni"];
timto zpusobem...pole se totiz neda(?) zapsat primo do retezce jako promenna takto:
echo "moje promenna ma hodnotu $promenna";
Aha no jasne ja nepouzivam pri vkladani do db prave tieto premene vecsionu si to ulozim do inej premenej a tu nasledovne vkladam potom pouzivam zapis
VALUE ('$premena1', '$premena2', '$premena3'..... ale niesom si isty ci by to tak fungoval aj pre $_REQUEST['rubrika'] ale mam taky tichy dojem ze nie :)
To JannyM : když chceš použít $_REQUEST... tak ho nesmíš mít takto:
... ,'$_REQUEST',....
to hodí chybu, ale zas proměnou $login tak napsat můžeš
...,'$login',....
no a aby si do sql dotazu který je jako řetězec v uvozovkách mohl dát $_REQUEST tak musíš řetězec ukončit, spojit ho přes tečku spolem a pak zase navázat řetězec. Takže takto:
' " . $REQUEST['login'] . " '
bez těch mezer samozřejmě.
Lenže ja som z tým skočením nehovoril práve o tomto príklade. Hovoril som, že sa to môže stať. Ja som ten kód ani skoro nečítal, iba tu chybovú hlášku.petrl napsal:
To marzelo : To že si to robil podle knihy neznamená že to musíš mít správně. Prohlídni si řádek 31 ;-)To w3q : Ale o žádný skočení na řádek O nejde, má tam syntaksní chybu jak prase. Viz řádek 31 mého kóu.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
If,else - PHP Fusion (PHP,Mysql) — založil Nikus
MySQL a PHP... — založil Anonymní uživatel
Php a mysql — založil janik366
MySQL + PHP — založil Václav Žitek
Moderátoři diskuze