2011-08-24 28 views
5

Tôi có một cơ sở dữ liệu mysql điều đã được tham gia vào một textarea không có định dạng, họ chỉ sử dụng một ký tự xuống dòng cho ngắt dòngtruy vấn sql để chuyển đổi ký tự dòng mới cho một html <br>

\n 

tôi cần phải chuyển đổi tất cả các thẻ này thành các thẻ html br

<br /> 

bạn có thể giúp tôi viết truy vấn để làm điều này mà tôi có thể chạy trong phpmyadmin sẽ làm điều này?

tên của bảng là

exp_channel_data 

như một câu hỏi tiền thưởng ...

Có một truy vấn tôi có thể chạy mà sẽ tước mọi thứ ra khỏi giữa p và tuổi thẻ

Tôi muốn loại bỏ nội dung này

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"> 
<span face="Times New Roman"> 

và kết thúc với chỉ này

<p> 
<span> 
+0

Chỉ trong trường hợp bạn chưa biết về điều này, hãy đọc lên trên SQL injection: http://en.wikipedia.org/wiki/SQL_injection. Bạn thực sự, thực sự, không muốn có SQL trong cơ sở dữ liệu của bạn. Ngoài ra, nói chung, tôi khuyên bạn nên thực hiện loại định dạng này hoạt động bên ngoài cơ sở dữ liệu. –

+0

ya Tôi thực sự không bao gồm bất kỳ SQL trong cơ sở dữ liệu (tôi nghĩ), đây chỉ là một chuyển đổi một lần tôi cần phải chạy, đánh giá cao các tip – mjr

Trả lời

14

Câu hỏi đầu tiên:

UPDATE exp_channel_data SET text_column = REPLACE(text_column, '\r\n', '<br />') 

Nếu nó không thay thế bất cứ điều gì, sử dụng '\n' thay vì '\r\n'.

Thứ hai câu hỏi:

Bạn không thể làm điều đó với một truy vấn SQL, bạn phải lấy dữ liệu này vào một kịch bản PHP, hoặc bất cứ điều gì khác mà bạn thích, và thực hiện một biểu hiện thường xuyên thay thế (ví dụ cho PHP) :

$new_str = preg_replace('#<(p|span)[^>]+>#', '<$1>', $old_string); 
+0

cảm ơn, tôi sẽ giữ cho tùy chọn php trong tâm trí cho tương lai – mjr

5
UPDATE yourTable SET text=REPLACE(text,"\n","<br />") 

này làm việc cho câu hỏi đầu tiên của bạn.

+0

Đó không phải là một cú pháp SQL hợp lệ – Crack

+0

@ Crack, vâng xin lỗi về điều đó. Quá nóng và ẩm ướt ở Đức ngay bây giờ. – Jacob

+0

Heh, chia sẻ mặt trời của bạn. 19 ° C và mưa ở Ba Lan;) – Crack

1

Vì bạn đang sử dụng ExpressionEngine, bạn chỉ có thể thay đổi định dạng của từng trường thành XHTML. Nó sẽ thêm đánh dấu <br /> khi hiển thị trên giao diện người dùng. đặt cược để giữ cho dữ liệu của bạn sạch sẽ và để lại định dạng cho trình phân tích cú pháp hiển thị nó.

+0

Tôi thực sự chuyển từ một fieldarpe textarea với tự động br định dạng để NSM TinyMCE và muốn bảo tồn các vi phạm, nếu tôi không làm điều này tất cả các văn bản chạy cùng nhau, nếu tôi không chuyển đổi fieldtypes giải pháp của bạn sẽ là một tốt nhất – mjr

Các vấn đề liên quan