Jakiś pomysł jak to rozwiązać?
Cytat(viking @ 3.05.2019, 17:28:10 )

Ucinanie może być spowodowane zbyt długim ciągiem insertowanym do mniejszego pola. Mysql to po cichu utnie. Czytałem cały wątek ale ciężko się pisze jak ty wrzucasz jakiś kod, kolega wcześniej swój i nie wiadomo co z tym zrobiłeś.
A gdyby rozbić to na dwie osobne funkcje? np. 2 razy insert i 2 razy update?
Chociaż generalnie wprowadza wszystkie dane, ale tylko do tych 22 rekordów
Przy takim kodzie:
<?php
foreach ($members as $member) {
$id = $member["clanRank"];
$liga = $member["league"]["name"];
$lvl = $member["expLevel"];
$tag = $member["tag"];
$nick = $member["name"];
$ranga = $member["role"];
$donated = $member["donations"];
$received = $member["donationsReceived"];
$puchary = $member["trophies"];
$ratio = $donated - $received;
}
ini_set('display_startup_errors', 1
);
'dbhost' => "localhost",
'username' => "root",
'password' => "-----",
'dbname' => "----",
);
class DB
{
private $dbhost;
private $username;
private $password;
private $dbname;
private $conn;
public function __construct($conf)
{
$this->dbhost = $conf['dbhost'];
$this->username = $conf['username'];
$this->password = $conf['password'];
$this->dbname = $conf['dbname'];
}
private function init()
{
$this->conn = new mysqli($this->dbhost, $this->username, $this->password, $this->dbname);
if ($this->conn->connect_error) {
die("Connection failed: " . $this->conn->connect_error); }
$this->conn->query("SET NAMES 'utf8'");
}
private function close()
{
$this->conn->close();
}
function getClanByTag($tag)
{
$this->init();
$result = $this->conn->query("SELECT * FROM mems WHERE tag = '$tag'");
if (false === $result) {
printf("error: %s\n", mysqli_error
($this->conn)); }
if ($result->num_rows != 0) {
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$rows[] = $row;
}
}
$this->close();
return $rows;
}
public function insertKlan($miejsce, $liga, $poziom, $tag, $nick, $ranga, $donated, $received, $roznica, $puchary, $aktualizacja, $data)
{
$this->init();
$query = "INSERT INTO mems (miejsce, liga, poziom, tag, nick , ranga, donated, received, roznica, puchary, aktualizacja, data) values ('$miejsce' ,'$liga' ,'$poziom' ,'$tag' ,'$nick ' ,'$ranga' ,'$donated' ,'$received' ,'$roznica' ,'$puchary' ,'$aktualizacja' ,'$data')";
$result = $this->conn->query($query);
if (false === $result) {
printf("error: %s\n", mysqli_error
($this->conn)); }
$last_insert_id = mysqli_insert_id($this->conn);
$this->close();
return $last_insert_id;
}
public function updateKlan($miejsce, $liga, $poziom, $tag, $nick, $ranga, $donated, $received, $roznica, $puchary, $aktualizacja, $data)
{
$this->init();
$query = "UPDATE mems set miejsce='$id', liga='$liga', poziom='$lvl', nick='$nick', ranga='$ranga', donated='$donated', received='$received', roznica='$ratio', puchary='$puchary', data='$datan', aktualizacja='$czas' where tag = '$tag'";
$result = $this->conn->query($query);
if (false === $result) {
printf("error: %s\n", mysqli_error
($this->conn)); }
$this->close();
return true;
}
}
$db = new DB($conf);
foreach ($members as $member) {
$id = $member["clanRank"];
$liga = $member["league"]["name"];
$lvl = $member["expLevel"];
$tag = $member["tag"];
$nick = $member["name"];
$ranga = $member["role"];
$donated = $member["donations"];
$received = $member["donationsReceived"];
$puchary = $member["trophies"];
$ratio = $donated - $received;
if ($id and $liga and $lvl and $tag and $nick and $ranga and $donated and $received and $puchary) {
$clanExist = $db->getClanByTag($tag);
if ($clanExist) {
$ins = $db->updateKlan("34", $id, $liga, $lvl, $tag, $nick, $ranga, $donated, $received, $ratio, $puchary, $czas, $datan);
if ($ins) {
echo "Zaktualizowano bazę danych<br>"; } else {
echo "Błąd nie udało się zaktualizować<br>"; }
} else {
$ins = $db->insertKlan($id, $liga, $lvl, $tag, $nick, $ranga, $donated, $received, $ratio, $puchary, $czas, $datan);
if ($ins) {
echo "Wprowadzono dane<br>"; } else {
echo "Błąd nie udało się zaktualizować<br>"; }
}
}
}
?>
Pokazuje to:
Notice: Undefined variable: id in /var/www/html/klan.php on line 399
Notice: Undefined variable: lvl in /var/www/html/klan.php on line 399
Notice: Undefined variable: ratio in /var/www/html/klan.php on line 399
Notice: Undefined variable: datan in /var/www/html/klan.php on line 399
Notice: Undefined variable: czas in /var/www/html/klan.php on line 399
Jakieś pomysły ponownie?