Ответы пользователя по тегу PHP
  • Почему не получается выбрать таблицу?

    morozovdenis
    @morozovdenis
    select * from mails where name = "name";или
    select * from mails where name = 'name';
    не помню как строки обрамляются

    соответственно когда выполняете запрос из php
    mysql_query("SELECT * FROM mails WHERE name='$template'");
    Ответ написан
    1 комментарий
  • Есть ли библиотеки для реализации кластеризации на PHP?

    morozovdenis
    @morozovdenis
    если вам не обязательно честную кластеризацию то можно и самому не долго написать:
    предисловие: мною было посчитано что смещение на 0.01 градуса по прямой на нашей планете земля можно считать 1111 метров
    $objects = array(array('lon' => 1, 'lat' => 2), ..., ...);
    $cluster = array();
    $levels = 10;
    $firstRectWidth = 0.01; //самый маленький "квадрат" будет 1111 на 1111
    for ($i = 0; $i < count($objects); $i++)
    {
    $obj = $objects[$i];
    for ($level = 1; $level <= $levels; $level++)
    {
             $lon_index = ($obj->lon) / ($firstRectWidth * (2 ^ $level)); // не помню как степень в php
             $lat_index = ($obj->lat) / ($firstRectWidth * (2 ^ $level)); // не помню как степень в php
             $cluster[$level][$lon_index . "-" . $lat_index][] = $i;
    }
    }
    
    // использование
    
    $zoom = 1..10;
    echo "кластеров ".(count($cluster[$zoom]))."<br >";
    foreach ($cluster[$zoom] as $key => $value)
    {
              echo "область ".$key."<br >";
              echo "кол-во элеметнов ". (count($value));
    }
    Ответ написан
    Комментировать
  • Как хранить и выбирать данные для пейджинга?

    morozovdenis
    @morozovdenis
    1. денормализуйте схему БД

    2. дублируйте данные в таком виде что-бы было можно было эффективнее выбирать их
    Ответ написан
    1 комментарий
  • Как осуществить отправку данных методом post в JavaScript?

    morozovdenis
    @morozovdenis
    подключите jQuery к странице:
    <head>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    ...
    <head>

    потом использовать так:
    <script>
    $.post( "test.php", { name: "John", time: "2pm" } , function(data) {
    //выполнится после запроса и в data будет лежать то, что выведет скрипт test.php в output 
    });
    </script>

    или так:
    <script>
    $.post( "test.php", 'key1=value1&key2=value2' , function(data) {
    //выполнится после запроса и в data будет лежать то, что выведет скрипт test.php в output. в этом случае в php будет доступно $_POST['key1']
    } );
    </script>

    больше примеров здесь: api.jquery.com/jQuery.post
    Ответ написан
    Комментировать
  • Как осуществить цикличный проход по каталогу и занесение файлов в массив?

    morozovdenis
    @morozovdenis
    fucntion getFileNames($root)
    {
        $out = array();
        $files = scandir($root);
        for ($i = 0; $i < count($files); $i++)
        {
            $name = $files[$i];
            if ($name == "." || $name == "..")
            {
                continue;
            }
            if (is_dir($root . "/" . $name))
            {
                $out = array_merge($out, getFileNames($root . "/" . $name));
            }
            else
            {
                 $out[] = $name;
            }
        }
        return $out;
    }

    версия без рекурсии
    function convertArray($array, $path)
    {
    	$result = array();
    	for ($i = 0; $i < count($array); $i++)
    	{
    		$result[] = $path . "/" . $array[$i];
    	}
    	return $result;
    }
    
    fucntion getFileNames($root)
    {
    	$out = array();
    	$files = convertArray(scandir($root), $root);
    	while (count($files))
    	{
    		$path = array_shift($files);
    		
    		if (basename($path) == "." || basename($path) == "..")
    		{
    			continue;
    		}
    		
    		if (is_dir($path))
    		{
    			$files = array_merge($files, convertArray(scandir($path), $path);)
    		}
    		else
    		{
    			$out[] = basename($name);
    		}
    	}
    	
    	return $out;
    }
    Ответ написан
    Комментировать
  • Пагинатор. В чем может быть проблема?

    morozovdenis
    @morozovdenis
    $files = ... // получить список файлов в массив
    $files = array("fiel1.txt", "fiel3.txt", "file4.txt"); // например 
    
    $current_page = 1; //например
    $limit = 2;
    
    for ($i = $current_page * $limit; $i < count($files) && $i < ($current_page + 1) * $limit; $i++)
    {
        echo $files[$i];
    }

    выведет:
    file4.txt

    главный замысел в том что мы оперируем в моём примере с со списком файлов и их индексами в этом списке
    Ответ написан
  • Как вставить в переменную два значения?

    morozovdenis
    @morozovdenis
    $sql = 'SELECT * FROM message WHERE (canal="hibye" OR canal="byehi") AND private="1"';
    $message = ... // выполнить запрос
    if ("hibye" == $message["canal"])
    {
        //...
        header('Location: page1.php');
        die();
    }
    else if ("byehi" == $message["canal"])
    {
        //...
        header('Location: page2.php');
        die();
    }
    Ответ написан
    4 комментария
  • Как реализовать проверку?

    morozovdenis
    @morozovdenis
    например так:
    $sql = "SELECT * FROM successcanal WHERE fieldName = 'bad'";
    $query = mysqli_query($db_conx, $sql);
    $numrows = mysqli_num_rows($query );
    if ($numrows > 0)
    {
        header("Location: other_page.php");
        die();
    }
    Ответ написан
    Комментировать
  • Как осуществить перенос из PHP-файла переменной в JS-файл?

    morozovdenis
    @morozovdenis
    <?php
    
    $data = array(
        array(
            'title' => 'Arduino #1',
            'id' => 1,
            'image' => 'http://www.casemods.ru/templates/images/texts/3_4119479.jpg',
            'top' => 200,
            'left' => 300,
            'width' => 800,
            'height' => 760,
            'points' => array(
                'id' => 1,
                'objectId' => 1,
                'top' => 300,
                'left' => 500,
                'tip' => 500,
            ),
        ),
        array(
            'title' => 'Arduino #2',
            'id' => 2,
            'image' => 'img/objects/arduino.png',
            'top' => 200,
            'left' => 300,
            'width' => 800,
            'height' => 760,
            'points' => array(
                'id' => 1,
                'objectId' => 2,
                'top' => 300,
                'left' => 500,
                'tip' => 500,
            ),
        )
    );
    ?>
    <script type="text/javascript">
    var data = <?php echo json_encode($data); ?>;
    console.log(data[0]["title"]);
    </script>
    Ответ написан
    Комментировать
  • Каким способом лучше пользоваться при проверке переменной?

    morozovdenis
    @morozovdenis
    в первом случае isset проверяет существование переменной и если $r будет существовать, то в не зависимости от значения переменной $r условие будет работать

    во втором случае условие проверяет что $r истина и только когда переменная истина условие будет работать

    работает когда $r = true, false, 1, 2, -1000000, 'asdf' и т.д.
    if (isset($r))
    {
    echo "Текст";
    }


    работает когда $r = true, 1, 2, 1000, 'asdf' и т.п.
    if ($r == true)
    {
    echo "Текст";
    }


    работает когда $r = true и только
    if ($r === true)
    {
    echo "Текст";
    }
    Ответ написан
    Комментировать