[ CORSA @ 26.09.2013. 22:37 ] @
Poštovani !
Zanima me dal je nužno da se komentar upisan u "comment form",prvo posprema u bazu ili je moguče da php zadrži podatke u varijablama i odmah ih kopira na stranicu s komentarima ?
[ pajaja @ 26.09.2013. 22:44 ] @
Pozdrav,

nije nuzno da se cuva u bazi ali jeste nuzno da se sacuva negde. Stranica sa komentarima se generise "u letu" na osnovu podataka iz baze (fajla), tako da nije moguce kopirati nista na nju.
[ CORSA @ 26.09.2013. 23:02 ] @
ako sam te dobro razumio,takav komentar bi se obrisao nakon sljedečeg generisanja stranice ili...??
[ bantu @ 27.09.2013. 10:51 ] @
Logično, ako ga nigdje ne sačuvaš, nećeš da ga ni imaš. Imaš nekoliko načina da ga sačuvaš:
- baza
- memorija
- file
- itd...

Najčešće se čuva u bazi, jer je tako najlakše, najsigurnije i najbrže. Baze su u principu i konstruisane za takve stvari.
http://en.wikipedia.org/wiki/Database
http://en.wikipedia.org/wiki/MySQL
[ CORSA @ 27.09.2013. 11:50 ] @
da,naravno !
No mislio sam da kad ga sačuvaš u varijabli PHP-a,da neki kod može ispisati taj komentak u obliku (<body>

<p>komentar</p>

</body>)
I da se nakon tog više ne izbriše.
Dakle ,na takav način to nije moguće izvesti ?!



[ bantu @ 27.09.2013. 13:26 ] @
Varijabla je neki uslovno rečeno objekat koji postoji u memoriji dok se tvoj program ili proces izvršava. Ti u svakom trenutku možeš da pristupiš toj varijabli untar scope-a u kom je definisana ta varijabla. U ovom slučaju proces traje koliko traje i izvršavanje http request-a. Kada se proces završi oslobađaju se i resursi koje je taj proces zauzeo uključujući i memoriju u kojoj se nalazila tvoja varijabla.

Ukratko rečeno, unutar jednog request-a imaš dostupno to što se nalazi u varijabli, u sledećem nemaš.

Aako je pitanje bilo dali može ovo, može:

Code:

<?php
   $varijabla = $_POST["komentar"];
?>

<body>

   <p><?=$varijabla?></p>

</body>


[ CORSA @ 27.09.2013. 15:37 ] @
da,majstore,točno to je bilo pitanje..razumio si.
samo mi reci, zašto se taj način ne prakticcira jer ovako na oko izgleda puno jednostavnije.
Hvala ti!
[ Burgos @ 27.09.2013. 15:50 ] @
Citat:
bantu:

Ukratko rečeno, unutar jednog request-a imaš dostupno to što se nalazi u varijabli, u sledećem nemaš.


[ CORSA @ 27.09.2013. 16:02 ] @
da,razumijem te,malo sam bio brzoplet i nisam raznlmislio da mi nakon sljedečeg request-a briše se vrijednost u varijabli.
sad mi je jasno to,takav kod nema onda svrhe.

Nego malo me muči, kako treba izgledati cod forme za takav komentar.l?

Zapravo kako izgleda kod koji iz baze kupi taj komentar i stavlja ga na "textarea" na stranici ?
Bi li bio toluko ljubazan da mi to malo objasniš nekim primjerom koda?
[ bantu @ 27.09.2013. 18:15 ] @
Možda nešto ovako brzinski:

Code:

CREATE DATABASE komentari;

USE komentari;

CREATE TABLE komentari (
  id INT NOT NULL AUTO_INCREMENT,
  komentar varchar(255) NOT NULL,
  vrijeme datetime NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB;


Code:

<html>
    <head>
        <title>Test komentari</title>
    </head>
    <body>
<?php
    $mysqli = new mysqli("localhost", "username", "password", "komentari");

    if ($mysqli->connect_errno) {
        printf("Connect failed: %s\n", $mysqli->connect_error);
        exit();
    }

    if (isset($_POST['komentar'])) {
        if ($stmt = $mysqli->prepare("INSERT INTO komentari (komentar, vrijeme) VALUES (?, NOW())")) {

            $stmt->bind_param("s", $_POST['komentar']);
            $stmt->execute();

            $stmt->close();
        }        
    }
?>
        <form action="index.php" method="POST">
            <textarea name="komentar" rows="10"></textarea>
            <br/>
            <input type="submit" name="Submit" value="Send" />
        </form>
        <br/>
        <br/>
<?php
    if ($result = $mysqli->query("SELECT komentar, DATE_FORMAT(vrijeme,'%d.%m.%Y %H:%i:%S') AS tacno FROM komentari ORDER BY vrijeme DESC")) {

        while ($row = $result->fetch_assoc()) {
?>
        <hr style="clear: both"/>
        <p style="float: left"><?=$row['komentar']?><p/>
        <p style="float: right"><?=$row['tacno']?><p/>
<?php

        }


    $result->free();
}

    $mysqli->close();
?>
    </body>
</html>
[ CORSA @ 27.09.2013. 19:44 ] @
oho... veliki j kod :)

hvala ti najljepša prijatelju.
[ CORSA @ 27.09.2013. 23:30 ] @
Haha....

Nebi bilo dobro da ne naiđem na novi problem...

Imam problem što mi ne dopušta kreirati novu bazu,zna li tko o čem je reč ?
[att_img] http://imageshack.us/photo/my-images/200/pjeg.jpg/
[ Jbyn4e @ 28.09.2013. 07:41 ] @
Nisi dobro konfigurisao korisnika za phpmyadmin koji ima prava da kreira baze?
[ CORSA @ 28.09.2013. 09:22 ] @
može li mi tko pomoči oko toga ?
kako da to ispravim ?
[ Jbyn4e @ 28.09.2013. 13:42 ] @
Evo...
http://www.kroativ.net/web-dev...yadmin-kreiranje-baze-tablice/
ili
http://www.darkopetrovic.com/eucenje_tut_phpmyadmin.php
pa se snađi.
[ CORSA @ 29.09.2013. 13:43 ] @
Citat:
bantu:

<form action="index.php" method="POST">
<textarea name="komentar" rows="10"></textarea>
<br/>
<input type="submit" name="Submit" value="Send" />
</form>
<br/>
<br/>




Trebao bi još malo pomoči oko ovog djela koda.

tvoj kod trebao bi ispisati unešen komentar iz baze ,na istu php stranicu,odma ispod forme za upis ,jel tako ?

No ,meni taj kod traži "index.php" ,zašto ?

dal trebam imati još neku php i zašto ?!

Ok,opet sam brzoplet i ne razmišljam.

To je taj isti php,skužio sam hvala !

[Ovu poruku je menjao CORSA dana 29.09.2013. u 15:14 GMT+1]
[ bantu @ 29.09.2013. 19:47 ] @
Vidiš, što više učiš postaje zanimljivije. :-)
[ CORSA @ 30.09.2013. 13:09 ] @
Molim te ,možeš li mi dodati u onaj tvoj kod "Vaše ime :"

Pokušavam sam nadodat i promjenit kod da dodam u formu "Vaše ime :" ,ali očigledno nisam još dorastao tome :)

Da vidim gdje sam griješio u svojim pokušajima.
[ bantu @ 30.09.2013. 14:38 ] @
Prvo izmjeni tabelu u bazi:

Code:
alter table komentari add column ime varchar(20) default null;


Zatim u formu dodaj još jedan input field za ime:

Code:

<form action="index.php" method="POST">
<input type="text" name="ime" /><br/>
...


Izmjeni insert statement i dodaj još jedan parametar kako bi to sve upisao u bazu:

Code:

if ($stmt = $mysqli->prepare("INSERT INTO komentari (komentar, ime, vrijeme) VALUES (?, ?, NOW())")) {

            $stmt->bind_param("ss", $_POST['komentar'], $_POST['ime']);


Pribavi ga iz baze za prikazivanje, dakle izmjeni select statement:
Code:
if ($result = $mysqli->query("SELECT komentar, DATE_FORMAT(vrijeme, ime,'%d.%m.%Y %H:%i:%S') AS tacno FROM komentari ORDER BY vrijeme DESC")) {


I na kraju prikaži ga, npr iznad vremena:
Code:
<hr style="clear: both"/>
        <p style="float: left"><?=$row['komentar']?><p/>
        <p style="float: right">Vaše ime: <?=$row['ime']?><br/><?=$row['tacno']?><p/>
[ CORSA @ 30.09.2013. 14:49 ] @
dok sam čekao tvoj odgovor ,učio sam na raznim kodovima i sad dok ja pokušavam primjeniti ovo što si mi dao ,molim te daj mi samo reci
zašto mi u kodu ispod ne upisuje "ime " ?

Code:
<?php
$con=mysqli_connect("localhost","root","pass","komentari");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO komentari (ime, komentar)
VALUES
('$_POST[ime]','$_POST[komentar]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";

mysqli_close($con);
?>
<form action="proba1.php" method="post">
Ime: <input type="text" name="Ime"  ><br/>
Komentar: <textarea name="komentar" ></textarea><br/>
<input type="submit">
</form>

[ bantu @ 30.09.2013. 15:00 ] @
Za početak ovdje ima više grešaka nego linija koda, nadam se da si svjestan toga.

ime nije jednako Ime, mislim da ti je u tome probelmm i mislim da će ti se svaki put insertovati i po jedan prazan slog kada se prvi put učita stranica.
[ CORSA @ 30.09.2013. 15:32 ] @
Citat:
bantu:
<html>
<head>
<title>Test komentari</title>
</head>
<body>
<?php
$mysqli = new mysqli("localhost", "root", "pass", "komentari");

if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}

if (isset($_POST['komentar'])) {
if ($stmt = $mysqli->prepare("INSERT INTO komentari (komentar, ime, vrijeme) VALUES (?, ?, NOW())")) {

$stmt->bind_param("ss", $_POST['komentar'], $_POST['ime']);
$stmt->execute();

$stmt->close();
}
}
?>
<form action="index.php" method="POST">
<input type="text" name="ime" /><br/>
<textarea name="komentar" rows="10"></textarea>
<br/>
<input type="submit" name="Submit" value="Send" />
</form>
<br/>
<br/>
<?php
if ($result = $mysqli->query("SELECT komentar, DATE_FORMAT(vrijeme, ime,'%d.%m.%Y %H:%i:%S') AS tacno FROM komentari ORDER BY vrijeme DESC")) {
while ($row = $result->fetch_assoc()) {
?>
<hr style="clear: both"/>
<p style="float: left"><?=$row['komentar']?><p/>
<p style="float: right">Vaše ime: <?=$row['ime']?><br/><?=$row['tacno']?><p/><?php

}


$result->free();
}

$mysqli->close();
?>
</body>
</html>


evo,ovako bi to trebalo biti izmjenjeno,no sad se komentar nigdje ne ispisuje. ?!?
[ bantu @ 30.09.2013. 15:45 ] @
Napravio sam gresku u select-u:

Code:
<!DOCTYPE html>
<html>
    <head>
        <title>Test komentari</title>
        <style type="text/css">
            body {
                background: gray;
            }
        </style>
    </head>
    <body>
<?php

    $mysqli = new mysqli("localhost", "username", "password", "komentari");
    
    if ($mysqli->connect_errno) {
        printf("Connect failed: %s\n", $mysqli->connect_error);
        exit();
    }

    if (isset($_POST['komentar'])) {
        if ($stmt = $mysqli->prepare("INSERT INTO komentari (komentar, ime, vrijeme) VALUES (?, ?, NOW())")) {

            $stmt->bind_param("ss", $_POST['komentar'], $_POST['ime']);
            $stmt->execute();

            $stmt->close();
        }        
    }
?>
        <form action="index.php" method="POST">
            <input type="text" name="ime" /><br/>
            <textarea name="komentar" rows="10"></textarea>
            <br/>
            <input type="submit" name="Submit" value="Send" />
        </form>
        <br/>
        <br/>
<?php
if ($result = $mysqli->query("SELECT komentar, ime, DATE_FORMAT(vrijeme, '%d.%m.%Y %H:%i:%S') AS tacno FROM komentari ORDER BY vrijeme DESC")) {

        while ($row = $result->fetch_assoc()) {
            if ($row['komentar']) {    
?>
        <hr style="clear: both"/>
        <p style="float: left"><?=$row['komentar']?><p/>
        <p style="float: right">Vaše ime: <?=$row['ime']?><br/><?=$row['tacno']?><p/>
<?php
            }

        }


    $result->free();
}


    $mysqli->close();
?>
    </body>
</html>
[ CORSA @ 30.09.2013. 16:00 ] @
E,puno ti hvala !
Jako si mi pomogao i dosta toga naučio.
Neizmjerno sam ti zahvalan :)