Naja...
$mysqli = new mysqli($dbserver,$dbuser,$dbpass,$dbname);
$mysqli->query($q);
while ($row = $mysqli->fetch_assoc()) {
}
muss falsch sein:
Fatal error: Call to undefined method mysqli::fetch_assoc() in
denn Du musst zwischen dem Verbingungsobjekt und dem mit dem Resultat der Abfrage unterscheiden. Das hast Du nicht getan. Genauer gesagt hast Du es nicht mal gespeichert, sondern in den Müll gekippt. Dein Verbindungsobjekt hat also schon per Definition nicht die für das Resultat-Objekt gültige Methode "fetch_assoc".
$mysqli = new mysqli($dbserver,$dbuser,$dbpass,$dbname);
$result = $mysqli->query($q);
while ( $row = $result->fetch_assoc() ) {
#...
}