Chce zaimplementować na mojej stronie system prywatnych wiadomości lecz napotkałem błąd którego nie jestem w stanie rozwiązać... napewno jest coś nie tak z zapytaniem SQL tylko niebardzo rozumiem dlaczego. Tutaj jest kod funkcji której używam do znajdowania użytkowników:
<?php include('connect.php'); $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name); if($polaczenie->connect_errno!=0) { } else { function fetch_user_ids($user_names) { foreach($user_names as &$name){ $name = mysqli_real_escape_string($name); } $result = mysqli_query("SELECT UzytkownikID, Login FROM uzytkownicy WHERE Login IN ('" . implode("', '", $user_names) . "')"); while(($row = mysqli_fetch_assoc($result)) !== false){ $names[$row['Login']] = $row['UzytkownikID']; } return $names; } } ?>
A tak wygląda walidacja w której używam wyżej napisanej funkcji :
<?php ?> <! DOCTYPE html> <html> <head> <title>On-move</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta charset='UTF-8'> <link href ="css/bootstrap.min.css" rel = "stylesheet"> <link href="css/styles.css" rel = "stylesheet"> <link href="css/fontello.css" rel = "stylesheet"> <link href="css/simple-sidebar.css" rel="stylesheet"> <link rel="stylesheet" href="jquery.realperson.css"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src = "js/bootstrap.js"></script> <script src = "js/skrypty.js"></script> <script type="text/javascript" src="jquery.plugin.js"></script> <script type="text/javascript" src="jquery.realperson.js"></script> <link rel="shortcut icon" href="http://sstatic.net/stackoverflow/img/favicon.ico"> </head> <body> <?php include "NaglowekLogged.php" ?> <?php $errors[] = "Musisz dodac odbiorce"; $errors[] = 'Lista uzytkownikow nie wyglada prawidlowo'; }else{ foreach ($user_names as &$name){ } include "funkcja.php"; $user_ids = fetch_user_ids($user_names); $errors[] = 'Uzytkownicy nie moga zostac znalezieni' . implode(', ', array_diff($user_names, array_keys($user_ids))); } } $errors[] = 'Temat nie moze byc pusty'; } $errors[] = 'Musisz cos napisac, nie można wysłać pustej wiadomości'; } } } echo '<div class ="alert alert-success">Twoja Wiadomosc została wysłana! <a href="Konwersacja.php">Wróc do skrzynki</a></div>'; }else{ foreach($errors as $error){ } } } ?> <div class = "container" style="padding: 80px; color: white;"> <form class="form-horizontal" action="" method="post"> <div class="col-md-4"> <label for="do"> Do </label> <input type="text" class="form-control input-md" name="do" id="do" value="<?php if(isset($_POST['do'])) echo htmlentities($_POST['do']); ?>" /> <label for="temat"> Temat </label> <input type="text" class="form-control input-md" name="temat" id="temat" value="<?php if(isset($_POST['temat'])) echo htmlentities($_POST['temat']); ?>" /> </br> </div> <div> <textarea class="form-control" name="body" rows="20" cols="110" ><?php if(isset($_POST['body'])) echo htmlentities($_POST['body']); ?></textarea> </div> <div> </br> <input type="submit" value="Wyslij" /> </div> </form> </div> </body> </html>
Gdy nie wypełnie żadnego pola to walidacja zadziała tak jak na screenie poniżej:

A gdy wszystkie pola zostaną wypełnione następuje coś takiego :

Cały czas wypisuje tą linijke z błędem jakby była zapętlona niemam pojęcia dlaczego... Z tego co wyczytałem błąd ten dotyczy złego zapytania SQL ale zmieniałem to zapytanie na takie które mi działają i problem nadal występuje.
Jeżeli ktoś ma pomysł jak to rozwiązać będę wdzięczny.