Avatar billede jedimaster Nybegynder
08. august 2005 - 20:54 Der er 10 kommentarer og
1 løsning

Updatere en tabel.

Hej.

Jeg har en medlemstabel. Hvert medlem har en password kolonne, men den er tom. Og det skal der gøres noget ved. Jeg ønsker at indsætte et tilfældigt password i hvert af medlemmernes tomme password kolonner - altså opdatere tabellen.

Jeg har følgende password generator - men jeg kan ikke finde ud af at bruge den, således at den opdaterer tabellen.

(taget fra www.phpfreaks.com)

function makeRandomPassword() {
$salt = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvXxYyZz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7) {
  $num = rand() % strlen($salt);
  $tmp = substr($salt, $num, 1);
  $pass = $pass . $tmp;
  $i++;
}
return $pass;
}
$random_password = makeRandomPassword();

Er der nogen der kan hjælpe??
Avatar billede jaw Nybegynder
08. august 2005 - 20:59 #1
Sådan her tror jeg at jeg ville gøre:

<?
function makeRandomPassword() {
$salt = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvXxYyZz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7) {
  $num = rand() % strlen($salt);
  $tmp = substr($salt, $num, 1);
  $pass = $pass . $tmp;
  $i++;
}
return $pass;
}

//connect
$q = mysql_query("SELECT id FROM tabel WHERE password = ''") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  $random_password = makeRandomPassword();
  mysql_query("UPDATE tabel SET `password` = '$random_password' WHERE id = ".$row['id']);
}
?>
Avatar billede jedimaster Nybegynder
08. august 2005 - 21:26 #2
Jeg har prøvet koden, men den ændre ikke noget i min tabel - jeg har prøvet at ændre lidt i den. :


function makeRandomPassword() {
$salt = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvXxYyZz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7) {
  $num = rand() % strlen($salt);
  $tmp = substr($salt, $num, 1);
  $pass = $pass . $tmp;
  $i++;
}
return $pass;
}

//connect
$q = mysql_query("SELECT * FROM medlem WHERE password = '' ") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  $random_password = makeRandomPassword();
  mysql_query("UPDATE tabel SET 'password' = '$random_password' WHERE id = ".$row['id']);
}
Avatar billede jedimaster Nybegynder
08. august 2005 - 21:26 #3
men det virker stadig ikke
Avatar billede jaw Nybegynder
08. august 2005 - 21:28 #4
Hvad virker ikke? Sker der bare ingenting, fejlmeddelelser eller hva?
Avatar billede jaw Nybegynder
08. august 2005 - 21:30 #5
Prøv at rette din update-query til:

mysql_query("UPDATE tabel SET 'password' = '$random_password' WHERE id = ".$row['id']) or die(mysql_error());

Så tror jeg du får en fejl, for du har skrevet noget jeg ikke bad dig om :)
Avatar billede jedimaster Nybegynder
08. august 2005 - 21:34 #6
Nu får jeg følgende:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''password' = 'TGN7NKhD' WHERE id = 1000' at line 1

Men har stadig ikke ændret noget :)
Avatar billede jaw Nybegynder
08. august 2005 - 21:35 #7
Jow, du har sat ' (apostrofer) i stedet for ` (som jeg så absolut ikke kan huske hvad hedder). Prøv at ændre det :)
Avatar billede jedimaster Nybegynder
08. august 2005 - 21:37 #8
HOV!!!!

Jeg har glemt at ændre "tabel" i update funktionen!!!
Avatar billede jedimaster Nybegynder
08. august 2005 - 21:38 #9
Nu virkede det!!!!!

Du er en helt!
Avatar billede jedimaster Nybegynder
08. august 2005 - 21:39 #10
Giv mig venligst et svar - så kan du få dine velfortjente point.

OG MANGE MANGE TAK!!!
Avatar billede jaw Nybegynder
08. august 2005 - 21:39 #11
Hehe, det gør det jo så ikke bedre :D

Og selv mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester