Der Martin: Meine erste Funktion

Beitrag lesen

Hallo,

<?php

function kundenmeinungen($sort = "DESC") {
        if($sort != "ASC" && $sort != "DESC") {
            return false;
        }

  
vergiss die Anmerkung von M., dass $sort hier nicht definiert sei: Du hast im Kopf der Funktion einen Defaultwert, nämlich "DESC" angegeben. Wenn die Funktion also ohne Parameter aufgerufen wird, hat $sort diesen Defaultwert. Das ist völlig okay.  
  

> ~~~php

        $stmt = $mysqli->prepare("KdM_id, KdM_name, KdM_nachricht, KdM_status FROM web_kundenmeinungen ORDER BY KdM_id " . $sort);  

>         $stmt->execute();  
>   
>         return $stmt->fetchAll(PDO::FETCH_ASSOC);  
>     }  
> ?>

Notice: Undefined variable: mysqli in in Zeile 7 & Fatal error: Call to a member function prepare() on a non-object
in Zeile 7. In der Zeile 7 steht $stmt = $mysqli->prepare ....

Ja, aber du missachtest hier eine Design-Grundregel von Funktionen: Funktionen bilden einen in sich abgeschlossenen Gültigkeitsbereich. Im Idealfall kennen Funktionen nur die Daten, die man ihnen ausdrücklich als Parameter übergibt und sind von ihrer Umgebung unabhängig.
In manchen Programmiersprachen können und dürfen Funktionen auch auf globale Daten zugreifen (auch wenn das nicht wirklich sauber ist); in PHP gilt das nicht. Hier ist $mysqli außerhalb der Funktion deklariert, demzufolge innerhalb nicht bekannt.

Entweder machst du nun $mysqli auch innerhalb der Funktion mit dem Schlüsselwort global bekannt (quick'n'dirty, vor allem dirty), oder du übergibst das mysqli-Objekt als ersten Pflicht-Parameter.

So long,
 Martin

--
Dem Philosoph ist nichts zu doof.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
0 51

Daten aus Datenbank auslesen mysql & mysqli

Martin_Online
  • php
  1. 2
    dedlfix
    1. 0
      Martin_Online
    2. 0
      Martin_Online
      1. 0
        M.
        1. 0

          Meine erste Funktion

          Martin_Online
          1. 0
            M.
            1. 0
              Martin_Online
              1. 0
                M.
          2. 0
            Der Martin
            1. 0
              Martin_Online
              1. 0
                Martin_Online
                1. 0
                  M.
            2. 0
              M.
              1. 0
                Der Martin
                1. 0
                  Martin_Online
                  1. 0

                    Fertige Funktion

                    Martin_Online
                    1. 0

                      Eine weitere Frage

                      Martin_Online
                      1. 0
                        dedlfix
                        1. 0
                          Der Martin
          3. 1
            dedlfix
  2. 0

    Zusatzfrage

    Martin_Online
    1. 0
      M.
    2. 0
      dedlfix
      1. 0
        ChrisB
      2. 0
        Martin_Online
        1. 0
          dedlfix
  3. 0

    Danke, aber ich lass es bleiben!

    Martin_Online
    1. 0
      M.
      1. 0
        Martin_Online
        1. 0
          tami
        2. 2
          M.
  4. 0

    Kann mir das bitte jemand erklären

    Martin_Online
    1. 0
      dedlfix
    2. 0
      M.
    3. 0

      Keine Hilfe ist auch eine Hilfe!

      Martin_Online
      1. 0
        M.
        1. 0
          Martin_Online
          1. 0
            M.
            1. 0
              Martin_Online
              1. 0
                M.
                1. 0
                  Martin_Online
                  1. 0
                    Auge
                    1. 0
                      Martin_Online
                      1. 0
                        Auge
                        1. 0
                          Martin_Online
                          1. 0
                            Auge
                            1. 0
                              Martin_Online
        2. 0
          dedlfix
          • zu diesem forum
          1. 0
            M.
            1. 0
              Matthias Apsel