0

I want to create some random sql data with a php script

currently I get the last record, generate a random number between 1 and 2 ... if its a 1 I will add a random number to the record else if its a 2 i will subtract a random number from

the problem is it keeps spitting out minus random numbers! I only want positive random numbers.

$result = mysql_query("SELECT * FROM Data ORDER BY id DESC") 
    or die(mysql_error()); 

while($row = mysql_fetch_array( $result )) {
// Print out the contents of each row into a table

    $temp=$row['temp'];
    $light=$row['light'];

};

$name="Herbi";
$date=Date("o:m:d");
$time=Date("H:i:s");

$rand =rand(1,2);
$randnu =rand(1,10);

echo " rand:".$rand;
switch($rand){

    case 1:
        $temprand=$temp+$randnu;
        $lightrand=$light+$randnu;
    break;

    case 2:
        $temprand=$temp-$randnu;
        $lightrand=$light-$randnu;
    break;
};
echo"";
echo"randnu";
echo $randnu;
echo "   ";
echo"lightrand";
echo $lightrand;
4

1 に答える 1

0

コードに基づいて、これは有効です。$temp=1 および $rand=2 の場合、$temprand は -1 になります。

$temp と $light が常に最大乱数以上である必要があるというチェックを追加できるため、$temp または $light から (最大の) 乱数を差し引くと、0 になります。

if($row['temp']>=2){
  $temp=$row['temp'];
}else{
  $temp=2; //Max of $rand =rand(1,2);
}

または略記

$temp=($row['temp'] >= 2? $row['temp'] : 2);
$light=($row['light'] >= 10? $row['light'] : 10);
于 2013-09-23T10:46:45.760 に答える