2013-08-29 7 views
0

Im пытается обновить несколько строк с уникальными строками для каждой строки, нажав кнопку. Но всякий раз, когда я их генерирую, он сохраняет одно и то же значение. и im с ошибкой, говорящей «Примечание: Неинициализированное смещение строки: 60». Я также хочу, чтобы, если уникальная строка уже существует в базе данных, она должна создать новую. Помоги пожалуйста. больше силы!Обновление уникальных строк в нескольких наборах записей в php mysql

вот мой код:

if(isset($_POST['gen'])){ 
function genRandomString() { 
    $length = 6; 
    $characters = '023456789abcdefghijkmnopqrstuvwxyzQWERTYUIOPASDFGHJKLZXCVBNM'; 
    $string = '';  

    for ($p = 0; $p < $length; $p++) { 
     $string .= $characters[mt_rand(0, strlen($characters))]; 
    } 
    return $string; 
} 

    $q = mysql_query("SELECT * FROM exam_passwords WHERE pass_subject_id = ".$subject_id."")or die(mysql_error()); 
    $r = mysql_num_rows($q); 

    for($i = 0; $i<$r; $i++){ 

    $random_string = genRandomString(); 
    $k = "UPDATE exam_passwords SET pass_password = '$random_string' WHERE pass_subject_id = '$subject_id'"; 
$result = mysql_query($k); 

    } 
} 
+0

Есть ли другой способ обновить мои записи, чтобы обновлять несколько строк с помощью уникальных строк? –

ответ

0

Как STRLEN возвращает фактическое число символов в строке и обрабатывать строку как массив символов будет индексировать эту строку от 0 до -1 StrLen вам нужно ,

Измените эту строку следующим образом.

$string .= $characters[mt_rand(0, strlen($characters) -1)]; 
+0

Справа. спасибо за ваше предложение, но не могли бы вы мне помочь, как обновлять несколько строк с помощью уникальных строк? –

+0

Это может помочь http://stackoverflow.com/questions/688549/finding-duplicate-values-in-mysql. Вы должны обернуть свой существующий цикл кода через все дубликаты, найденные кодом в связанном сообщении. – RiggsFolly

+0

Есть ли другой способ обновить мои записи, чтобы обновлять несколько строк с помощью уникальных строк? –

Смежные вопросы