• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Abfrage als Array ausgeben

Bourbon

Mitglied
Hallo Leute,

da die von der Ausgabe von SQL-Abfragen in Tabellen wegkommen möchte, will ich die Daten in einem Array speichern lassen.
Ohne prepared statements bekomm ich das hin, aber mit nicht.
Weder klappt es mit fetch_array, noch fetch_assoc oder einfach nur mit fetch().

Hier der Code:
PHP:
$suche = $user_ID;
if($stmt = $mysqli->prepare(
          "SELECT
            grp.group_ID,
            grp.titel
           FROM
            account AS ac
           LEFT JOIN groupmembers AS gm ON (ac.user_ID = gm.user_ID)
           LEFT JOIN groups AS grp ON (gm.group_ID = grp.group_ID)
                 WHERE
            ac.user_ID LIKE ? AND gm_status LIKE 1
            ")) {
  $stmt->bind_param("s",  $suche);
  $stmt->execute();
  $stmt->bind_result($group_ID, $titel);

while($zeile = $stmt->fetch()) {
  echo "<div>{$zeile['titel']}</div>\n";
}

  $stmt->close();
}

Wo liegt denn der Fehler?
 
Hallo Leute,

da die von der Ausgabe von SQL-Abfragen in Tabellen wegkommen möchte, will ich die Daten in einem Array speichern lassen.
Ohne prepared statements bekomm ich das hin, aber mit nicht.
Weder klappt es mit fetch_array, noch fetch_assoc oder einfach nur mit fetch().

Hier der Code:
PHP:
$suche = $user_ID;
if($stmt = $mysqli->prepare(
          "SELECT
            grp.group_ID,
            grp.titel
           FROM
            account AS ac
           LEFT JOIN groupmembers AS gm ON (ac.user_ID = gm.user_ID)
           LEFT JOIN groups AS grp ON (gm.group_ID = grp.group_ID)
                 WHERE
            ac.user_ID LIKE ? AND gm_status LIKE 1
            ")) {
  $stmt->bind_param("s",  $suche);
  $stmt->execute();
  $stmt->bind_result($group_ID, $titel);

while($zeile = $stmt->fetch()) {
  echo "<div>{$zeile['titel']}</div>\n";
}

  $stmt->close();
}

Wo liegt denn der Fehler?

Ich bin mir nicht ganz sicher, aber wenn ich mir die Doku ansehe sollte das so gelöst werden:
http://php.net/manual/en/mysqli-stmt.bind-result.php

PHP:
while($stmt->fetch()) {
  echo "<div>$titel</div>";
}
 
Damit meinst du sicherlich das hier, oder:
PHP:
/* fetch values */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

Jep, allerdings habe ich gleich es mehr oder weniger an dein Erzeugnis angepasst.

Übrigens, LIKE solltest du nur verwenden, wenn es auch einen Grund dazu gibt.
In deinem Fall tut es aber ein "=".
 
Zurück
Oben