Sponsor-Board.de
Antwort schreiben  Thema schreiben 

Teamspeak 3 - PHP Framework - Problem

Verfasser Nachricht

Beiträge: 46
Bewertung: 6
Registriert seit: Nov 2010
Status: offline


Beitrag: #1
Teamspeak 3 - PHP Framework - Problem

#Neues Problem - 13.01.2017

Hallo, nachdem ich es endlich geschafft habe, was ich wollte, habe ich nun ein neues Problem, bei der Abfrage ob eine bestimmte Servergruppe vorhanden ist, komme ich nicht weiter.

Unzwar, ich mag nämlich, dass Abgefragt wird, ob Servergruppe "6" (zum Beispiel) bereits der User hat, wenn ja, dann soll er keinen Channel mehr erstellen können, wenn nicht, dann soll er einen erstellen können...

Dabei geht es um folgende Codezeile:

Code:
if(!$ts3->clientGetByUid($clientuid)->serverGroupGetById($server_channel_group))


Er zeigt mir die ganze Zeit an, dass ich bereits einen Channel habe, obwohl ich keine habe(Hab bereits eine else function gemacht, was er machen soll, wenn er keinen Channel erstellen kann)

(Ich nutze das Teamspeak 3 PHP Framework)

Dieser Beitrag wurde zuletzt bearbeitet: 13.01.2017 14:13 von MysteryGaming.

09.01.2017 22:48
 
0     0
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 1.512
Bewertung: 7
Registriert seit: Oct 2010
Status: offline


Beitrag: #2
RE: PHP / MySQLi - Problem

Wenn das die Zeile ist:

Code:
while($daten = mysqli_fetch_array($res, MYSQL_ASSOC))


dann versuche folgendes

Code:
while($daten = $res->fetch_array(MYSQLI_ASSOC))


siehe: [Link: Registrierung erforderlich]

liebe Grüße

Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2017 22:53 von skillz.

09.01.2017 22:53
 
0     0
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 967
Bewertung: 51
Registriert seit: Oct 2011
Status: offline


Beitrag: #3
RE: PHP / MySQLi - Problem

auch funktioniert:

Code:
while($daten = mysqli_fetch_array($res, MYSQLI_ASSOC))

MYSQLI_ASSOC


[Link: Registrierung erforderlich]

[Link: Registrierung erforderlich]

Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2017 23:00 von ccoding.

09.01.2017 22:58
 
0     0
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 46
Bewertung: 6
Registriert seit: Nov 2010
Status: offline


Beitrag: #4
RE: PHP / MySQLi - Problem

skillz schrieb:
Wenn das die Zeile ist:

Code:
while($daten = mysqli_fetch_array($res, MYSQL_ASSOC))


dann versuche folgendes

Code:
while($daten = $res->fetch_array(MYSQLI_ASSOC))


siehe: [Link: Registrierung erforderlich]

liebe Grüße


Hallo,
danke für Deine schnelle Antwort.
Leider wirft er mir nun folgende Fehlermeldung:
Fatal error: Uncaught Error: Call to a member function fetch_array() on boolean in *ZENSIERT* 42 Stack trace: #0 {main} thrown in *ZENSIERT* on line 42

Und nun bin ich irgendwie komplett mit meinem Alphabet am Ende.. Das ist bestimmt irgendein einfacher simpler Fehler... Mad

@ccoding: Das wirft dann folgenden Warning wieder:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in *ZENSIERT* on line 42

Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2017 23:01 von MysteryGaming.

09.01.2017 22:59
 
0     0
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 1.512
Bewertung: 7
Registriert seit: Oct 2010
Status: offline


Beitrag: #5
RE: PHP / MySQLi - Problem

MysteryGaming schrieb:

skillz schrieb:
Wenn das die Zeile ist:

Code:
while($daten = mysqli_fetch_array($res, MYSQL_ASSOC))


dann versuche folgendes

Code:
while($daten = $res->fetch_array(MYSQLI_ASSOC))


siehe: [Link: Registrierung erforderlich]

liebe Grüße


Hallo,
danke für Deine schnelle Antwort.
Leider wirft er mir nun folgende Fehlermeldung:
Fatal error: Uncaught Error: Call to a member function fetch_array() on boolean in *ZENSIERT* 42 Stack trace: #0 {main} thrown in *ZENSIERT* on line 42

Und nun bin ich irgendwie komplett mit meinem Alphabet am Ende.. Das ist bestimmt irgendein einfacher simpler Fehler... Mad


Okay, sorry. Schon lange her als ich blankes php mit MYSQL(i) genutzt habe Biggrin

Code:
while($daten = mysqli_fetch_array($res, MYSQL_ASSOC))

vielleicht reicht es wenn man MYSQL_ASSOC in MYSQLI_ASSOC abändert.
Würde zumindest von der Syntax Sinn machen.

Edit: soeben gesehen, doppelt Mad

Der Error kommt wenn du das i dran hängst? O.O

Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2017 23:03 von skillz.

09.01.2017 23:02
 
0     0
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 46
Bewertung: 6
Registriert seit: Nov 2010
Status: offline


Beitrag: #6
RE: PHP / MySQLi - Problem

skillz schrieb:
Edit: soeben gesehen, doppelt Mad

Der Error kommt wenn du das i dran hängst? O.O


Ich habe nun das I hinten dran gehängt und er zeigt mir nun:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in *ZENSIERT* on line 42

an.

09.01.2017 23:04
 
0     0
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 1.212
Bewertung: 5
Registriert seit: May 2009
Status: online


Beitrag: #7
RE: PHP / MySQLi - Problem

Dann hänge dort, wo du dein Query executest mal ein or die($stmt->error) hintendran, dann kriegst du eine andere Meldung.

Ein Boolean als Result kriegst du bei einem Query nämlich nur, wenn etwas schiefläuft. Entweder sind deine Logincredentials für Mysql falsch oder deine Syntax vom SQL-Query ist falsch. Letzteres könntest du mal posten, solltest du dahin nicht weiterkommen


[Link: Registrierung erforderlich]

09.01.2017 23:27
 
2     0
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 46
Bewertung: 6
Registriert seit: Nov 2010
Status: offline


Beitrag: #8
RE: PHP / MySQLi - Problem

Dennis schrieb:
Dann hänge dort, wo du dein Query executest mal ein or die($stmt->error) hintendran, dann kriegst du eine andere Meldung.

Ein Boolean als Result kriegst du bei einem Query nämlich nur, wenn etwas schiefläuft. Entweder sind deine Logincredentials für Mysql falsch oder deine Syntax vom SQL-Query ist falsch. Letzteres könntest du mal posten, solltest du dahin nicht weiterkommen


Ich habe mal bisschen weiter versucht und konnte weitere Fehler beheben, nun zeigt er mir an, dass die Variable "daten" nicht definiert ist, dabei ist sie doch unter "while" definiert, oder wie genau ist das mit dem Definiert gemeint? (Bin ein absoluter Anfänger), bzw. ich wüsste nicht wie ich sie definieren sollte..

Hier das aktuelle Script:

Code:
<a href="createTsChannel.php">Neuen Channel anlegen</a>
<?php
require("ts3admin.class.php");
function checkChannel($cid,$channelList)
{
    if(isset($channelList[$daten['cid']]['user']) && $channelList[$daten['cid']]['user']!=0) return true;
    foreach($channelList as $key => $channel)
    {
        if(checkChannel($key,$channelList)) return true;
    }
}

    $link = mysqli_connect($server, $username, $passwort);
    if (!$link)            die(mysqli_error());
    $db = mysqli_select_db($link, $datenbank);
    if(!$db) die("keine Verbindung zur Datenbank");

    $tsAdmin = new ts3admin($ts3_ip, $ts3_queryport);
    $tsAdmin->connect();
    $tsAdmin->login($ts3_user, $ts3_pass);
    $tsAdmin->selectServer($ts3_port);
    $result = $tsAdmin->channelList();
    if(!$result['success'])
    {
        echo "Ein Fehler ist aufgetreten: ".$result['errors'][0];
    }
    else
    {
        foreach($result['data'] as $channel)
        {
            $channelList[$channel['cid']]['cname']=$channel['channel_name'];
            $channelList[$channel['cid']]['user']=$channel['total_clients'];
            $channelList[$channel['cid']]['cid']=$channel['cid'];
        }
    }
    $sql_befehl = 'SELECT * FROM Teamspeak ORDER BY cid;';
    $res= mysqli_query($link, $sql_befehl);
    echo '<table border=1>';
    echo '<tr><td>Name</td><td>Letzter User</td><td>wird gelöscht</td></tr>';
    while($daten = mysqli_fetch_array($res, MYSQLI_ASSOC))
    {
        if(isset($channelList[$daten['cid']]['user']) && checkChannel($daten['cid'],$channelList))
        {
            $sql='UPDATE Teamspeak SET zeit=NOW() WHERE cid='.$daten['cid'].';';
            mysqli_query($link, $sql);
            $daten['zeit']=date('Y-m-d H:i:s');
        }
        else if(!isset($channelList[$daten['cid']]['user']))
        {
            $sql='DELETE FROM Teamspeak WHERE cid='.$daten['cid'].';';
            mysqli_query($link, $sql);
        }
        if(strtotime($ttl,strtotime($daten['zeit']))>strtotime('-1second'))
        {
            if(strtotime($ttl,strtotime($daten['zeit']))<strtotime('+5days')) $loeschen=date('d.m.Y H:i',strtotime($ttl,strtotime($daten['zeit'])));
            else $loeschen='-';
            echo '<tr><td>'.$daten['cname'].'</td><td>'.date('d.m.Y H:i',strtotime($daten['zeit'])).'</td><td>'.$loeschen.'</td></tr>';
        }
        else
        {
            $tsAdmin->channelDelete($daten['cid']);
            $sql='DELETE FROM Teamspeak WHERE cid='.$daten['cid'].';';
            mysqli_query($link, $sql);
        }
    }
    echo '</table>';
    mysqli_close($link);
?>




#EDIT
Ich habe in einer Richtung denke den Fehler gefunden, das Problem liegt darin:
Wenn der Channel auf dem TS wirklich existiert, den man zuvor erstellt hat, dann wird er diesen Fehler, wenn dieser Channel aber nicht existiert, aber in der Datenbank als existierend eingetragen ist, dann zeigt er die Seite ohne Fehler oder Warnings an. Woran könnte dies liegen ?

#EDIT2
Meine MySQL-Tabelle:

Code:
-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Erstellungszeit: 09. Jan 2017 um 23:12
-- Server-Version: 10.1.19-MariaDB
-- PHP-Version: 5.6.28

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Datenbank: `teamspeak`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `teamspeak`
--

CREATE TABLE `teamspeak` (
  `cid` int(10) UNSIGNED NOT NULL,
  `cname` char(128) NOT NULL,
  `zeit` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2017 00:13 von MysteryGaming.

09.01.2017 23:51
 
0     0
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
- # PUSH # - 10.01.2017 - 22:03 Uhr -
- # PUSH # - 13.01.2017 - 13:10 Uhr -
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  TeamSpeak 3 Interface (TS3WCP) Testen phpcode 12 2.576 01.08.2015 20:23
Letzter Beitrag: push
  Probleme beim Teamspeak 2 Webinterface Lepirato 6 675 20.07.2015 17:33
Letzter Beitrag: Lepirato
  TeamSpeak Vergabe CMS phpcode 32 5.867 30.05.2015 12:59
Letzter Beitrag: push
  VerleihScript TeamSpeak 2 Lepirato 28 3.340 12.03.2015 10:02
Letzter Beitrag: push
  *gelöst* jQuery Variable Problem VarmintLP 6 733 23.11.2014 21:43
Letzter Beitrag: Aaron

 Druckversion anzeigen
 Thema einem Freund senden
 Thema abonnieren
 Thema zu den Favoriten hinzufügen

Sponsor-Board.de

Community
Über uns
Partner
Powered by Mybb: Copyright 2002-2017 by MyBB Group - Deutsche-Übersetzung von Mybboard.de
 
© 2007-2017 Sponsor-Board.de - Hosted by FSIT AG
Willkommen auf SB!   Sie benötigen ein Sponsoring?   1. Anmelden   2. Sponsoring-Anfrage erstellen   3. Nachrichten von Sponsoren erhalten   Kostenlos   Jetzt registrieren!