Vinnaren i pepparkakshustävlingen!
2014-03-21, 19:55
  #1
Medlem
Dr.Kratzs avatar
Hej!

Nedstående kod fungerar och skapar lägger till allt som det ska i databasen.
Kod:
//Connection code

//$antal = $_POST['antal'];
$nights $_POST['nights'];
$nights++;
//$rows_inserted = 0;

//while ($rows_inserted < $antal) {

function generateRandomuser($length 5) {
    
$characters 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
$randomString '';
    for (
$i 0$i $length$i++) {
        
$randomString .= $characters[rand(0strlen($characters) - 1)];
    }
    return 
$randomString;
}

function 
generateRandompass($length 9) {
    
$characters '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
$randomString '';
    for (
$i 0$i $length$i++) {
        
$randomString .= $characters[rand(0strlen($characters) - 1)];
    }
    return 
$randomString;
}

$USRV generateRandomuser();
$PWDV generateRandompass();

$USR $USRV;
$PWD $PWDV;

mysqli_query($con,"INSERT INTO `guests` (username,password,expires) VALUES ('$USR',MD5('$PWD'),UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL +$nights DAY)))");

//        if(mysqli_affected_rows($con) == 1) {
//        $rows_inserted++;
//        mysqli_affected_rows($con);
//        }
//}
mysqli_close($con); 

men om jag lägger till en while-loop för att skapa ett visst antal slupmässiga användare enligt nedan så loopar den aldrig. Den skapar en användare, och sedan händer inget mer.

Kod:
//Connection code

$antal $_POST['antal'];
$nights $_POST['nights'];
$nights++;
$rows_inserted 0;

while (
$rows_inserted $antal) {

function 
generateRandomuser($length 5) {
    
$characters 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
$randomString '';
    for (
$i 0$i $length$i++) {
        
$randomString .= $characters[rand(0strlen($characters) - 1)];
    }
    return 
$randomString;
}

function 
generateRandompass($length 9) {
    
$characters '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
$randomString '';
    for (
$i 0$i $length$i++) {
        
$randomString .= $characters[rand(0strlen($characters) - 1)];
    }
    return 
$randomString;
}

$USRV generateRandomuser();
$PWDV generateRandompass();

$USR $USRV;
$PWD $PWDV;

mysqli_query($con,"INSERT INTO `guests` (username,password,expires) VALUES ('$USR',MD5('$PWD'),UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL +$nights DAY)))");

        if(
mysqli_affected_rows($con) == 1) {
        
$rows_inserted++;
        
mysqli_affected_rows($con);
        }
}
mysqli_close($con); 

Är det någon som kan komma med någon ide om var felet ligger?

Tack
__________________
Senast redigerad av Dr.Kratz 2014-03-21 kl. 19:58.
Citera
2014-03-21, 19:58
  #2
Medlem
svampdamps avatar
Varför ligger det två funktioner i en while loop? Ut med dem för helvete. Börja med det.

Jag har aldrig sett något liknande Du kallar ju på funktionen endast en gång, jag är förvånad att det där ens genererar en användare.


Gör som så, ta bort while loopen sedan gör du dina funktionsanrop från en loop istället

while() {
$USRV = generateRandomuser();
}

Kommer anropa generateRandomuser varje gång den körs, dock kommer värdet $USRV inte att sparas utan skrivas över vid varje loop.
__________________
Senast redigerad av svampdamp 2014-03-21 kl. 20:02.
Citera
2014-03-21, 20:08
  #3
Medlem
Dr.Kratzs avatar
Tack för hjälpen!

Det hade tagit en stund att dra den slutsatsen själv.
Allt fungerar bra nu
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback