OK Thanks @thangtd90, mình sẽ thử xem sao. Nhưng có cách nào tiện hơn nữa ko Thắng ơi, tại vì nếu vậy thì mỗi record thì mình phải tạo 1 truy vấn, KH A truy vấn A, B,.... mình đang muốn lấy tự động trong database A
@toan.truong Bạn đã có thể dùng $con = mysql_connect($databaseHost, $databaseUser, $databasePassword ) để kết nối đến 1 DB rồi thì hoàn toàn có thể tạo ra $con2 = mysql_connect($databaseHost2, $databaseUser2, $databasePassword2) để kết nối đến DB còn lại mà.
Sau đó gọi đến các câu truy vấn thì dùng connection 2 thay vì connection 1, kiểu như mysql_select_db("db2", $con2).
Có một vấn đề mà bạn có thể sẽ gặp phải đó là Mysql trên server thứ 2 của bạn có thể chỉ đang mở kết nối ở localhost, tức là ở bên ngoài sẽ không thể access được vào. Trước tiên bạn cần phải kiểm tra chắc chắn rằng bạn có thể vào được DB đó từ máy chạy server PHP đã, nếu không vào được thì bạn cần phải config lại Mysql trước.
Còn vào OK rồi thì việc sử dụng 2 connection khác nhau để giải quyết vấn đề này cũng đơn giản thôi mà, cứ tạo 2 biến connection, khi nào cần query đến DB nào thì dùng connection tương ứng là được.
P/S: Bạn nên update lại phần code của mình, để chúng trong
```
```
Thanks bạn gì đã trả lời.Như vậy phần thông tin database connect mình khai báo như thế nào bạn. Bạn có thông tin hay hướng dẫn nào không. Tại vì mình truy vấn nhiều database khác host.
mình đang phân vân là 1 là dùng cách bạn @nguyen.van.duong , 2 là dùng một cách khai báo database gì đó để có thể sử dụng multidatabase. Sorry mình ko rành, nên đụng tới đâu google tới đó ah
Chào Bạn, cảm ơn bạn đã reply. Như đã nói mình chưa học qua PHP chủ yếu tự mày mò thôi, nên ko rành chuyên môn cho lắm. Phần kết nối PHP vs Mysql mình điền tay vào(mình thấy một số trang chỉ bỏ vào trong 1 file *.db gì đó).Mình post code lên đây luôn bạn xem giúp mình nhé:
<div class="container">
<h1>Call</h1>
<table class="table table-hover ">
<thead class="active">
<tr>
<th>Customer</th>
<th>Total Call</th>
</tr>
</thead>
<tbody>
# (câu truy vấn thứ 2 mình tính bỏ vào chỗ này" SELECT cnam as khachhang, COUNT(calldate) AS total_call
FROM cdr WHERE calldate BETWEEN '2017-07-01 00:00:00' AND '2017-07-31 23:59:59'
AND recordingfile <> ''
AND (( cnum like '%%' AND dst IN ($ phần này lấy dữ liệu từ EXT bảng trên)) OR (cnum IN ($ phần này lấy dữ liệu từ EXT bảng trên) AND dst like '%%'))" )
<?php While ($row = mysql_fetch_array($dd_res)): ?>
<tr>
<td><?php echo ($r['0']) ?></td>
<td><?php echo ($r['total_call']); ?></td>
</tr>
<?php endwhile; ?>
<?php mysql_close ($conn); ?>
</tbody>
</table>
</body>
@phuong1492 Lưu các file mà user upload lên cloud storage cũng là một giải pháp, tuy nhiên vẫn còn những cách giải quyết khác mà :slight_smile:
Mình nghĩ các file do user upload lên sẽ được đặt vào trong một thư mục riêng đúng không bạn, chẳng hạn như public/upload, và nó sẽ tách biệt với thư mục chứa những file assets precompile (css, javascript) của bạn (giả sử như nó là public/assets)
Như vậy thì thay vì mount toàn bộ thư mục public, bạn chỉ cần mount thư mục public/upload ra ngoài là được mà, do nó là thư mục chứa file user upload, nên ban đầu nó cũng không chứa gì, và qua các bản release nó cũng sẽ không thay đổi gì đúng không bạn
Thực chất, ngoài sử dụng cho bảo mật thì mục đích chính của Captcha chính là tận dụng nguồn nhân lực free trên internet để nhận diện chữ viết, thường là tài liệu được scan từ các văn tự đã cũ, khó nhìn; hoặc với mục đích khác là đánh nhãn cho dữ liệu ảnh (nhà, xe, bảng hiệu...).
Hàng năm, chính những người dùng internet đã đóng góp phần lớn công sức vào việc đánh lại những tài liệu đó bằng việc nhập Captcha.
Trong public ngoài js và css(đc sinh tạo ra khi chạy assest precompile) thì còn có chứa các file do user upload lên, hoặc những file csv mà user export ra.
Nếu không đc thì có lẽ phải lưu dữ liệu vào cloud storage nào đó anh nhỉ?
@phuong1492 Mình có thắc mắc một chút là trong thư mục log và public của bạn đang chứa dữ liệu gì vậy? Tại sao khi release lại cần thay đổi trong đó?
Thay vì cứ tìm cách đi theo hướng
giữ lại nội dung trong thư mục public và log của container trước và update thêm nội dung của build container lần này
bạn thử nghĩ cách giải quyết theo hướng
những folder trong container mà bạn cần mount thư mục ở máy host vào thì bạn không nên để gì trong đó, chúng chỉ nên là những folder trống
xem sao
Những thứ thư mục trong container đã có dữ liệu thì không nên mount, đã mount thì không nên chứa dữ liệu.
DISCUSSIONS
bạn code bằng php thuần hay Framework nào, nếu php thuần thì tạo 2 kết nối db thôi. Cách đơn giản nhất là khai báo 2 kết nối như sau:
OK Thanks @thangtd90, mình sẽ thử xem sao. Nhưng có cách nào tiện hơn nữa ko Thắng ơi, tại vì nếu vậy thì mỗi record thì mình phải tạo 1 truy vấn, KH A truy vấn A, B,.... mình đang muốn lấy tự động trong database A
ok thanks @KmasterYC , nhưng dropdown của mình sau này có nhiều option lắm, mà gán tay kiểu đó chắc sẽ bị nhầm.
@qaqeqe0 Bạn muốn lấy gì từ trang đó. Bạn chỉ cần return giá trị đó trong hàm page.evaluate là OK :slight_smile:
(n)
@toan.truong Bạn đã có thể dùng
$con = mysql_connect($databaseHost, $databaseUser, $databasePassword )
để kết nối đến 1 DB rồi thì hoàn toàn có thể tạo ra$con2 = mysql_connect($databaseHost2, $databaseUser2, $databasePassword2)
để kết nối đến DB còn lại mà. Sau đó gọi đến các câu truy vấn thì dùng connection 2 thay vì connection 1, kiểu nhưmysql_select_db("db2", $con2)
.Có một vấn đề mà bạn có thể sẽ gặp phải đó là Mysql trên server thứ 2 của bạn có thể chỉ đang mở kết nối ở
localhost
, tức là ở bên ngoài sẽ không thể access được vào. Trước tiên bạn cần phải kiểm tra chắc chắn rằng bạn có thể vào được DB đó từ máy chạy server PHP đã, nếu không vào được thì bạn cần phải config lại Mysql trước. Còn vào OK rồi thì việc sử dụng 2 connection khác nhau để giải quyết vấn đề này cũng đơn giản thôi mà, cứ tạo 2 biến connection, khi nào cần query đến DB nào thì dùng connection tương ứng là được.P/S: Bạn nên update lại phần code của mình, để chúng trong ``` ```
để tránh bị lỗi format như hiện tại.
Thanks bạn gì đã trả lời.Như vậy phần thông tin database connect mình khai báo như thế nào bạn. Bạn có thông tin hay hướng dẫn nào không. Tại vì mình truy vấn nhiều database khác host.
mình đang phân vân là 1 là dùng cách bạn @nguyen.van.duong , 2 là dùng một cách khai báo database gì đó để có thể sử dụng multidatabase. Sorry mình ko rành, nên đụng tới đâu google tới đó ah
Chào Bạn, cảm ơn bạn đã reply. Như đã nói mình chưa học qua PHP chủ yếu tự mày mò thôi, nên ko rành chuyên môn cho lắm. Phần kết nối PHP vs Mysql mình điền tay vào(mình thấy một số trang chỉ bỏ vào trong 1 file *.db gì đó).Mình post code lên đây luôn bạn xem giúp mình nhé:
<?php $databaseHost = "203.162.XXX.XXX"; $databaseUser = "XXX"; $databasePassword = "XXXX"; $databaseName = "callreport"; $con=mysql_connect($databaseHost ,$databaseUser ,$databasePassword )or die ('Connection Error'); mysql_select_db("callreport",$con) or die ('Database Error'); ?> <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width , initial-scale=1”"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <title>Call Report </title> </head> <body>Call Report Form
<form calss="form-group" action="" method="post"> <table> <tr> <label for="KH">Customer</label>: <Select name="kh" class="form-control" > <option value="none">-----SELECT-----</option> <option value="all">ALL</option> <?php $dd_res=mysql_query("Select name_kh from callreport_list"); while($r=mysql_fetch_row($dd_res)) { echo "<option value='$r[0]'> $r[0] </option>"; } mysql_close ($conn); ?> </form>FROM cdr WHERE calldate BETWEEN '2017-07-01 00:00:00' AND '2017-07-31 23:59:59' AND recordingfile <> '' AND (( cnum like '%%' AND dst IN ($ phần này lấy dữ liệu từ EXT bảng trên)) OR (cnum IN ($ phần này lấy dữ liệu từ EXT bảng trên) AND dst like '%%'))" ) <?php While ($row = mysql_fetch_array($dd_res)): ?> <tr> <td><?php echo ($r['0']) ?></td> <td><?php echo ($r['total_call']); ?></td> </tr> <?php endwhile; ?> <?php mysql_close ($conn); ?> </tbody> </table> </body>
</div> </html> ...Nice article
@toan.truong Bạn có thể làm rõ hơn một số vấn đề dưới đây được không
Edited, cái đấy quen thuộc mà viết nhầm
vâng, em cám ơn ạ!
@vinhnguyen Bạn có thể nói rõ hơn cho mình về cách chọn activation function được không? Mình cảm ơn.
https://github.com/ngocthoaia1/reports-html-canvas/blob/master/game.html code ảnh này anh, cái này như phát triển thêm cái trên w3school, lôi vào chơi thử
@phuong1492 Lưu các file mà user upload lên cloud storage cũng là một giải pháp, tuy nhiên vẫn còn những cách giải quyết khác mà :slight_smile:
Mình nghĩ các file do user upload lên sẽ được đặt vào trong một thư mục riêng đúng không bạn, chẳng hạn như
public/upload
, và nó sẽ tách biệt với thư mục chứa những file assets precompile (css, javascript) của bạn (giả sử như nó làpublic/assets
)Như vậy thì thay vì mount toàn bộ thư mục
public
, bạn chỉ cần mount thư mụcpublic/upload
ra ngoài là được mà, do nó là thư mục chứa file user upload, nên ban đầu nó cũng không chứa gì, và qua các bản release nó cũng sẽ không thay đổi gì đúng không bạngame đâu ? ko có chỗ nào chơi à (2tat)
Thực chất, ngoài sử dụng cho bảo mật thì mục đích chính của Captcha chính là tận dụng nguồn nhân lực free trên internet để nhận diện chữ viết, thường là tài liệu được scan từ các văn tự đã cũ, khó nhìn; hoặc với mục đích khác là đánh nhãn cho dữ liệu ảnh (nhà, xe, bảng hiệu...). Hàng năm, chính những người dùng internet đã đóng góp phần lớn công sức vào việc đánh lại những tài liệu đó bằng việc nhập Captcha.
@phuong1492 Mình có thắc mắc một chút là trong thư mục
log
vàpublic
của bạn đang chứa dữ liệu gì vậy? Tại sao khi release lại cần thay đổi trong đó? Thay vì cứ tìm cách đi theo hướngbạn thử nghĩ cách giải quyết theo hướng
xem sao
Những thứ thư mục trong container đã có dữ liệu thì không nên mount, đã mount thì không nên chứa dữ liệu.