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

Problém – PHP – Fórum – Programujte.comProblém – PHP – Fórum – Programujte.com

 

Jano
~ Anonymní uživatel
85 příspěvků
7. 7. 2010   #1
-
0
-

Dobrý deň, chcel by som sa spýtať kde robím chybu, ani za nič mi nechce aktualizovať databázu..:

<?php

echo "<form action='spracuj.php' method='POST'><input type='text' name='text'></br><input type='submit' name='ok' value='Uprav!'>";
if ($_POST['text'])
{
$pripojenie = mysql_connect("localhost","root","") or die ("Nemôžem nájsť databázu!");
mysql_select_db ("zobortravel") or die ("Databáza neexistuje!");
$spracuj = mysql_query ("UPDATE kategorie SET index='$text'");
}
?>


a ďalej by som sa chcel spýtať prečo mi data v databáze ukazuje normálne aj s diakritikou (UTF8- SLOVAK) ale hneď ako to nahodím do php tiež v UTF8 tak mi to neukáže diakritiku iba otázniky...


Ďakujem, za pomoc!

Nahlásit jako SPAM
IP: 83.32.249.–
zdenda
~ Anonymní uživatel
257 příspěvků
7. 7. 2010   #2
-
0
-

$_POST['text'] a $text jsou dvě různé proměnné.
U diakritiky záleží na kódování dat, přenosu a (výstupu) skriptu. Těžko říct, co máš špatně, ale nejspíš ti bude stačit pozorně si prohlédnout tuto sekci fóra.

Nahlásit jako SPAM
IP: 213.211.51.–
jozo00250
Návštěvník
7. 7. 2010   #3
-
0
-

To Jano : Na tú diakritiku vyskúšaj

mysql_query("SET CHARACTER SET utf8");
A čo sa týka tej aktualizácie dát v DB, mal by si upresniť ktorý záznam chceš aktualizovať (ak nie všetky) takže ti tam chýba WHERE, syntax si pozri napríkald tu http://www.w3schools.com/php/php_mysql_update.asp

Nahlásit jako SPAM
IP: 91.127.133.–
Jano
~ Anonymní uživatel
85 příspěvků
7. 7. 2010   #4
-
0
-

Vďaka, ale ešte predtým ako som to sem dal som mal $text nad definovaný, teraz som to upravil na:

$spracuj = mysql_query ("UPDATE kategorie SET index='$_POST['text']'");
a tak, či onak to nejde...
čo sa týka tej diakritiky skúsim...

Nahlásit jako SPAM
IP: 83.32.249.–
Jano
~ Anonymní uživatel
85 příspěvků
7. 7. 2010   #5
-
0
-

V mysql mám bunky:
index
kontakt
doprava
zájazdy
výletyjar
leto
jeseň
zima
onas
akcie

Neviem, ale nevidím tam použitie príkazu 'WHERE'...

Nahlásit jako SPAM
IP: 83.32.249.–
KIIV
~ Moderátor
+43
God of flame
7. 7. 2010   #6
-
0
-

To Jano : at se na ten odkaz divam, jak se divam, v obou pripadech je WHERE pouzito a v druhem uz je to explicitne .. ne popisne jako v prvnim...

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Jano
~ Anonymní uživatel
85 příspěvků
7. 7. 2010   #7
-
0
-

KIIV napsal:
To Jano : at se na ten odkaz divam, jak se divam, v obou pripadech je WHERE pouzito a v druhem uz je to explicitne .. ne popisne jako v prvnim...



To, je síce pravda, ale ako to použiť v mojom prípade?

Nahlásit jako SPAM
IP: 83.32.249.–
KIIV
~ Moderátor
+43
God of flame
7. 7. 2010   #8
-
0
-

Pouzij to, jak potrebujes..
Where je tam kvuli OMEZENI .. predpokladejme, ze kdyz chces zmenit jmeno polozky, tak to nechces prepsat uplne u vsech radku v databazi... od toho je Where.. kdyz chces zmenit jmeno Honza na Jan, tak urcite nechces, aby se zmenily jmena vsude...
Priklad: .... WHERE sloupec_jmeno = 'Honza'

No proste pouzij tu vec, co mas na krku .. a pokus se zapojit predstavivost (bez ni to opravdu nepujde)
Nebo pokud to nejde, tak experimentuj..

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Jano
~ Anonymní uživatel
85 příspěvků
8. 7. 2010   #9
-
0
-

Je mi jasná podmienka WHERE ale neviem ako to využiť mením hodnoty a pokúšam sa o funkčnosť už 2 a viac hodín.
Ale stále to nejde.
Potrebujem, aby sa kolónka index v DB zmenila na to, čo postnem.

<?php

echo "<form action='spracuj.php' method='POST'><input type='text' name='text'></br><input type='submit' name='ok' value='Uprav!'>";
if ($_POST['text'])
{
$pripojenie = mysql_connect("localhost","root","") or die ("Nemôžem nájsť databázu!");
mysql_select_db ("zobortravel") or die ("Databáza neexistuje!");
$spracuj = mysql_query ("UPDATE kategorie SET index='$_POST['text']' WHERE index=''");
}
?>


Nejde s ani bez podmienky WHERE absolutne nemám potuchu čo dosadiť za WHERE aby sa o aktualizovalo...
Prosím, pomoc, neviem si rady.

KIIV vďaka za teóriu, ale neviem to použiť!

Nahlásit jako SPAM
IP: 83.32.249.–
z_moravec
~ Redaktor
+3
Posthunter
8. 7. 2010   #10
-
0
-

To Jano : Podmínkou where určuješ, které řádky v db bude ten update ovlivňovat. Takže tam stačí doplnit hodnotu indexu toho řádku a pojede to, např:

$spracuj = mysql_query ("UPDATE kategorie SET index='$_POST['text']' WHERE index=5");

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Jano
~ Anonymní uživatel
85 příspěvků
8. 7. 2010   #11
-
0
-

Index mám na riadku 1, dosadil som to takto:

$spracuj = mysql_query ("UPDATE kategorie SET index='$_POST['text']' WHERE index=1");

a vypísalo mi to chybu:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\spracuj.php  on line 7


Ako to mám prosím vyriešiť?

Nahlásit jako SPAM
IP: 83.32.249.–
jozo00250
Návštěvník
8. 7. 2010   #12
-
0
-

To Jano : prepíš toto

'$_POST['text']'
na
'$_POST[text]' 

Nahlásit jako SPAM
IP: 91.127.133.–
z_moravec
~ Redaktor
+3
Posthunter
8. 7. 2010   #13
-
0
-

Nebo ještě lépe:

$spracuj = mysql_query ("UPDATE kategorie SET index='" . $_POST['text'] . "' WHERE index=1");


Doporučuji ti, pročíst nějaký kurz základů php a mysql, jinak budeš každou kravinu řešit x hodin.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Jano
~ Anonymní uživatel
85 příspěvků
8. 7. 2010   #14
-
0
-

Ďakujem, za pomoc, ale vidím že robím asi naozaj niekde chybu prerábal som to podľa svojho, podľa vašej pomoci, ale stále mi to nefunguje, naozaj už nevidím východisko ako to spraviť...

Nahlásit jako SPAM
IP: 81.39.181.–
marioff0
Expert
9. 7. 2010   #15
-
0
-

index je tusim rezervovane slovo v mysql... vymen ho za ine....

potom skus:

$spracuj = mysql_query ("UPDATE kategorie SET zmeneny_stlpec='" . $_POST['text'] . "' WHERE zmeneny_stlpec=1") or die(mysql_error());


co vypise...?

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
KIIV
~ Moderátor
+43
God of flame
9. 7. 2010   #16
-
0
-

To marioff : nebo jednodussi je pouzit `index` jako explicitni vyjadreni, ze je to sloupec a ne klicove slovo

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Jano
~ Anonymní uživatel
85 příspěvků
9. 7. 2010   #17
-
0
-

Skúsil som to ako napísal "marioff" ale nejako mi to nefunguje...
Tu je screen z databázy ako ju mám nastavenú + kód :

[urlhttp://img535.imageshack.us/g/86404470.jpg/][/url]

Nahlásit jako SPAM
IP: 81.39.181.–
Jano
~ Anonymní uživatel
85 příspěvků
Nahlásit jako SPAM
IP: 81.39.181.–
zdenda
~ Anonymní uživatel
257 příspěvků
9. 7. 2010   #19
-
0
-

SET domov=text WHERE domov=1
Nastaví sloupec "domov" na hodnotu "text" všem řádkům, které mají ve sloupci "domov" hodnotu "1". Je to to co chceš?

Máš nastavené to kódování? Viz. jozo.

Nemáš v tom textu nějaké smetí?
$text = $_POST['text'];

if (get_magic_quotes_gpc()) $text = stripslashes($text);
mysql_query("... SET domov='" . mysql_real_escape_string($text) . "' WHERE ...");

Ten mysql_error() vypíše co?

Nahlásit jako SPAM
IP: 213.211.51.–
Jano
~ Anonymní uživatel
85 příspěvků
9. 7. 2010   #20
-
0
-

Kódovanie nemám zatiaľ nastavené, keďže najprv by som chcel spojazdniť ten UPDATE.
Ja chcem aktualizovať hodnotu domov bez ohľadu na o, čo tam mám (aj keby to bolo prázdne)
Ten text, zadávam hocijaké hodnoty (A-Z/ 1-9)

Nahlásit jako SPAM
IP: 81.39.181.–
marioff0
Expert
10. 7. 2010   #21
-
0
-

ak chces aktualizovat stlpec domov bez ohladu na jeho obsah, nemozes tam mat napr where domov=1, pretoze to updatne vsetky riadky ktore obsahuju v stplci domov cislo 1. Nic viac a nic menej....

v prvom rade urob na zaciatku tabulky stlpec id s nastavenym autoincrementom http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html, vtedy bude mat kazdy riadok unikatny id. Potom mozes menit ostatne stlpce pomocou toho "id-u", napr. SET domov=$text WHERE id=$id_zaznamu

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Jano
~ Anonymní uživatel
85 příspěvků
10. 7. 2010   #22
-
0
-

marioff, ďakujem ti veľmi, ale veľmi si mi pomohol, po neúspešných pokusoch to funguje.
Ešte raz vďaka :)

Nahlásit jako SPAM
IP: 81.39.181.–
Jano
~ Anonymní uživatel
85 příspěvků
10. 7. 2010   #23
-
0
-

Samozrejme patrí vďaka, aj všetkým ktorí sa mi snažili pomôcť, cením si to!

Nahlásit jako SPAM
IP: 81.39.181.–
Jano
~ Anonymní uživatel
85 příspěvků
10. 7. 2010   #24
-
0
-

A čo sa týka tej diakritiky zobrazuje to dobre, pokiaľ to vložím rovno do databázy ak to pošlem cez skript:

<?php

echo "<form action='spracuj.php' method='POST'><textarea name='text' cols='40' rows='20'></textarea></br><input type='submit' name='ok' value='Uprav!'>";
if ($_POST['text'])
{
$pripojenie = mysql_connect("localhost","root","") or die ("Nemôžem nájsť databázu!");
mysql_select_db ("zobortravel") or die ("Databáza neexistuje!");
$spracuj = mysql_query ("UPDATE kategorie SET onas='" . $_POST['text'] . "' WHERE id=1") or die(mysql_error());
}
?>
, tak zas vyhodí divnú diakritiku. Skúsil som to aj tak, s tým
mysql_query("SET CHARACTER SET utf8");
ale nezapíše to už vôbec.

Nahlásit jako SPAM
IP: 81.39.181.–
marioff0
Expert
10. 7. 2010   #25
-
0
-

hned po pripojeni k db vykonaj:

mysql_query('SET NAMES UTF8');

mysql_query('SET COLLATION_CONNECTION=UTF8_SLOVAK_CI');


mas nastavene kodovanie html?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Jano
~ Anonymní uživatel
85 příspěvků
10. 7. 2010   #26
-
0
-

ďakujem, plne funkčné :)

Nahlásit jako SPAM
IP: 81.39.181.–
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, 36 hostů

Podobná vlákna

Problem — založil Ghosta

Problém — založil Ma.ty

Problém — založil pali6

Problém — založil Dfire

Problém v C — založil Robin

 

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