2013-02-19 2 views
0

hey guys im пытается получить четные индексы строки из db, а затем сохранить их в переменной, а затем echo. но мои коды, похоже, не работают. пожалуйста помоги. здесьполучение четного индекса строки

require_once('DBconnect.php'); 
$school_id = '1'; 
$section_id = '39'; 
$select_pk = "SELECT * FROM section 
    WHERE school_id = '$school_id' 
    AND section_id = '$section_id'"; 
$query = mysql_query($select_pk) or die (mysql_error()); 
while ($row = mysql_fetch_assoc($query)) { 
    $public_key = $row['public_key']; 
} 

if ($public_key) { 
    $leng_public_key = strlen($public_key); 
    $priv_key_extract = ""; 
    $array_pki = array(); 
    for ($i=0; $i <=$leng_public_key-1 ; $i++) { 
     array_push($array_pki,$public_key[$i]); 
    } 

    foreach ($array_pki as $key => $value) { 
     if($key % 2 == 0) { 
      $priv_key_extract += $public_key[$key]; 
     } else { 
      $priv_key_extract ="haiiizzz"; 
     } 
    } 
} 
echo $priv_key_extract; 

, как вы можете видеть, я пытаюсь использовать modulo 2, чтобы увидеть, является ли индекс четным.

+2

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **] (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (http://j.mp/XqV7Lp). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. – Kermit

+0

, мы начали проект с mysql_ *, но потом плохо переключитесь в mysqli после этого проекта – Aoi

ответ

1

Я обновил свой код, как показано ниже, он будет работать сейчас:

<?php 
$public_key = 'A0L8V1I5N9'; 
if ($public_key) { 
    $leng_public_key = strlen($public_key); 
    $priv_key_extract = ""; 
    $array_pki = array(); 
    for ($i=0; $i <=$leng_public_key-1 ; $i++) { 
     array_push($array_pki,$public_key[$i]); 
    } 
    foreach ($array_pki as $key => $value) { 
     //Changed condition below $key % 2 ==0 => replaced with $key % 2 == 1 
     if($key % 2 == 1) { 
      // Changed concatenation operator , += replaced with .= 
      $priv_key_extract .= $public_key[$key]; 
     } /*else { 
      //Commented this as it is getting overwritten 
      $priv_key_extract ="haiiizzz"; 
     }*/ 
    } 
} 
echo $priv_key_extract; 
?> 
+0

Ха, я думаю, что получаю недоразумение @Aoi –

+0

Я забыл это. = Is diff from + = in php – Aoi

+0

@Minesh, почему вы изменили if ($ key% 2 == 1) from if ($ key% 2 == 0) запутался – Aoi

0

Попробуйте эту функцию

function extractKey($key) { 
    if (empty($key) || !is_string($key)) return ''; 

    $pkey = ''; 
    for ($i=0;$i<strlen($key);$i++) { 
     if ($i % 2 == 0) { 
      $pkey .= $key[$i]; 
     } 
    } 
    return $pkey; 
} 
echo extractKey('12345678'); # => 1357 
Смежные вопросы