|
(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi |
|
Alati teme | Način prikaza |
03. 02. 2014. | #1 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Najbolje prakse za komunikaciju sa serverom
Ovde sam uradio jednostavan sistem Dodavanje podataka u bazu i Izmene podataka u bazi: http://agrotime.roadvoyage.com/index1.html sa AJAX tehnikom
Znaci za dodavanje imam: Kôd:
$("#newData").click(function() { if($("#name").val()!="") { $.ajax({ url: "add.php", type: "POST", async: true, data: { Name:$("#name").val(), Gender:$("#gender").val(), Age:$("#age").val(), Donuts_eaten:$("#donuts_eaten").val()}, //your form data to post goes here as a json object dataType: "html", success: function(data) { $('#output').html(data); drawVisualization(); }, }); } else { } }); Kôd:
<?php $con = mysql_connect('localhost', 'korisnik', 'pass') or die('Error connecting to server'); mysql_select_db('baza', $con); mysql_select_db('baza', $con); $query = "INSERT INTO `stat` (`Name`, `Gender`, `Age`, `Donuts eaten`) VALUES ("; $query .= "'".mysql_real_escape_string($_POST['Name']) . "', "; $query .= "'".mysql_real_escape_string($_POST['Gender']) . "', "; $query .= "'".mysql_real_escape_string($_POST['Age']) . "', "; $query .= "'".mysql_real_escape_string($_POST['Donuts_eaten']); $query .= "')"; $result = mysql_query($query); if($result != false) { echo "Uspesno dodavanje!"; } else { echo "Greska!"; } ?> Poslednja izmena od mslavko : 03. 02. 2014. u 15:08. |
03. 02. 2014. | #2 |
Pukovnik u penziji
Grand Master
|
Upotreba mysql_* funkcija je najlošija moguća praksa pa ti sad vidi...
|
04. 02. 2014. | #3 | |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Citat:
Sta da uradim umesto toga? Pocnje ovaj php da me nervira jer za neke proste stvari postoji 10 nacina da se urade i ni jedan nije pravi svaki ima neku manu ... Puno php verzija, puno bugova ... Da koristim pyton ili da krenem da ucim neki php framework? Poslednja izmena od mslavko : 04. 02. 2014. u 02:05. |
|
04. 02. 2014. | #4 |
emperor Selassie
Grand Master
|
U svakom programskom jeziku postoji 10 načina da odradiš istu stvar. Umesto MySQL funkcija koristi MySQLi na primer: http://php.net/mysqli
Poslednja izmena od Nemanja Avramović : 04. 02. 2014. u 08:14. Razlog: mysqli link |
04. 02. 2014. | #5 |
expert
Grand Master
|
|
04. 02. 2014. | #6 | |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Citat:
Kôd:
$mysqli =mysqli_connect('localhost', 'baza', 'pass', 'korisnik'); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: ".mysqli_connect_error(); } $query = mysqli_query($mysqli, 'SELECT * FROM stat'); if (!$query) { die("Error running $sql: " . mysql_error()); } $table = array(); $table['cols'] = array( array('label' => 'ID', 'type' => 'number'), array('label' => 'Name', 'type' => 'string'), array('label' => 'Gender', 'type' => 'string'), array('label' => 'Age', 'type' => 'number'), array('label' => 'Donuts eaten', 'type' => 'number') ); $rows = array(); while($r = mysqli_fetch_assoc($query)) { $temp = array(); // each column needs to have data inserted via the $temp array $temp[] = array('v' => (int) $r['ID']); $temp[] = array('v' => $r['Name']); $temp[] = array('v' => $r['Gender']); $temp[] = array('v' => (int) $r['Age']); $temp[] = array('v' => (int) $r['Donuts eaten']); // typecast all numbers to the appropriate type (int or float) as needed - otherwise they are input as strings // insert the temp array into $rows $rows[] = array('c' => $temp); } // populate the table with rows of data $table['rows'] = $rows; // encode the table as JSON $jsonTable = json_encode($table); echo $jsonTable; |
|
05. 02. 2014. | #7 |
Pukovnik u penziji
Grand Master
|
Još bolja ideja je korištenje PDO-a...
Osim toga ne znam o kakvim bugovima pričaš... Vjerovatno radiš Copy-paste smeća sa interneta koji pišu svakakvi "programeri" Poslednja izmena od mangia : 05. 02. 2014. u 12:34. |
08. 02. 2014. | #8 | |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Evo, uradio sam "rewrite" koda sa MYSQL_* funcijama u PDO medjutim neznam sta je sada problem:
KOD: Kôd:
<?php /* Your Database Name */ $dbname = 'nesto'; // change this /* Your Database User Name and Passowrd */ $username = 'nesto'; // change this $password = 'pass'; // change this $pdo = new PDO("mysql:host=localhost;dbname=$dbname", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO stat (Name, Gender, Age, Donuts_eaten ) VALUES ( :Name, :Gender, :Age, :Donuts_eaten)"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':Name', $_POST['name'], PDO::PARAM_STR); $stmt->bindParam(':Gender', $_POST['gender'], PDO::PARAM_STR); $stmt->bindParam(':Age', $_POST['age'], PDO::PARAM_INT); // use PARAM_STR although a number $stmt->bindParam(':Donuts_eaten', $_POST['Donuts_eaten'], PDO::PARAM_INT); // old execute // $stmt->execute(); $stmt->execute(array(':Name' => $_POST['name'],':Gender' => $_POST['gender'],':Age' => $_POST['age'],':Donuts_eaten' => $_POST['Donuts_eaten'])); if($stmt != false) { echo "success!"; } else { echo "an error occured saving your data!"; } ?> Citat:
HTML je dobar sa svim ID poljima kao sto treba, kao i kolone u tabeli baze ... s tim da su polja age i donus eaten INTEGER, mozda mi problem pravi ID polje koje je autoincrement |
|
|
|