Autor Zpráva
marek888
Profil
Dobrý den. Nevěděl jsem, ke kterému tématu se to nejvíce vztahuje, tak jsem to založil zde. Čerpám kódy z této stránky: Přidávání článků do databáze. Na stránce www.pandorafields.xf.cz/prispevky.html mám první část kódu. Když se vyplní všechny informace co požaduji, kliknutí na odeslat příspěvek mě přesměruje na stránku, kde mám druhou část kódu. Na stránce se pouze objeví: Článek byl přidán. Když se podívám do databáze, kam by se tyto informace udajně měly zapisovat, tak zjistím, že je databáze prázdná. Možná je to i tím, že nemám nastavenou cestu k databázi. Děkuji všem za odpovědi. Pokoušel jsem se podívat, zdali pak nemám něco chybně zapsáno. Ale vše je tak, jak má být.
ts_istudio
Profil
marek888:
Možná je to i tím, že nemám nastavenou cestu k databázi.

Ano, to je chyba dost zásadní. Databázi si vytvoř, jestli ji vytvořenou nemáš. Pak se k ní musíš připojit, což budeš potřebovat na všech stránkách, které s db jakkoli pracují, proto bych doporučil vše kolem připojování dát do extra souboru, řekněme config.php a ten si includovat na začátku index.php. Co v tom config.php bude: najdi si tady v diskusi mysql_connect, určitě najdeš spoustu příkladů, kde se někdo k db připojoval.
marek888
Profil
Díky za odpověď. Koukal jsem se na http://cs.wikibooks.org/wiki/PHP_prakticky/P%C5%99ipojen%C3%AD_k_datab%C3%A1zi a já mám takový to kod :
<?
        $spojeni = mysql_connect(localhost,"-Mojejméno-","-Mojeheslo-" );
        mysql_select_db(prizpevky, $spojeni);
        $vysledek = mysql_query("insert into prizpevky values(0, '$autor','$datum', '$titulek', '$obsah')", $spojeni);
        echo "článek byl přidán";
        ?>
Nevím zda li pak je tam uplně vše správně. Asi tam nějaká ta chyba bude. Jediné šemu v tomto kodu je to : $spojeni
Nevím jestli je to název té databáze, či zdali pak je to to, díky čemu se to připojí k té databázi.
peta
Profil
"Když se podívám do databáze"
Jak se podivas do databaze? Pouzivas na to nejakeho phpmyadnina? Jakymi udaji se v nem prihlasujes? Stejne udaje se pouzivaji pro pripojeni.

echo "článek byl přidán";
Tento radek je sam o sobe spatne. Chybi tam podminka, jestli dotaz prosel nebo neprosel (aspon if ($vysledek) {} else {}). Bez podminky se to vypise pokazde.

mysql_select_db("prizpevky", $spojeni);
Tady nemas uvozovky nebo apostrofy kolem retezce a neukladas vysledek pripojeni do promenne.

Tez tam nikde nevidim die nebo error_reporting. Treba ja pro takovy jednoduchy test pouzivam...
<?php
@ini_set('error_reporting', E_ALL|E_STRICT);
@ini_set("display_errors", "1");
error_reporting(E_ALL|E_STRICT);

$SQL    = array();
$SQL['host']   = "localhost";    //server (host)
$SQL['user']   = "root";    //MySQL user
$SQL['psw']    = "";        //MySQL password
$SQL['dbname'] = "minichat";    //MySQL DB name

function showError($str) {echo $str;}
$SQLserver = mysql_connect($SQL['host'],$SQL['user'],$SQL['psw']) or showError('Err: connect DB server!' . mysql_error());
$SQLdb     = mysql_select_db($SQL['dbname'],$SQLserver)           or showError('Err: connect DB!' . mysql_error());
showError((bool)$SQLserver);
showError((bool)$SQLdb);
?>
marek888
Profil
Díky. Tento script jsem zkusil dát místo mého kodu. Vyplnil jsem všechny udaje ale píše to ani ne chby, ale spíše varování. Tu to je:

Strict Standards: mysql_connect() [function.mysql-connect]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /3w/xf.cz/p/pandorafields/pridat.php on line 20

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /3w/xf.cz/p/pandorafields/pridat.php on line 20
Err: connect DB server!Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Strict Standards: mysql_select_db() [function.mysql-select-db]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /3w/xf.cz/p/pandorafields/pridat.php on line 21

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /3w/xf.cz/p/pandorafields/pridat.php on line 21
Err: connect DB!Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 
Davex
Profil
marek888:
Jak jsi přišel na to, že by mělo být jméno databázového serveru zrovna localhost?

Viz instrukce Webzdarma: Jak nastavit své připojení k SQL serveru.
peta
Profil
Vidis to, dalsi chyba v puvodnim kodu, uvozovky kolem localhost, pac to je string. Nehlede na to, ze pro wz.cz tam ma byt uplne jiny text, viz davex. Ale aspon vidis, ze tam nejake chybky pise. Proti bile strance je to na testovani o moc lepsi stav.
mysql_connect("localhost","-Mojejméno-","-Mojeheslo-" );
marek888
Profil
Díky moc! Akorát mě mrzí, že vás otravuji mímy blbými otázkami. Vše jsem trochu přepsal a na databázi jsem si vytvořil novou tabulu a v ní vše potřebné. Když jsem PHP nahrál na stránky a skusil jsem přidat nějaký ten příspěvek, byl jsem zcela šokován. Místo aby tam byl dlouhý text, objevila se tam 11. To jsem pochopil jako Error, ale nevím jaký.
Tori
Profil
marek888:
objevila se tam 11
To bylo zřejmě toto:
showError((bool)$SQLserver);
showError((bool)$SQLdb);
Obě funkce (db_connect a select_db) proběhly v pořádku, návratová hodnota (která už btw u select_db byla TRUE) se přetypovaly na boolean, tedy TRUE, a následně tím echem (ve funkci showError) se přetypovaly na řetězec, čili "1".

edit: čili chyba to není. Zobrazilo se i něco jiného, kromě těch "11", anebo jinak stále bílá stránka?
marek888
Profil
Dík. Takže bych jsem to teoreticky měl mýt vyřešený. Je tam pouze 11. Jenom by se mi hodilo, aby mohla bejt také možnost vybrat si barvu textu. Nevíte jak na to ?? Ty stránky mají černé pozadí. Jinak by mi to bylo uplně jedno.
peta
Profil
Color
Background-color
1 a 1 znamena, ze je vse ok, co se pripojeni k db serveru a db tyce.
marek888
Profil
ze je vse ok, co se pripojeni k db serveru a db tyce. Díky za informace. Nevíte náhodou jak se do tohoto kodu dá vložit, napsat další kod, který bi spolupracoval s tou stránkou http://www.pandorafields.xf.cz/prispevky.html ? Pokoušel jsem se to tam nějak napsat, aby se to zapsalo, jenže jsem si poté řekl, když to nefungovalo, že to nemá cenu. Neví prosím někdo z vás jak se to dá vyřešit?
Silver8000
Profil
marek888:
Nevíte náhodou jak se do tohoto kodu dá vložit, napsat další kod, který bi spolupracoval s tou stránkou http://www.pandorafields.xf.cz/prispevky.html ?
A jak by jsis to predstavoval aby to spolupracovalo s tou strankou?
marek888
Profil
No vhodné by bylo, že kdyby se vyplnily potřebné informace, tak by se ten text zpracoval a třeba že by se autor poslal do sloupce autor v databázi, a třeba obsah by se odeslal do sloupce obsah. No prostě udělat, že by se to zapsalo do databáze, třeba i z datem.
peta
Profil
A nedelal to tvuj puvodni program? [#3] marek888. Ted, kdyz uz mas spravene to pripojeni, tak by ten kod mohl fungovat, ne?
marek888
Profil
peta:
Ten kod jsem zkoušel ale text se mi nikdy nezapsal. Nevím, zda li pak do jde i nějak zkombinovat. To jsem také nějak zkouel ale hodilo mi to errory. Díky

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: