Autor | Zpráva | ||
---|---|---|---|
Estak Profil * |
#1 · Zasláno: 19. 7. 2011, 20:00:46
ahoj,dělám si komentáře k článku,mám u článku vytvořený id,že když se klikne na nadpis tak se otevře nová stránka clanek.php?id=echo id
no,a tak potřebuju udělat,aby při uložení komentáře se ukládal do databáze komentare do sloupce idC jako id clanku, a pak ho vyvolat ale jen pouze ty ID clanku... dám příklad: tenhle script vyvolává komentáře: $vysledek = mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as datumcas FROM komentare ORDER BY id DESC LIMIT ".intval($stranka).",$po"); jak udělat aby mě to vypsalo jen ten článek pro určitý článek? řekl bych asi nějak upravit SELECT,ale nejsem si jisty... pak bych potřeboval aby se komentáře s idC oběvily v článek.php?id=echo id vím jak to má bejt,ale nějak mě to nejde,udělal jsem to přes WHERE idC='id(např 51' a v tom článku se oběví všechny komentáře s id 51,ale když tam chci dát proměnou aby si to zjistilo samo to ID,tak mě to nic nenaběhne...script vypadá takto $vysledek = mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as datumcas FROM komentare WHERE idC='$zaznam["id_clanku"]' ORDER BY id DESC LIMIT ".intval($stranka).",$po "); nevíte kde mám chybu? |
||
zatomik Profil |
#2 · Zasláno: 19. 7. 2011, 20:48:02
Tu první otázku jsem asi nepochopil, ale přece by stačilo udělat toto:
$vysledek = mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as datumcas FROM komentare WHERE komentare.idC = '".$idClanku."' ORDER BY id DESC LIMIT ".intval($stranka).",$po"); A u toho druhého máš syntaktickou chybu. Máš celé query v dvojtých úvozovkách, ale máš je přerušené indexem pole, udělej to takto: $vysledek = mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as datumcas FROM komentare WHERE idC='$zaznam['id_clanku']' ORDER BY id DESC LIMIT ".intval($stranka).",$po "); |
||
Estak Profil * |
#3 · Zasláno: 19. 7. 2011, 20:58:52
u toho načtení to píše tohle...
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/users/alan/l2antis.funsite.cz/web/antis/select.php on line 10 jinač k tomu prvnímu... mám dvě tabulky,jednu články a druhou komentáře,já potřebuju aby prostě id_clanku který je v db články se uložily do komentářů do sloupce idC dám příklad... mám článek s ID 1 na hlavní stránce bude ten článek,když ho otevřu bude v url clanek.php?id=1 a tu jedničku chci aby se při vložení nového komentářů vložila do db komentáře a sloupce idC Snad si mě už pochopil:D |
||
Estak Profil * |
#4 · Zasláno: 19. 7. 2011, 21:07:08
jo,jinač u toho prvního,našel jsem tuhle chybu na internetu,a tam psali že ty uvozovky v závorce nemaj bejt,tak jsem je odstranil,ale je tu problém,to id_článku nenačte,a nezobrazí se komentář,když tam dám místo proměnný číslo toho určitýho článku,např 51,tak to ukáže všechny komentáře k tomu článku 51....takže už nevím kde je chyba
|
||
zatomik Profil |
#5 · Zasláno: 19. 7. 2011, 21:42:41
Estak:
„na hlavní stránce bude ten článek,když ho otevřu bude v url clanek.php?id=1 a tu jedničku chci aby se při vložení nového komentářů vložila do db komentáře a sloupce idC“ tak si ji vztáhni pomocí $_GET['id'], ošetři to funkcí htmlspecialchars() a do databáze ukládej ten komentář i s tím ID pomocí INSERT INTO komentare .... atd a u toho druhého dej tedy intval($zaznam['id']) a pokud porovnáváš int tak skutečně ty uvozovky nepotřebuješ, ale mělo by to chodit i s nima. |
||
Estak Profil * |
#6 · Zasláno: 19. 7. 2011, 22:53:07
už jsem na vše přišel,jen mám problém s ukládání...nevíte jak by se to dalo upravit aby ten script fungoval?
@$vysledek = mysql_query ("INSERT INTO komentare (datum, jmeno, email, web, zprava)"." VALUES (CURRENT_TIMESTAMP(), '". $jmeno ."', '". $mail ."', '". $web ."', '". $zprava ."' )"." WHERE idC='{$_REQUEST['id']}' "); |
||
zatomik Profil |
#7 · Zasláno: 20. 7. 2011, 08:43:56
Doporučuju ti, aby jsi při ladění složitějších dotazů v MySQL používal funkci mysql_error(), vrátí ti chybovou hlášku z posledního dotazu a ty tak zjistíš, kde je problém.
Pokud se nepletu, tak příkaz INSERT nemá žádnou část WHERE, ta se používá při UPDATE. |
||
Estak Profil * |
#8 · Zasláno: 20. 7. 2011, 09:39:14
ajo,to mě nějak nedošlo....a nevíš jak bych to tam nějak dal do toho insert?ted jsem zkoušel to tam zařadit pomocí proměnné,ale stejně to id neuloží...
index.php @$dbc = mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as datumcas FROM clanky WHERE id_clanku='{$_REQUEST['id']}'"); $ID = $_REQUEST['id']; komentar.php @$vysledek = mysql_query ("INSERT INTO komentare (datum, jmeno, email, web, zprava, idC)"." VALUES (CURRENT_TIMESTAMP(), '". $jmeno ."', '". $mail ."', '". $web ."', '". $zprava ."', '". $ID ."' )"); takhle jsem to zkusil a nejde to,nejspíš si to nepamatuje tu proměnnou :d nebo já už nevím |
||
skrepyKOKO Profil * |
#9 · Zasláno: 20. 7. 2011, 14:51:14
skus to přes session,ale nejsem si jistý
|
||
skrepyKOKO Profil * |
#10 · Zasláno: 20. 7. 2011, 15:02:31
ne...máš to správně,ale chyba je jinde,skus odstranit zavináč
|
||
Estak Profil * |
#11 · Zasláno: 20. 7. 2011, 15:14:37
skusil jsem to a nic...zkusil jsem tam dát echo mysql_error();
a napsalo mě to Parse error: syntax error, unexpected T_ECHO in /home/users/alan/.../web/.../gb.php on line 42 a přitom na 42 mám právě to echo na mysql error kod: <?php $jmeno = trim ( $_POST['jmeno'] ); $mail = $_POST['mail']; $web = trim ( $_POST['web'] ); $zprava = trim ( $_POST['zprava'] ); $ID = $_REQUEST['id']; $ok = true; if ( empty( $jmeno )) { echo "<b>nenapsal si jméno.</b><br />"; $ok = false; } function isnt_email($adresa){ if (preg_match( '/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i' , $adresa)==1) return false; else return true; } if ( empty( $zprava )) { echo "<b>nenapsal si text</b><br />"; $ok = false; } if($ok) { require_once('db.php'); if (!db()) $error = "Error database"; $sql = mysql_query("SELECT COUNT( jmeno ) FROM uzivatele WHERE jmeno = '". $_POST['jmeno'] ."'") or die("chyba"); if(mysql_result($sql,0) == 0){ $vysledek = mysql_query echo mysql_error(); ("INSERT INTO komentare (datum, jmeno, email, web, zprava, idC)"."VALUES (CURRENT_TIMESTAMP() ,'". $jmeno ."' , '". $mail ."' , '". $web ."' , '". $zprava ."' ,'". $ID ."' "); }else echo "<b>tohle jméno je zaregistrovane</b>"; mysql_close(); } while (false); header('Location: index.php'); ?> tak už nevím:-( |
||
Estak Profil * |
#12 · Zasláno: 20. 7. 2011, 15:39:11
no,tak chyba byla v proměnné:D takže už mě to jde:) díky všem co poradily(aspon trochu) :)
|
||
Časová prodleva: 13 let
|
0