PHP + Mysql – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP + Mysql – MySQL – Fórum – Programujte.comPHP + Mysql – MySQL – Fórum – Programujte.com

 

marzelo0
Newbie
29. 5. 2008   #1
-
0
-

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

Nahlásit jako SPAM
IP: 88.212.16.–
w3q0
Věrný člen
29. 5. 2008   #2
-
0
-

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é).

Nahlásit jako SPAM
IP: 88.212.23.–
HTML,CSS,PHP,MySQL, začínam s Objected C 2.0
marzelo0
Newbie
29. 5. 2008   #3
-
0
-

To w3q : ved som to robil aj podla knihy a nic.

Nahlásit jako SPAM
IP: 78.98.242.–
petrl0
Návštěvník
29. 5. 2008   #4
-
0
-

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");
?>

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
petrl0
Návštěvník
29. 5. 2008   #5
-
0
-

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.

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
marzelo0
Newbie
30. 5. 2008   #6
-
0
-

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.

Nahlásit jako SPAM
IP: 88.212.16.–
marzelo0
Newbie
30. 5. 2008   #7
-
0
-

chybu mam v: login='".$_REQUEST['login']."'");
lebo ked dam : login='nazov_loginu'"); tak to funguje

Ako sa to ma spravne napisat?

Nahlásit jako SPAM
IP: 88.212.16.–
marzelo0
Newbie
30. 5. 2008   #8
-
0
-

Ahojte, vraj mam staru databazu MySQL 4,0 a script je pisany pre novsie vberzie. Moze byt aj toto problem?

Nahlásit jako SPAM
IP: 78.98.242.–
JannyM0
Návštěvník
30. 5. 2008   #9
-
0
-

To marzelo : Pokial ti to funguje login='nazov_loginu'"); tak $_REQUEST['login'] uloz do premenej
$login = $_REQUEST['login'];
a pouzi to login='$login'");

Nahlásit jako SPAM
IP: 62.189.16.–
JannyM0
Návštěvník
30. 5. 2008   #10
-
0
-

To petrl : Tym teckem pred a za $_REQUEST... moc nerozumiem na co to je dobre?
Diky

Nahlásit jako SPAM
IP: 62.189.16.–
Earl Cash0
Věrný člen
30. 5. 2008   #11
-
0
-

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";

Nahlásit jako SPAM
IP: 193.85.184.–
Oh my goodness, shut me down! Machines making machines. How perverse. (C-3PO)
JannyM0
Návštěvník
30. 5. 2008   #12
-
0
-

To Earl Cash :
Viem ze tecka spaja retezce to mi je uplne jasne len nechapem s cim spajas to $_REQUEST['nazev'] ked za tym je ciarka a pred tym je zavorka.
VALUES ('".$_REQUEST['nazev']."', '$autor','".$_REQUEST['rubrika']."',

Nahlásit jako SPAM
IP: 62.189.16.–
Earl Cash0
Věrný člen
30. 5. 2008   #13
-
0
-

To JannyM : kdyz se do databaze uklada retezec musi byt uzavren do apostrofu (mozna ze funguji i uvozovky)...

Nahlásit jako SPAM
IP: 193.85.184.–
Oh my goodness, shut me down! Machines making machines. How perverse. (C-3PO)
JannyM0
Návštěvník
30. 5. 2008   #14
-
0
-

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 :)

Nahlásit jako SPAM
IP: 62.189.16.–
marzelo0
Newbie
30. 5. 2008   #15
-
0
-

poobede to vyskusam a dam vediet. :) zatial dakujem

Nahlásit jako SPAM
IP: 78.98.242.–
petrl0
Návštěvník
30. 5. 2008   #16
-
0
-

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ě.

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
petrl0
Návštěvník
30. 5. 2008   #17
-
0
-

To JannyM : nefungovalo, myslíš si to správně aby ti to fungovalo musí použít viz příspěvek nad :smile1:

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
petrl0
Návštěvník
30. 5. 2008   #18
-
0
-

Earl Cash napsal:pole se totiz neda(?) zapsat primo do retezce jako promenna



bez toho otazníku, máš pravdu pole tak zapsat nemůžeš :smile2:

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
marzelo0
Newbie
31. 5. 2008   #19
-
0
-

To JannyM : No ani to nepomohlo. Pockam si na tu zmenu databazy.

Nahlásit jako SPAM
IP: 88.212.16.–
w3q0
Věrný člen
31. 5. 2008   #20
-
0
-

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.

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.

Nahlásit jako SPAM
IP: 88.212.21.–
HTML,CSS,PHP,MySQL, začínam s Objected C 2.0
marzelo0
Newbie
7. 6. 2008   #21
-
0
-

Ahoj vsetkym . Uz mi to funguje problem bol v kodovani: mal som tam UTF-8.

Nahlásit jako SPAM
IP: 88.212.16.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

MySQL a PHP... — založil Anonymní uživatel

Php a mysql — založil janik366

Php+mysql — založil bernie

MySQL + PHP — založil Václav Žitek

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý