понедельник, 24 июля 2017 г.

PHP & MySQLi create table select insert update delete

At the start of working with MySQLi on PHP we must create connection:

$mysqli = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die('Not connected');
$mysqli->set_charset(DB_CHARSET);
if (mysqli_connect_errno()) {
    printf("Error connection this website: %s\n", mysqli_connect_error());
    exit();
}


Example how to create table with PHP on MySQL database.


$sql_create_tbl="CREATE TABLE IF NOT EXISTS `mytable` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) UNSIGNED NOT NULL DEFAULT '0',
  `name` char(25) NOT NULL,
  `status` varchar(20) NOT NULL DEFAULT 'publish',
  `pretext` text,
  `content` longtext,
  `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `IP` varchar(255) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `uid` int(9) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;";
$mysqli->query($sql_create_tbl);


Example how to select row from table with PHP on MySQL database.

$var = 1;
if ($stmt = $mysqli->prepare("SELECT  title FROM `mytable` WHERE uid=?")) {
    $stmt->bind_param("s", $var);
    $stmt->execute();
    $stmt->bind_result($district);
    $stmt->fetch();
        // printf("%s in %s\n", $var, $district);
echo $district;
    $stmt->close();
}
$mysqli->close();
Or count rows in table

$result = $mysqli->query("SELECT count(*) as countees FROM `mytable`");
$row = $result->fetch_row();
echo '#: ', $row[0];


Example how to update row in table with PHP on MySQL database.

$mysqli->query("UPDATE  `mytable` SET uid= '1'  WHERE  id = '".$id."'; ");

Example how to insert values to table with PHP on MySQL database.

$mysqli->query("INSERT INTO  `mytable` (id, name, uid)  VALUES (1, 'example', 3) ; ");
Or use the statement with insert/update:

$mysqli->query("INSERT INTO   `mytable` (id, a, b)  VALUES (1, 2, 3)
ON DUPLICATE KEY  UPDATE a=a, b=b;");


Example how to delete row from table with PHP on MySQL database.

$stmt = $mysqli->prepare("DELETE FROM `mytable` WHERE id= ?");
$stmt->bind_param('i', $_POST['ID']);
$stmt->execute();
$stmt->close();


Example how to alter table with PHP on MySQL database for adding keys.

$mysqli->query("ALTER TABLE `mytable`
  ADD KEY `key_post_id` (`name`,`post_id`,`id`),
  ADD KEY `uid` (`uid`);");




четверг, 23 февраля 2017 г.

Перевод даты с английского на русский PHP


Перевод даты с английского на русский PHP


function rus_date() {
// Перевод
 $translate = array(
 "am" => "дп",
 "pm" => "пп",
 "AM" => "ДП",
 "PM" => "ПП",
 "Monday" => "Понедельник",
 "Mon" => "Пн",
 "Tuesday" => "Вторник",
 "Tue" => "Вт",
 "Wednesday" => "Среда",
 "Wed" => "Ср",
 "Thursday" => "Четверг",
 "Thu" => "Чт",
 "Friday" => "Пятница",
 "Fri" => "Пт",
 "Saturday" => "Суббота",
 "Sat" => "Сб",
 "Sunday" => "Воскресенье",
 "Sun" => "Вс",
 "January" => "Января",
 "Jan" => "Янв",
 "February" => "Февраля",
 "Feb" => "Фев",
 "March" => "Марта",
 "Mar" => "Мар",
 "April" => "Апреля",
 "Apr" => "Апр",
 "May" => "Мая",
 "May" => "Мая",
 "June" => "Июня",
 "Jun" => "Июн",
 "July" => "Июля",
 "Jul" => "Июл",
 "August" => "Августа",
 "Aug" => "Авг",
 "September" => "Сентября",
 "Sep" => "Сен",
 "October" => "Октября",
 "Oct" => "Окт",
 "November" => "Ноября",
 "Nov" => "Ноя",
 "December" => "Декабря",
 "Dec" => "Дек",
 "st" => "ое",
 "nd" => "ое",
 "rd" => "е",
 "th" => "ое"
 );
 // если передали дату, то переводим ее
 if (func_num_args() > 1) {
 $timestamp = func_get_arg(1);
 return strtr(date(func_get_arg(0), $timestamp), $translate);
 } else {
// иначе текущую дату
 return strtr(date(func_get_arg(0)), $translate);
 }
 } 



PHP define IP address

Определение IP адреса на PHP можно сделать функцией, которая вернет строковое значение:


function getip()
{
  if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))
    $ip = getenv("HTTP_CLIENT_IP");
  elseif (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
    $ip = getenv("HTTP_X_FORWARDED_FOR");
  elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
    $ip = getenv("REMOTE_ADDR");
  elseif (!empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
    $ip = $_SERVER['REMOTE_ADDR'];

  else
    $ip = "unknown";
  return($ip); //ip посетителя
}


PHP Recursive data from query


Необходимо сделать рекурсивный вывод данных из массива используя один запрос к базе.
Пример для вывода записей в выпадающий список:
function build_tree($arrs, $parent_id=0, $level=0) {
    foreach ($arrs as $arr) {
        if ($arr['ParentID'] == $parent_id) {
            echo '<option value="' . $arr['ID'] . '">'.str_repeat(" &nbsp", $level)." ".$arr['Title'].'</option>';
            build_tree($arrs, $arr['ID'], $level+1);
        }
    }
}
echo '<select onchange="location = this.value;">';
build_tree($arr_b, 0);
echo '</select>';

а еще можно вывести ссылки таким способом:
// Recursive function
function getList($rows, $id=0){
    // Start a new list
    $newList = null;
    foreach($rows as $key => $row) {
        if ($row['ParentID'] == $id) {
            // Add an UL tag when LI exists
            $newList == null ? $newList = "<ul>" : $newList;
            $newList .= "<li>";
            $newList .= "<a href=\"\">{$row['Title']}</a>";
            // Find childrens
            $newList .= getList(array_slice($rows,$key),$row['ID']);
            $newList .= "</li>";
        }
    }
    // Add an UL end tag
    strlen($newList) > 0 ? $newList .= "</select>" : $newList;
    return $newList;
}
 print_r(getList($arr_b));

Постоянные читатели

Популярные сообщения