2013-09-03 4 views
0

Я хочу искать в массиве из mysql, если одна из дат из столбцов является текущей датой. Для Exemple я есть это относится в массиве:PHP check in Array от MYSQL

2013-09-03,2013-09-04,2013-09-06,2013-09-05,2013-09-07 

и текущая дата: 2013-09-03 поэтому я стараюсь это:

$dates = unserialize($row['dates']); 
$currentDate = date("Y-m-d"); 

$array = array($dates); 
if (in_array($currentDate, $array)) { 
echo "IS HERE !"; 
} 

но из везения.

+1

' var_dump ($ массив) 'и убедитесь, что эта переменная является массивом с датами как значения. – Timmetje

+1

Вы уверены, что ваш массив выглядит так, как вы хотите? Как насчет 'in_array ($ currentDate, $ dates)'? – Shomz

+1

Что такое '$ row ['dates']'? 'array()' is not метод и не волшебным образом преобразовывает строку в массив. –

ответ

1

Вы сказали var_dump($row["dates"]) Результаты в:

array(1) { [0]=> string(54) "2013-09-03,2013-09-04,2013-09-06,2013-09-05,2013-09-07" } 

Значение $row["dates"][0] содержит вашу строку со всеми датами.

Вы можете сделать это испытание:»

$currentDate = date("Y-m-d"); 

$date_array = explode(',', $row["dates"][0]); // Create an array with all your dates 

if (in_array($currentDate, $date_array)) { 
    echo "IS HERE !"; 
} 

Вы также можете сделать это:.

// Because $row["dates"][0] is a string with dates, you can simply search the date as string. 
if(strpos($row["dates"][0], $currentDate) !== FALSE){ 
    echo "IS HERE !"; 
} 
-2

Как насчет получения только строк с сегодняшней датой?

SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW()) 
+0

Он хочет знать, существует ли в его результатах mysql запись с текущей датой. Вопрос ясно не говорит, что он хочет только результатов с сегодняшнего дня. Пожалуйста, оставьте эти * предложения * в комментариях. – Timmetje

+0

Возможно, он не знал, что он может просто вытащить записи прямо из базы данных. В этом случае мы должны позволить ему/ей знать, что это более эффективно, вместо того, чтобы запускать цикл и пытаться выбрать нужные ему строки. Нехорошо думать на шаг вперед, а не просто отвечать. – Syd

+1

Ваше ключевое слово «возможно» правильно. Это обсуждается, а не окончательный ответ. Вот почему вы должны были обсудить это в разделе комментариев. Не просто бросайте на него ответы. Это не означает, что на шаг впереди, это небольшой шанс на правильный ответ и большой шанс на S.O. загрязнение, до обсуждения с ОП. Меньше кармагинга, и лучшие ответы делает С. О. лучшее место. – Timmetje