我希望得到你的帮助,因为我被困在这里:
SQL:
$testEvents = $db->prepare("SELECT * FROM events WHERE str_to_date(concat(`eventDate`, ' ', `time`), '%d-%m-%Y %H:%i')");
$testEvents ->execute();
PHP:
<?php
while ( $test = $testEvents->fetch(PDO::FETCH_ASSOC) ) {
if( ! is_numeric($test['eventName'] && is_numeric($test['teamA']) && is_numeric($test['teamB']))) {
echo $test['eventName'];
echo "<br>";
}
}
?>
示例:如果eventName
不 数字和teamA
&amp; teamB
不是空,显示eventName
数据。
和
如果teamA
&amp; teamB
不 数字和eventName
IS 一个数字,显示teamA
和{{1 }}
图片说明: Explanation
答案 0 :(得分:0)
除了你奇怪的数据库设计......回答你的问题你可以试试这个......
我编写了一些测试数据来模拟你的数据库
$data = [
[
'eventName'=>'1',
'teamA'=>'Magallanes',
'teamB'=>'Caracas',
'eventDate'=>'17-11-2016',
'eventTime'=>'11:11'
],
[
'eventName'=>'Manana',
'teamA'=>'123',
'teamB'=>'123',
'eventDate'=>'17-11-2016',
'eventTime'=>'12:12'
]
];
然后测试了代码以执行你的循环......你走在正确的轨道上,但显然你只是放弃了......
foreach($data as $test) {
if( ! is_numeric($test['eventName']) && is_numeric($test['teamA']) && is_numeric($test['teamB'])) {
echo $test['eventName'];
echo " ";
echo $test['eventDate'];
echo " ";
echo $test['eventTime'];
echo "<br>";
}
else if (is_numeric($test['eventName']) && ! is_numeric($test['teamA']) && ! is_numeric($test['teamB'])) {
echo $test['teamA'];
echo " x ";
echo $test['teamB'];
echo " ";
echo $test['eventDate'];
echo " ";
echo $test['eventTime'];
echo "<br>";
}
}
结果
Magallanes x Caracas 17-11-2016 11:11
Manana 17-11-2016 12:12
根据需要交换和更改内容。
答案 1 :(得分:0)
<?php
while ( $test = $testEvents->fetch(PDO::FETCH_ASSOC) )
{
if( ! is_numeric($test['eventName']) && is_numeric($test['teamA']) && is_numeric($test['teamB']))
{
echo $test['eventName']." ".$test['eventDate']." ".$test['eventTime']."<br>";
}
else if (is_numeric($test['eventName']) && ! is_numeric($test['teamA']) && ! is_numeric($test['teamB']))
{
echo $test['teamA']." x ".$test['teamB']." ".$test['eventDate']." ".$test['eventTime']."<br>";
}
}
?>