Jump to content

[PHP/MySQL] Probleme mit MySQL-Abfrage


MWojt

Empfohlene Beiträge

Hi Leute,

ich habe mal wieder ein Problem mit einem PHP-Skript. Dieses Mal soll dieses eigentlich eine MySQL-Abfrage tätigen, tut dies allerdings nicht. Durch dieses Skript wird zwar etwas ausgegeben, allerdings nicht das, was ich haben will; wie es scheint sind alle Werte Null. Hier mein Skript:


<?php

 $stmt = mysqli_prepare($db,"SELECT max(id) AS `id` FROM `commies` WHERE `postid` = ? AND `hidden` = 0");

 if($stmt == false) {

  $result = mysqli_query($db,"SHOW TABLES LIKE 'commies'");

  if(mysqli_num_rows($result) !== 1) {

   mysqli_query($db,"CREATE TABLE `commies` (

   `id` INT(255) PRIMARY KEY,

   `userid` INT(255) NOT NULL,

   `postid` INT(255) NOT NULL,

   `content` VARCHAR(60000) NOT NULL,

   `answer` INT(255) NULL,

   `hidden` BOOLEAN NOT NULL DEFAULT 0,

   `time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

   `edittime` TIMESTAMP NULL,

   `editor` INT(255),

   `editreason` VARCHAR(300)

   ) CHARSET UTF8;");

  }

 } else {

  mysqli_stmt_bind_param($stmt,"i",$_GET['id']);

  mysqli_stmt_execute($stmt);

  mysqli_stmt_bind_result($stmt,$max);

  mysqli_stmt_fetch($stmt);

  mysqli_stmt_close($stmt);

  if($max !== 0 && isset($max)) {

   $less = $max + 1;

   $stmt = mysqli_prepare($db,"SELECT `id`,`userid`,`content`,`time` FROM `commies` WHERE `hidden` = 0 AND `postid` = ? AND `id` < ? ORDER BY `id` DESC LIMIT 1");

   while($less > 0) {

    mysqli_stmt_bind_param($stmt,"ii",$_GET['id'],$less);

    mysqli_stmt_execute($stmt);

    mysqli_stmt_bind_result($stmt,$less,$userid,$content,$mtime);

    $error = mysqli_stmt_fetch($stmt);

    if(!$error) {

     $userpic = userValue($db,$userid,"userpic");

     $time = inttotime(strtotime($mtime));

     if(!isset($userpic)) {

      $userpic = config($db,1,"defaultpic");

     }

     $username = getUserName($db,$userid);

     echo('<article class="commie"><span class="abovecommie"><table><tr><th class="pic" rowspan="3"><img class="commiepic" src="'.$userpic.'"></img><th>'.$username.'</th></tr><tr><th>'.$time.'</th></tr><tr><th></th></tr></table></span>Nom</article>');

    }

   }

  }

 }

?>

Ich würde mich freuen, wenn jemand den Fehler fände und ihn mir sagen würde.

In der MySQL-Datenbank steht:

id userid postid content answer hidden time edittime editor editreason

1 1 3 Hallo NULL 0 2014-08-27 20:12:26 NULL NULL NULL

PS: Entschuldigung für etwaige Fehler oder dumme Formulierungen etc, bin schon etwas müde.

//EDIT:

Es lag wohl daran, dass ich "if(!$error)" statt "if($error)" geschrieben habe. Problem behoben.

Danke im Voraus,

MWojt

bearbeitet von MWojt
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B