Check als DB record niet bij laatste 3 zit
15:20 Emeli Sande Read All About It Pt.Iii
15:19 The Game Hate It Or Love It
15:15 Emeli Sande Read All About It Pt.Iii
15:12 Onerepublic Counting Stars
Hoe kan ik dit makkelijk afvangen dat het huidige nummer niet bij de laaste 3 of 4 records in de DB staat, voordat deze waardes de DB ingeschoten worden?
Nu check ik met het volgende of het laatste nummer niet hetzelfde is.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
$sql = mysql_query("SELECT nummer FROM $name ORDER BY id DESC LIMIT 1") or die(mysql_error());
$check = mysql_fetch_array($sql);
if ($check["nummer"] == $nummer)
{
echo $name.' staat al in db - '.$nummer.'<br />';
}else{
//schiet in DB
}
$check = mysql_fetch_array($sql);
if ($check["nummer"] == $nummer)
{
echo $name.' staat al in db - '.$nummer.'<br />';
}else{
//schiet in DB
}
Moet ik dan de limit op bv 3 of 4 zetten en dan met een while of loop werken?
Gewijzigd op 25/02/2014 15:26:23 door Bart B
edit: Waarom gebruik je de limit 1? Om te voorkomen dat als het nummer een uur geleden is toegevoegd wel wordt toegevoegd? Dan kun je misschien beter INTERVAL() gebruiken en de limit weg laten. Met INTERVAL() haal je dan de records op van de afgelopen 10 minuten o.i.d.
Gewijzigd op 25/02/2014 15:47:57 door Michael -
Interval() zal niet werken, omdat het ook wel eens zo is dat ze een uur of langer een mix draaien. Dan krijg ik als nog dubbele records als ik het goed begrijp?
Toevoeging op 26/02/2014 14:34:10:
Hoe dit te doen via DISTINCT() of GROUP BY() begrijp ik niet helemaal. Met onderstaande code werkt het zoals ik wil, maar dit zal vast niet de mooiste / meest nette oplossing zijn :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$sql = mysql_query("SELECT nummer FROM $name ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($check = mysql_fetch_array($sql)) {
if ($check['nummer'] == $nummer){
$checkifbestaat .= 'true';
}else{
$checkifbestaat .= 'false';
}
}
if($checkifbestaat == 'falsefalsefalsefalsefalse'){
$nummer = mysql_real_escape_string($nummer);
$artist = mysql_real_escape_string($artist);
$tijd = time();
mysql_query("INSERT INTO $name (tijd, nummer, artist, timestamp) VALUES (NOW(), '" . $nummer . "', '" . $artist . "', '" . $tijd . "')") or die(mysql_error());
}
?>
$sql = mysql_query("SELECT nummer FROM $name ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($check = mysql_fetch_array($sql)) {
if ($check['nummer'] == $nummer){
$checkifbestaat .= 'true';
}else{
$checkifbestaat .= 'false';
}
}
if($checkifbestaat == 'falsefalsefalsefalsefalse'){
$nummer = mysql_real_escape_string($nummer);
$artist = mysql_real_escape_string($artist);
$tijd = time();
mysql_query("INSERT INTO $name (tijd, nummer, artist, timestamp) VALUES (NOW(), '" . $nummer . "', '" . $artist . "', '" . $tijd . "')") or die(mysql_error());
}
?>
Gewijzigd op 26/02/2014 14:34:41 door Bart B
Iemand nog een suggestie hiervoor? Hoe dit netter / beter zou kunnen?
Bart B Jij ben zeker van Radio 538?
Ik heb een kleine website waar alle nummers worden bijgehouden welke gedraaid worden zodat ik later gemakkelijk terug kan zien welk nummer dat was wat ik bv in de auto hoorde.