Div Element ausblenden wenn...

so... so geht es... Zufrieden ? smile
PHP:
$sql = "SELECT userid FROM users_lebenslauf_praktikum WHERE userid=7";
$user = $pdo->query($sql)->fetch();
if($pdo->query($sql)==1) echo "ja";
else echo "nein";
 
Hi,

PDO::query() returns a PDOStatement object, or FALSE on failure.

Die Anzahl der Zeilen kannst Du mit
PHP:
$pdo->rowCount();
ermitteln.

Nun zum Thema.

  1. $sql = "SELECT YEAR(CURRENT_DATE()) - YEAR(praktikum_von),praktikum_von, date_format( praktikum_bis, '%d.%m.%Y' )praktikum_bis, userid, praktikum_als, praktikum_firma, praktikum_ort,praktikum_bemerkung, lebenslauf_praktikum_id
  2. FROM users_lebenslauf_praktikum
  3. WHERE userid = $userid ORDER BY praktikum_von DESC";
  4. ?>
  5. <div style="display:<?php (($userid = NULL) ? 'none' : 'block') ?> ">
In Zeile 5 weist du der Variable $userid den Wert "NULL" zu; Ich glaube Du meintest eher == o. === ; aber auch das funktioniert nicht.
Da, wie Du schon sagtest, jeder Nutzer eine ID hat, wird dieser Fall niemals eintreten.

Hier mal ein Beispiel wie Du das umsetzen kannst:

PHP:
$sql = "SELECT YEAR(CURRENT_DATE()) - YEAR(praktikum_von),praktikum_von, date_format( praktikum_bis, '%d.%m.%Y' )praktikum_bis, userid, praktikum_als, praktikum_firma, praktikum_ort,praktikum_bemerkung, lebenslauf_praktikum_id
               FROM users_lebenslauf_praktikum
               WHERE userid = $userid ORDER BY praktikum_von DESC";
$stmt = $pdo->query($sql);
$rows = $stmt->fetchAll(); // erzeuge ein array aus allen Daten

PHP:
 <div style="display:<?php (($stmt->rowCount() = 0) ? 'none' : 'block') ?> ">
Wenn die Anzahl der Ergebnisse gleich 0

Und anschließend kannst Du über das oben erzeugte Array iterieren.
PHP:
foreach ($rows as $row) {


Viele Grüße
 
Entweder wie goto geschrieben hat: $pdo->rowCount();
Oder du machst von Anfang an ein SELECT COUNT(*).. und wertest diesen aus.
Je nachdem ob die die Daten nachher wirklich brauchst. In deinen ersten Beiträgen war $row vorhanden. Deshalb gehe ich davon aus, dass die Version von goto die passende ist.
 
Ich habe es jetzt folgend umgesetzt..
PHP:
<?php
$sql = "SELECT YEAR(CURRENT_DATE()) - YEAR(praktikum_von),praktikum_von, date_format( praktikum_bis, '%d.%m.%Y' )praktikum_bis, praktikum_als, praktikum_firma, praktikum_ort, praktikum_bemerkung, lebenslauf_praktikum_id
              FROM users_lebenslauf_praktikum
              WHERE userid = $userid ORDER BY praktikum_von DESC";
$stmt = $pdo->query($sql);
$rows = $stmt->fetchAll(); // erzeuge ein array aus allen Daten
?>
       <div style="display:<?php (($stmt->rowCount() = 0) ? 'none' : 'block') ?> ">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title">Praktikum:</h3>
                </div>
                <div class="panel-body">
                    <table class="table table-hover" >
                        <tr>
                            <thead>
                                <td width="7%">von:</td>
                                <td width="7%">bis:</td>
                                <td width="20%">Praktikum als:</td>
                                <td width="15%">Firma/Einrichtung:</td>
                                <td width="13%">Ort:</td>
                                <td colspan="4">Bemerkung:</td>
                            </thead>
                            <?php
                            $sql = "SELECT YEAR(CURRENT_DATE()) - YEAR(praktikum_von),praktikum_von, date_format( praktikum_bis, '%d.%m.%Y' )praktikum_bis, userid, praktikum_als, praktikum_firma,
                                praktikum_ort,praktikum_bemerkung, lebenslauf_praktikum_id
                                 FROM users_lebenslauf_praktikum
                                 WHERE userid = $userid ORDER BY praktikum_von DESC";
                                 foreach ($rows as $row) {
                            ?>
                            <tbody>
                                <td><?php echo date('d.m.Y', strtotime($row['praktikum_von'])) ?></td>
                                <td><?php echo date('d.m.Y', strtotime($row['praktikum_bis'])) ?></td>
                                <td><?php echo $row['praktikum_als'] ?></td>
                                <td><?php echo $row['praktikum_firma'] ?></td>
                                <td><?php echo $row['praktikum_ort'] ?></td>
                                <td width="30%"><?php echo $row['praktikum_bemerkung'] ?></td>
                                <td width="5%">
                                    <form action="lebenslauf_praktikum_aendern.php" method="GET">
                                        <input type="hidden" name="lebenslauf_praktikum_id" class="form-control" style="font-size:9px;" value="<?php echo $row['lebenslauf_praktikum_id'] ?>" />
                                        <input type="hidden" name="titel" class="form-control" style="font-size:9px;" value="im Praktikum " />
                                        <button
                                        type="submit" name"lebenslauf_praktikum_aendern" class="btn btn-success glyphicon glyphicon-pencil row-update btn-xs aendern">
                                        </button>
                                    </form>
                                </td>
                                <td width="5%">
                                <form action="#?save=lebenslauf_praktikum_loeschen" method="post">
                                    <input type="hidden" name="lebenslauf_praktikum_id" class="form-control" style="font-size:9px;" value="<?php echo $row['lebenslauf_praktikum_id'] ?>" />
                                    <button name"lebenslauf_praktikum_loeschen" type="submit" class="btn btn-danger glyphicon glyphicon-remove row-remove btn-xs loeschen"></button>
                                </form> 
                                </td>
                            </tbody>
                            <?php }  ?>
                       </tr>
                    </table>
                </div>       
            </div>
         </div>

So langsam verstehe ich den Aufbau.... So ganz langsam..
Allerdings wird mir durch..
PHP:
<div style="display:<?php (($stmt->rowCount() = 0) ? 'none' : 'block') ?> ">
nur eine weiße Seite angezeigt...
 
Hi,

selbes Problem wie oben, die Seite bleibt weiß, da es nicht auszugeben gibt.

PHP:
<?php (($stmt->rowCount() = 0) ? 'none' : 'block') ?> ">
In diesem Fall weist Du $stmt->rowCount() den Wert 0 zu (geht das überhaupt?!); diese Bedingung ist immer "true" und somit wird der Zweigt "none" verwendet.
Die Bedingung muss..
PHP:
<?php (($stmt->rowCount() === 0) ? 'none' : 'block') ?> ">
... lauten.

Viele Grüße
 
Hi goto,
das hatte ich ja auch versucht...
In diesem Fall werden mir auch keine Daten angezeigt, wenn kein Eintrag mit der $userid in der Datenbank ist.
Dies ist auch nicht mein Problem..
Mein Problem ist, dass auch der gesamte Div-Block noch angezeigt wird, selbst wenn nicht drin steht.. Siehe Bild..
Dieser Block sollte nicht ausgegeben werden, wenn keine Daten ausgegeben werden..

Nochmals Mein Quellcode..
PHP:
<?php
$sql = "SELECT YEAR(CURRENT_DATE()) - YEAR(praktikum_von),praktikum_von, date_format( praktikum_bis, '%d.%m.%Y' )praktikum_bis, praktikum_als, praktikum_firma, praktikum_ort, praktikum_bemerkung, lebenslauf_praktikum_id
        FROM users_lebenslauf_praktikum
        WHERE userid = $userid ORDER BY praktikum_von DESC";
        $stmt = $pdo->query($sql);
        $rows = $stmt->fetchAll();
?>
       <div style="display:<?php (($stmt->rowCount() === 0) ? 'none' : 'block') ?> ">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title">Praktikum:</h3>
                </div>
                <div class="panel-body">
                    <table class="table table-hover" >
                        <tr>
                            <thead>
                                <td width="7%">von:</td>
                                <td width="7%">bis:</td>
                                <td width="20%">Praktikum als:</td>
                                <td width="15%">Firma/Einrichtung:</td>
                                <td width="13%">Ort:</td>
                                <td colspan="4">Bemerkung:</td>
                            </thead>
                            <?php
                                   foreach ($rows as $row) {
                               ?>
                            <tbody>
                                <td><?php echo date('d.m.Y', strtotime($row['praktikum_von'])) ?></td>
                                <td><?php echo date('d.m.Y', strtotime($row['praktikum_bis'])) ?></td>
                                <td><?php echo $row['praktikum_als'] ?></td>
                                <td><?php echo $row['praktikum_firma'] ?></td>
                                <td><?php echo $row['praktikum_ort'] ?></td>
                                <td width="30%"><?php echo $row['praktikum_bemerkung'] ?></td>
                                <td width="5%">
                                    <form action="lebenslauf_praktikum_aendern.php" method="GET">
                                        <input type="hidden" name="lebenslauf_praktikum_id" class="form-control" style="font-size:9px;" value="<?php echo $row['lebenslauf_praktikum_id'] ?>" />
                                        <input type="hidden" name="titel" class="form-control" style="font-size:9px;" value="im Praktikum " />
                                        <button
                                        type="submit" name"lebenslauf_praktikum_aendern" class="btn btn-success glyphicon glyphicon-pencil row-update btn-xs aendern">
                                        </button>
                                    </form>
                                </td>
                                <td width="5%">
                                <form action="#?save=lebenslauf_praktikum_loeschen" method="post">
                                    <input type="hidden" name="lebenslauf_praktikum_id" class="form-control" style="font-size:9px;" value="<?php echo $row['lebenslauf_praktikum_id'] ?>" />
                                    <button name"lebenslauf_praktikum_loeschen" type="submit" class="btn btn-danger glyphicon glyphicon-remove row-remove btn-xs loeschen"></button>
                                </form> 
                                </td>
                            </tbody>
                            <?php }  ?>
                       </tr>
                    </table>
                </div>       
            </div>
         </div>


Bilder unten:
1.Bild mit Daten
2.Bild ohne Daten

Ich möchte, dass der gesamte Block Praktikum ( <div class="panel panel-default">) nicht eingeblendet wird wenn keine Daten vorhanden..
 

Anhänge

  • Bildschirmfoto 2017-09-26 um 09.33.30.png
    Bildschirmfoto 2017-09-26 um 09.33.30.png
    25,5 KB · Aufrufe: 3
  • Bildschirmfoto 2017-09-26 um 09.33.57.png
    Bildschirmfoto 2017-09-26 um 09.33.57.png
    14,1 KB · Aufrufe: 3
Zurück