.[ ČeskéHry.cz ].
Problem s DB

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Web Development
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
MelkorNemesis



Založen: 27. 10. 2007
Příspěvky: 12

PříspěvekZaslal: 27. říjen 2007, 09:37:16    Předmět: Problem s DB Odpovědět s citátem

Dobrý den, začal sem s PHP a dopracoval se az k MySQL.
Narazil sem na jeden takový problem, ktery sem nebyl schopny po 8mi hodinach vyresit.
V moji tabulce v DB mam

kód:

date date not null,
header varchar(200) not null,
content text not null


a muj PHP kod pro vkladani i zobrazeni
kód:

<form method="post" action="<?php $_SERVER['PHP_SELF'];?>" >
Nadpis novinky:<br />
<input type="text" name="newshead" class="formhead"><br />
Text novinky:<br />
<textarea name="content" class="formcont"></textarea><br />
<input type="submit" name="send" value="Odeslat" class="form">
</form>

<?php
include ("configmysql.php");
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("K databázi MySQL se nelze připojit: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());
$vysledek=mysql_query("INSERT INTO news VALUES ('".date("Y-m-d")."' , '".$_POST[newshead]."', '".$_POST[content]."')");
$vysledek=mysql_query("SELECT * FROM news ORDER BY date desc");
echo mysql_error();

while($zaznam = MySQL_Fetch_assoc($vysledek))
{
   echo "<div id='newshead'>".$zaznam['header']."</div>";
   echo "<div id='newscont'>".$zaznam['content']."</div><div id='newspaticka'>Napsal Andílek - Článek je chráněn autorským právem.</div>";
}

?>



Problem je takovy, ze at delam co delam, nechce mi to vypisovat sestupne (vkladana novinka se vpise nahoru), ikdyz tam mam datum a dany ORDER BY date desc.
A jeste jeden problem, pri kliknuti na danou sekci v nich je kod, se automaticky vlozi prazdna novinka. Dekuju za pomoc a pro pripadny nahled na problem http://mojenebe.ic.cz/index.php?str=tvorba

Edit: Link
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 27. říjen 2007, 09:52:45    Předmět: Odpovědět s citátem

boha Smile

1) prazdna novinka
-- se podivej se pokazde insertujes - vubec si nedelas nejakou kontrolu ze insertovat chces

2) pokud nechces novinku nahore, ale na konci co takto to seradit podle data vzestupne (ASC)?

3)
kód:
ORDER BY date DESC

by urcite melo byt
kód:
ORDER BY `date` DESC

jak se doctes v dokumentaci o nazyvani sloupecku systemovymi jmeny

4) mas tam solidni chyby ve vkladani
a) zadne osetreni vstupu
b)
kód:
$_POST[newshead]

bych urcite nahradil za
kód:
$_POST['newshead']

coz je to co urcite chces

5) http://www.wordpress.com - doporucuji stahnout a nasadit na tvem webu - vyresi to asi tak 150% tvych problemu Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MelkorNemesis



Založen: 27. 10. 2007
Příspěvky: 12

PříspěvekZaslal: 27. říjen 2007, 10:10:01    Předmět: Odpovědět s citátem

rezna: vyzkousim to diky...rikam ze s tim zacinam, takze napred to potrebuju rozchodit aby to jelo normalne, a pak az osetrovat podminkama Smile
php se chci naucit, a tim ze tam hodim wordpress se toho moc nenaucim..diky Smile
edit: vzestupne to chci, asi sem se spatne vyjadril, dal sem tam ty `` ale stejne to nejede.. :/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 27. říjen 2007, 11:01:15    Předmět: Odpovědět s citátem

http://www.linuxsoft.cz/php/
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MelkorNemesis



Založen: 27. 10. 2007
Příspěvky: 12

PříspěvekZaslal: 27. říjen 2007, 11:21:25    Předmět: Odpovědět s citátem

znam linuxsoft...ale nepřišel sem mu asi moc na chuť, sáhodlouhé kódy a nutnost mít přečtené všechny předchozí díly...protože jeden článek je pokračování k jinému.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 27. říjen 2007, 11:23:57    Předmět: Odpovědět s citátem

MelkorNemesis napsal:
a nutnost mít přečtené všechny předchozí díly...protože jeden článek je pokračování k jinému.


njn - proc se ucit zaklady PHP kdyz jenom potrebuju nacist jak udelat ty nejvic cool veci okamzite, bez toho aniz bych vedel co to PHP vubec je, jak to funguje apod. ze?

jako sorry - ale to je uplne stejne jako to cemu se tu snazime naucit v oblasti vyvoje her - nauc se zaklady a ne udelej jako prvni utlra-mega-supa-cool-nejlepsi MMORPG.

takze bud se holt prokousej zakladama a snaz se to pochopit a pak prijdi s rozumnou otazkou, nad rozumnym a alespon castecne funkcnim a slusnym kodem a nebo se tu neptej.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 27. říjen 2007, 11:31:52    Předmět: Odpovědět s citátem

a abys nerekl ze jsem mrdka tu je komentar

kód:
<form method="post" action="<?php $_SERVER['PHP_SELF'];?>" >
Nadpis novinky:<br />
<input type="text" name="newshead" class="formhead"><br />
Text novinky:<br />
<textarea name="content" class="formcont"></textarea><br />
<input type="submit" name="send" value="Odeslat" class="form">
</form>

<?php
include ("configmysql.php");
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("K databázi MySQL se nelze připojit: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());

// TADY MA BYT TEN IF - jinak se proste muzes divit ze ti to porad vklada prazne novinky

$vysledek=mysql_query("INSERT INTO news VALUES ('".date("Y-m-d")."' , '".$_POST[newshead]."', '".$_POST[content]."')");
// TOTO JE PRISERNOST - a pokud se z ni nepoucis na zacatku, budes az do konce zivota psat, spatne, nefunkcni, padave a hlavne derave aplikace!!!
1) - neumi to vlozit prispevek s uvozovkou!
2) $_POST[newshead], $_POST[content] - proc on nekdo neudela k tomu PHP compiler nebo syntaktickej analyzer :( - tohle je preci blbost
-- chces precist hodnotu v poli s klicem 'newshead' - takze $_POST['newshead']


// TADY MA KONCIT TEN IF

$vysledek=mysql_query("SELECT * FROM news ORDER BY date desc");
// TOTO JE PRISERNOST
1) SELECT * FROM - tohle se nesmi! - zpomalovac databaze, zpomalovac aplikace, ...
2) pokud ti to spatne radi, podivej se co je skutecne v DB, a jak se DB samotna zachova k takovemuto dotazu
-- pokud s tim chces poradit vyjed si pres konzoli obsah tabulky, postni ho sem (nejlepe v INSERT forme) a pak se muzeme zacit bavit kde je chyba
-- ale jak jsem napsal ta prvni je uz vubec v tom DESC kde chces ASC, a druha v tom date a ne `date` ktere jsi tam asi chtel
-- ale pokud ti to spatne sortuje tipuju ze bud mas nevhodny typ pole (neumi to seradit spravne) - nebo ho plnis spatnymi hodnotami
-- doporucuju pouzit misto date/datetime typ int(11) a do nej ukladat unix-timestamp

echo mysql_error();

while($zaznam = MySQL_Fetch_assoc($vysledek))
{
   echo "<div id='newshead'>".$zaznam['header']."</div>";
   echo "<div id='newscont'>".$zaznam['content']."</div><div id='newspaticka'>Napsal Andílek - Článek je chráněn autorským právem.</div>";
}

?>


a btw - ceske-hry.cz nema nikde v popisu web-development (ikdyz tu ta sekce jako absolutni oddychovka je), takze bys mel vyuzit mist kde ti poradi opravdu fundovani lide - jako muze byt interval.cz treba.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MelkorNemesis



Založen: 27. 10. 2007
Příspěvky: 12

PříspěvekZaslal: 27. říjen 2007, 11:36:18    Předmět: Odpovědět s citátem

Jasne omlouvam se...ja se na linuxsoftu dostal asi na 40dil v PHP, coz zahrnovalo i nejake databaze, ale radeji sem chtel zkusit napsat neco sam, nez to tupe opisovat z linuxsoftu. A nevedel jsem proc mi to nejede, takze vsem diky za reakce a omlouvam se za spam
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 27. říjen 2007, 11:52:53    Předmět: Odpovědět s citátem

MelkorNemesis napsal:
Jasne omlouvam se...ja se na linuxsoftu dostal asi na 40dil v PHP, coz zahrnovalo i nejake databaze, ale radeji sem chtel zkusit napsat neco sam, nez to tupe opisovat z linuxsoftu. A nevedel jsem proc mi to nejede, takze vsem diky za reakce a omlouvam se za spam


a proc to tupe opisujes? kdo rika ze mas 40 dilu PHP tupe opsat? - ty dily jsou jenom navod jak neco udelat. ty si mas pokazde dat ukol a zkusit ho napsat po svem se znalostma ktere jsi nabyl.

ale ty jsi to opravdu evidentne pouze tupe opsal, kdyz ani nevis jak se pristupuje do pojmenovaneho pole.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Web Development Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna