我有三个基本表:
tblUsers:
usrID usrFirst usrLast
1 John Smith
2 Bill Jones
3 Jane Johnson
pm_data:
id date_sent title sender_id thread_id content
2 2009-07-29 18:46:13 Subject 1 1 111 Message 2!
3 2009-07-29 18:47:21 Another Subject 1 222 Message 3!
pm_info:
id thread_id receiver_id is_read
1 111 2 0
2 111 3 0
3 222 2 0
4 222 3 0
Run Code Online (Sandbox Code Playgroud)
基本上,我想要做的是创建一个收件箱.
因此,如果usrID 2(Bill Jones)打开他的收件箱,他将看到他2个未读(因此是'is_read'列)消息(线程#111和#222).
基本上,我需要知道如何将我的SELECT语句设置为JOIN所有三个表(pm_data和pm_info之间的关系带来了消息信息,而tblUsers和pm_data之间的关系带来了发送者的'显示名称'),在顶部显示最新的(按时间戳?)线程.
因此,我们会看到这样的事情:
<?php $usrID = 2; ?>
<table id="messages">
<tr id="id-2">
<td>
<span>
From: John Smith …Run Code Online (Sandbox Code Playgroud) 希望这是一个容易补救的东西.我在理解jQuery Pagination插件时遇到了一些问题.
基本上,我要做的就是加载一个PHP文件,然后对结果进行分页.我试图摆脱他们的榜样,但我并没有屈服于我正在寻找的结果.
这是JavaScript:
function pageselectCallback(page_index, jq){
var new_content = $('#hiddenresult div.result:eq('+page_index+')').clone();
$('#Searchresult').empty().append(new_content);
return false;
}
function initPagination() {
var num_entries = $('#hiddenresult div.result').length;
// Create pagination element
$("#Pagination").pagination(num_entries, {
num_edge_entries: 2,
num_display_entries: 8,
callback: pageselectCallback,
items_per_page:3
});
}
$(document).ready(function(){
$('#hiddenresult').load('load.php', null, initPagination);
});
Run Code Online (Sandbox Code Playgroud)
这是我的HTML(加载PHP之后):
<div id="Pagination" class="pagination"> </div>
<br style="clear:both;" />
<div id="Searchresult"> </div>
<div id="hiddenresult" style="display:none;">
<div class="result">Result #1</div>
<div class="result">Result #2</div>
<div class="result">Result #3</div>
<div class="result">Result #4</div>
<div class="result">Result #5</div>
<div class="result">Result #6</div>
<div class="result">Result …Run Code Online (Sandbox Code Playgroud) 我目前正在使用JSON编码数组来显示我的数据库中的用户以获得自动建议功能.
它看起来像这样:
$sth = mysql_query("SELECT id, name FROM users");
$json = array();
while($row = mysql_fetch_assoc($sth)) {
$json['name'] = $row['name'];
$json['id'] = $row['id'];
$data[] = $json;
}
print json_encode($data);
Run Code Online (Sandbox Code Playgroud)
返回:
[{"id":"81","name":"John Doe"},{"id":"82","name":"Jane Doe"}]
Run Code Online (Sandbox Code Playgroud)
我的问题有点双重:
首先,如何手动向此输出添加其他对象?例如,假设我想添加: {"id":"444","name":"A New Name"}
因此,它看起来像:
[{"id":"81","name":"John Doe"},{"id":"82","name":"Jane Doe"},{"id":"444","name":"A New Name"}]
Run Code Online (Sandbox Code Playgroud)
其次,假设我也想从单独的表中向数组中添加更多对象,例如:
$sth = mysql_query("SELECT id, title FROM another_table");
$json = array();
while($row = mysql_fetch_assoc($sth)) {
$json['name'] = $row['title'];
$json['id'] = $row['id'];
$data[] = $json;
}
print json_encode($data);
Run Code Online (Sandbox Code Playgroud)
这样我可以在JSON数组中填充两个表,因此,在我的autosuggest中显示为其他选项.
希望这是有道理的,因为我已经努力表达我想要完成的事情.
谢谢!
我有一个简单的问题,可能很容易回答.我已经四处走动,但不确定我是在正确搜索还是在搜索什么.无论如何,使用PHP,我怎么能增加一半?
例如,我知道我可以使用以下循环:
<?php
for ($i=1; $i<21; $i++) {
print($i);
}
Run Code Online (Sandbox Code Playgroud)
它将打印1 - 20.
但是,我怎样才能输出如下内容:
1
1.5
2
2.5
etc...
Run Code Online (Sandbox Code Playgroud)
对不起我对此的无知,我只是不确定如何去做.谢谢!
我目前在表中有以下行:
course_data:
user_id days <-- This is a varchar column.
405 1,3,5
Run Code Online (Sandbox Code Playgroud)
我正在尝试实现以下SELECT语句:
SELECT usrID, usrFirst, usrLast, usrEmail
FROM tblUsers
WHERE usrID NOT IN
(
SELECT users.usrID
FROM
`course_data` courses,
`tblUsers` users
WHERE
days IN ('$day')
)
GROUP BY usrID
ORDER BY usrID
Run Code Online (Sandbox Code Playgroud)
基本上,如果$ day变量包含'1,3或5',我希望省略该行(使用用户405).
例如,如果$day = "1",它应该返回一个空查询(因为数字"1"在列"1,3,5"中).
但是,我没有发现这种情况.尽管如此$day = "1",它仍然会返回那一行.
它不会返回行的唯一方法是if $day= "1,3,5." ,我认为IN()子句将接受我的变量的任何部分并将其应用于该列.
我在这里做错了什么见解?谢谢.
我有一个有趣的问题,我似乎无法解决使用Select2和FullCalendar.
单击某个事件后,我尝试使用数据库中的内容预先选择Select2下拉列表:
$('#calendar').fullCalendar({
eventClick: function(calEvent, jsEvent, view) {
$("#view_event").modal(); //launches bootstrap modal
$("#client_list_edit").select2();
$("#client_list_edit").select2("val", calEvent.ClientID);
}
});
Run Code Online (Sandbox Code Playgroud)
这是我想不通:当我eventClick在第一时间,它并没有与信息预填充.
但是,当我eventClick第二次(或eventClick日历上的任何其他事件)时,它可以正常选择并显示正确的值.
我正在一个网站上,使用PHP/MySQL,用户可以上传视频,然后,这些视频被转换(使用FFMPEG)到FLV和MP4文件.
现在,整个"上传"和"转换"过程发生在实际由不同提供商托管的不同(远程)服务器上.
我使用不同托管位置的原因是因为它们提供更多存储和转换功能.
我的问题是:如何(或者最好的方式)我可以从用户主要互动的主网站上传文件到我的"视频托管网站"?此外,当上传视频时,信息也会添加到数据库中(视频标题,描述等),那么如何将此信息输入数据库?从远程位置还是主站点?
另外,我该如何安全地做到这一点?意思是,有人不能只是"浏览"视频网站并随机上传文件.
或者,如果某人有完全不同的建设性建议,我也非常感激.
非常感谢!
我目前正在使用SwiftMailer向几个用户发送电子邮件(最多50个).我已经设置并正常工作,但是,我不太确定如何从MySQL数据库中提取收件人并迭代发送它们.
这是我目前拥有的:
<?php
require_once 'swift/lib/swift_required.php';
$mailer = Swift_Mailer::newInstance(
Swift_SmtpTransport::newInstance('smtp.connection.com', 25)
->setUsername('myUserName')
->setPassword('myPassword')
);
$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(9));
$message = Swift_Message::newInstance()
->setSubject('Let\'s get together today.')
->setFrom(array('myfrom@domain.com' => 'From Me'))
->setTo(array('tom_jones@domain.com' => 'Tom Jones', 'jsmith@domain.com' => 'Jane Smith', 'j_doe@domain.com' => 'John Doe', 'bill_watson@domain.com' => 'Bill Watson',))
->setBody('Here is the message itself')
->addPart('<b>Test message being sent!!</b>', 'text/html')
;
$numSent = $mailer->batchSend($message, $failures);
printf("Sent %d messages\n", $numSent);
Run Code Online (Sandbox Code Playgroud)
如上所示,在setTo中,我想从数据库中的用户进行迭代.就像是:
SELECT first, last, email FROM users WHERE is_active=1
该文件规定:
Note: Multiple calls to setTo() …
我试图提交一个"空白"表单,故意触发错误.
但是,它仍然响应"成功"功能而不是标记错误.但是,没有添加任何记录.
当我在输入字段中提交信息时,表单可以正常工作.
形成:
<%= simple_form_for :course, :url => {:action => 'create'}, :remote => true do |f| %>
<%= f.input :title %>
<%= f.submit "Submit" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
模型:
class Course < ActiveRecord::Base
validates :title, presence: true
end
Run Code Online (Sandbox Code Playgroud)
控制器:
def create
@course = Course.new(course_params)
respond_to do |format|
if @course.save
format.html { redirect_to(:controller => 'schedule', :action => 'index') }
format.js
else
format.html { render :action => "new" }
format.js
end
end
end
Run Code Online (Sandbox Code Playgroud)
create.js.erb
$(document).ready(function() {
$("form").on("ajax:success", function(e, data, status, xhr) …Run Code Online (Sandbox Code Playgroud) 我在弄清楚我做错了什么时遇到了一些困难.我的ActiveRecord查询正在返回nil,我认为这会导致NoMethodError被引发.
这就是我所拥有的:
@number_exclude_list = ["1234567890", "2223334545"]
@available_number = UserNumber.where.not(:user_num => @number_exclude_list)
Run Code Online (Sandbox Code Playgroud)
返回一组空行:
=> #<ActiveRecord::Relation []>
Run Code Online (Sandbox Code Playgroud)
那么,我有:
if (@available_number.empty?)
inform_user_empty
else
do_my_other_function
Run Code Online (Sandbox Code Playgroud)
但是,我得到:
`NoMethodError (undefined method 'inform_user_empty' for nil:NilClass)`
Run Code Online (Sandbox Code Playgroud)
我试过了:@available_number.blank?和`@available_number.nil?
我仍然得到相同的NoMethodError.我在这里做错了什么想法?
php ×6
mysql ×4
javascript ×3
jquery ×3
ajax ×1
arrays ×1
exception ×1
fullcalendar ×1
increment ×1
json ×1
loops ×1
null ×1
pagination ×1
scripting ×1
select ×1
sql ×1
swiftmailer ×1
upload ×1