J'ai un problème inhabituel, un problème auquel je ne peux vraiment pas croire, mais il se produit et je n'arrive pas à m'en sortir. S'il vous plaît aidez-moi si quelqu'un sait ce que je fais mal.php empty() ne fonctionne pas correctement
J'ai besoin d'un tableau $EmpExists=array();
, qui affiche les résultats après avoir vérifié la base de données pour toutes les entreprises auxquelles des employés sont associés ou non. J'utilise PHP pour obtenir quelques valeurs de la base de données et je vérifie si la valeur est vide ou non. Je suit les tableaux et les lignes de données dans les:
Table `EmployeeList`
Columns EmpID BusinessID
Row 1 `emp-000001`,`business-000001`
Row 2 `emp-000002`,`business-000002`
Table `BusinessList`
Columns BusinessID
Row 1 `business-000001`
Row 2 `business-000002`
Row 3 `business-000003`
J'utilise suivant le code php pour appeler la liste des entreprises:
<?php
$BusinessIDforthis = array();
$select_BusinessIDs = "SELECT BusinessID FROM BusinessList ORDER BY BusinessID ASC;";
$select_BusinessIDs_query = mysqli_query($connection, $select_BusinessIDs);
if (!$select_BusinessIDs_query) {
die ("Database query for searching BusinessID failed.");
}
while ($BusinessIDs_array = mysqli_fetch_assoc($select_BusinessIDs_query)) {
$BusinessIDforthis[] = $BusinessIDs_array["BusinessID"];
}
Cela me donne un tableau de BusinessID
puis-je utiliser suivant php le code pour obtenir le EmpID
des employés pour la BusinessID
$EmpID = '';
$EmpExists = array();
$EmpIDRecord = array();
foreach ($BusinessIDforthis as $x) {
$select_EmpID = "SELECT EmpID FROM EmployeeList WHERE BusinessID='{$x}';";
$select_EmpID_query = mysqli_query($connection, $select_EmpID);
if (!$select_EmpID_query) {
die ("Database query for searching EmpID failed.");
}
while ($EmpID_array = mysqli_fetch_assoc($select_EmpID_query)) {
$EmpID = $EmpID_array["EmpID"];
if (empty($EmpID)) {
array_push($EmpExists, 'EmpNotExists');
array_push($EmpIDRecord, 'Employee does not exist.');
} else {
array_push($EmpExists, 'EmpExists');
array_push($EmpIDRecord, $EmpID);
}
$EmpID = '';
}
}
maintenant $EmpExists=array();
montre un tableau avec suivants ans wers:
Array
(
[0]=> EmpExists
[1]=> EmpExists
[2]=> EmpExists
)
et $EmpIDRecord=array();
montre un tableau avec les réponses suivantes:
Array
(
[0]=> emp-000001
[1]=> emp-000002
)
et $BusinessIDforthis=array();
montre un tableau avec les réponses suivantes:
Array
(
[0]=> business-000001
[1]=> business-000002
[2]=> business-000003
)
Le problème est que j'ai besoin de montrer le dernier élément à l'intérieur du $EmpExists=array();
être EmpNotExists
parce que le dernier BusinessID
de BusinessList
n'en a aucun enregistrement dans EmployeeList
. Comment puis-je faire cela correctement, s'il vous plaît guide moi si possible?
@RiggsFolly Pouvez-vous voir ce que je fais mal dans mon code ci-dessus alors? –
Je ne peux même pas lire ce code. Qu'en est-il de l'indentation ici? –
** AVERTISSEMENT **: Lorsque vous utilisez 'mysqli' vous devriez utiliser [requêtes paramétrées] (http://php.net/manual/fr/mysqli.quickstart.prepared-statements.php) et [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php) pour ajouter des données utilisateur à votre requête. ** N'utilisez PAS ** l'interpolation ou la concaténation de chaîne pour y parvenir car vous avez créé un [bogue d'injection SQL] grave (http://bobby-tables.com/). ** NE JAMAIS ** mettre les données '$ _POST' ou' $ _GET' directement dans une requête, cela peut être très dangereux si quelqu'un cherche à exploiter votre erreur. – tadman