Попытка вернуть информацию из базы данных (которая пуста). Оно продолжает возвращать значение 1, однако оно должно быть 0. База данных пуста, но возвращает «Я существую».
<?php
set_time_limit(0);
$db = new mysqli("localhost","wwwrhino_Twitch","","wwwrhino_Twitch");
if($db->connect_errno) {
echo $db->connect_error;
die('Sorry, We are having some problems');
}$offset = 0;
$count = 1;
do {
$Brad = json_decode(file_get_contents(
'https://api.twitch.tv/kraken/channels/greatbritishbg/follows?limit=25&offset=' . $offset
));
$Darren = json_decode(file_get_contents(
'https://api.twitch.tv/kraken/channels/Skairpigg/follows?limit=25&offset=' . $offset
));foreach($Brad->follows as $Bradfollow) {
$username = (string)$Bradfollow->user->name;
//$result = $db->query("SELECT count(Username) FROM `Users` WHERE `Username` ='$username' ");
$result = $db->query("SELECT count(Username) AS total_users FROM `Users` WHERE `Username` ='$username' ");
if ($result->total_users > 0) {
echo 'I Exist!: '. (int)$result . ": " . $username . "<br>";
var_dump($result);
}
else {
echo 'Add me';
echo "<p>Inserting Value:". $username ."</p>";
echo "Var Dump:" . var_dump($result);
if($insert = $db->query("INSERT INTO Users (Username, Minecraft_Name)
VALUES ('$username', 'Garrett')
")) {
echo $db->affected_rows . "<br>";
}
}
$offset+=25;
} while (!empty($Brad->follows));
?>
Вот моя база данных:
Может кто-нибудь объяснить, почему результат постоянно возвращается как «1»
Спасибо
вы используете mysqli и правильный путь —
$res = $mysqli->query("SELECT id FROM test ORDER BY id ASC");
echo "Reverse order...\n";
for ($row_no = $res->num_rows - 1; $row_no >= 0; $row_no--) {
$res->data_seek($row_no);
$row = $res->fetch_assoc();
echo " id = " . $row['id'] . "\n";
}
ссылка — phpmanual
попробуйте с —
$result = $db->query("SELECT count(Username) AS total_users FROM `Users` WHERE `Username` ='$username' ");
$row = $result->fetch_assoc();
и чтобы убедиться, что вы можете попытаться dump
$row
и посмотрим, что он возвращается. затем проверьте с надлежащим index
—
if ($row['total_users'] > 0) {
//your code
}
вы только выполняли запрос, который возвращал true
или же 1
всегда. Вы должны получить данные также из ресурса.
Сделай это:
$result = $db->query("SELECT count(Username) as cnt FROM `Users` WHERE `Username` ='$username' ");
$row = $result->result();
if ($row->cnt > 0) {
echo 'I Exist!: '. (int)$result . ": " . $username . "<br>";
}