PHP Ergebnisse einer SQL-Query ausgeben?

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Guten Abend zusammen,

ich verzweifle gerade an einer SQL-Query...

Den folgenden Code habe ich:

PHP:
  $stmt = $mysqli->prepare("SELECT * FROM kampagne WHERE user_id = 1");
  $stmt->execute();
  $stmt->store_result();

(Ja, ich weiß, ist nicht sicher, aber dienst nur als Beispiel, die Abfrage).

Wie kann ich jetzt die Ergebnisse (ca. 10 Stück sind das) mittels einer foreach-Schleife
ausgeben? Im store_result() sind die Ergebnisse ja gespeichert - leider kann ich aber
dazu auch nichts finden, was mich weiterbringt.

VG, David
 
wieso genau nutzt du store_result?
kannst einfach get_result nutzen..

PHP:
$stmt = $mysqli->prepare("SELECT * FROM kampagne WHERE user_id = 1");
$stmt->execute();
$result = $stmt->get_result();

while ($row = $result->fetch_assoc()) {
    var_dump($row)
}
 
Dann müsste es ja ein wenig abgewandelt für meine Zwecke so funktionieren:

PHP:
                      <?php 
                      $stmt = $mysqli->prepare("SELECT * FROM kampagne");
                      $stmt->execute(); 
                      $result = $stmt->get_result();
                      while($row_view = $result->fetch_assoc()) { ?>
                        <tr>
                          <td><?php echo $row_view['id']; ?></td>
                          <td><?php echo $row_view['bezeichnung']; ?></td>
                          <td><?php echo $row_view['kategorie']; ?></td>
                          <td><?php echo $row_view['name']; ?></td>
                          <td><?php echo $row_view['mail']; ?></td>
                        </tr>
                      <?php } ?>

Funktioniert aber nicht - oder habe ich da noch etwas falsch gemacht?

VG, David
 
Dsimon24 schrieb:
Dann müsste es ja ein wenig abgewandelt für meine Zwecke so funktionieren:

PHP:
                      <?php 
                      $stmt = $mysqli->prepare("SELECT * FROM kampagne");
                      $stmt->execute(); 
                      $result = $stmt->get_result();
                      while($row_view = $result->fetch_assoc()) { ?>
                        <tr>
                          <td><?php echo $row_view['id']; ?></td>
                          <td><?php echo $row_view['bezeichnung']; ?></td>
                          <td><?php echo $row_view['kategorie']; ?></td>
                          <td><?php echo $row_view['name']; ?></td>
                          <td><?php echo $row_view['mail']; ?></td>
                        </tr>
                      <?php } ?>

Funktioniert aber nicht - oder habe ich da noch etwas falsch gemacht?

VG, David

und wieso funktioniert es nicht? fehlermeldung etc. wäre hilfreich
 
<?php
$stmt = $pdo->prepare("SELECT * FROM kampagne");
$stmt->execute();
while($row_view = $stmt->fetch()) {
echo'
<tr>
<td>'.$row_view['id'].'</td>
<td>'.$row_view['bezeichnung'].'</td>
<td>'.$row_view['kategorie'].'</td>
<td>'.$row_view['name'].'</td>
<td>'.$row_view['mail'].'</td>
</tr>
';
}

Sorry bin kein Freund von den vielen phptags :D
 
aber anscheinend ein freund von html in php strings.. was richtig falsch ist
würde aber auch schorttags statt den <?php echo zeug verwenden
PHP:
<?php
$stmt = $mysqli->prepare("SELECT * FROM kampagne");
$stmt->execute();
$result = $stmt->get_result();

while ($rowView = $result->fetch_assoc()) : ?>
<tr>
    <td><?= $rowView['id'] ?></td>
    <td><?= $rowView['bezeichnung'] ?></td>
    <td><?= $rowView['kategorie'] ?></td>
    <td><?= $rowView['name'] ?></td>
    <td><?= $rowView['mail'] ?></td>
</tr>
<?php endwhile;
 
Ich kann leider nicht genau sagen, warum es nicht geht.
Eine Fehlermeldung o.ä. bekomme ich leider nicht.
Ich erhalte einfach keine Ausgabe der Datensätze.
 
Dann bau doch mal ein paar echos und var_dumps ein, dann siehst du, wo/ab wann es hakt.
Ansonsten gibt es ja noch die Apache und PHP error logs.
 
Okay, das werde ich jetzt mal machen - aber ist der Code denn
grundsätzlich korrekt? Oder habe ich da schon einen Fehler
eingebaut?
 
Finde es doch selbst raus, das Suchen und Finden von Fehlern gehört zum Programmieren dazu. Du kannst ja nicht jedesmal Code hier posten und fragen ob es so funktionieren würde.
 
Ich suche den Fehler aber schon seit Stunden und kann
nichts finden, deshalb habe ich mir einen Tipp erhofft.
 
Du hast ja schon 2 Varianten deines Codes bekommen und ich habe dir Hilfe zu Selbsthilfe gegeben. Ohne mehr Informationen wird das sonst nix.
Da der Code, den du gepostet hast, stark eingerückt ist, könnte der Fehler genausogut schon deutlich vorher auftreten.
 
ist $mysqli überhaupt definiert?

pack mal das direkt hinter dem ersten php tag.. damit du die errors sehen kannst

PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
kling1 schrieb:
ist $mysqli überhaupt definiert?

pack mal das direkt hinter dem ersten php tag.. damit du die errors sehen kannst

PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);

Das habe ich bereits versucht, erhalte aber keine Fehlermeldungen.

Ich habe es jetzt so versucht, diesmal mit Erfolg.
Ist der Code so sinnvoll & 'empfehlenswert'?

PHP:
                      <?php 
                      $stmt = $mysqli->query("SELECT * FROM kampagne");
                      while($row_view = $stmt->fetch_object()) { ?>
                        <tr>
                          <td><?php echo $row_view->id; ?></td>
                          <td><?php echo $row_view->bezeichnung; ?></td>
                          <td><?php echo $row_view->kategorie; ?></td>
                          <td><?php echo $row_view->name; ?></td>
                          <td><?php echo $row_view->mail; ?></td>
                        </tr>
                      <?php } ?>
 
Zuletzt bearbeitet:
Definitiv nicht. Steht in einem der Felder HMTL Code, wird der Browser das auch als solches interpretieren anstatt anzuzeigen.
Außerdem ignorierst du den Rückgabewert von execute().

Werden wir auch noch erfahren, was denn der Fehler war?
 
Zurück
Oben