Onkel Hans: Folgefrage: Zählung nach Benutzereingabe

Beitrag lesen

Hi, zunächst mal Danke für die Hilfe zur Lösung meines Basis-Problems.

Das hast Du richtig verstanden. Außerdem kannst Du das ja auch nachlesen im PHP-Handbuch

Tja, wenn das so einfach wäre. Ich kann solche Seiten lesen, solange ich will ... ich kann einfach mit der Didaktik nichts anfangen und bin danach genau so schlau wie vorher. Darum habe ich direkt nachgefragt, ob ich es richtig verstanden habe.

So, nun möchte ich etwas Komplexeres versuchen - und natürlich scheritere ich seit Stunden daran. =(

Folgendes möchte ich realisieren: In einem Formular kann ein Suchbegriff eingegeben werden. Außerdem kann ausgesucht werden, ob bei den Vornamen, bei den Familiennamen oder beim Geburtsjahr gesucht werden soll. Im Anschluß soll ausgegeben werden, auf wie viele Datensätze die Suchanfrage zutrifft. (Ich bin noch immer nicht bei der Ausgabe der Datensätze selbst, ich möchte nur das Zählergebnis wissen!)

Da ich bösartige Angriffe abweisen möchte, soll der Code mit prepared Statements arbeiten. (Ich arbeite mit MySQLi.) Nachdem ich jetzt seit 4 1/2 Stunden alle mir einfallenden Variationen durch habe und mir auch kein var_dump oder Manuel mehr weiterhilft, wende ich mich wieder an Euch. =(

Also das ist mein momentaner Versuch, funktioniert natürlich nicht.

<?php  
  switch($_POST['suchort'])  
    {  
      case"Familienname":  
        $spalte="familienname";  
        break;  
      case"Vorname":  
        $spalte="vorname";  
        break;  
      case"Geburtsjahr":  
        $spalte="geburtsjahr";  
    }  
  include('db_connect.php');  
  $sql="SELECT COUNT(*) `zaehlergebnis` FROM `11_dbtest` WHERE `$spalte` = ? ";  
  $zaehlung=$db->prepare($sql);  
  $zaehlung->bind_param('s',$_POST['terminus']);  
  $zaehlung->execute();  
  $row=$zaehlung->fetch_assoc();  
  include('db_disconnect.php');  
  echo"<p>Insgesamt befinden sich".$row[zaehlergebnis]."Datensätze in der Datenbank.</p>\n";  
?>

Das liefert ein "Fatal error: Call to undefined method mysqli_stmt::fetch_assoc() in /kunden/151444_1040/webseiten/web02/testlabor/016/countinputresult2.php on line 35" - die Zeile 35 ist das "$row=$zaehlung->fetch_assoc();"

Heißt das, wenn ich mit prepared Statements arbeite, muß ich die Zählung bestimmter Datensätze wieder _ganz_ anders angehen? =( Es gibt doch dieses bind result - muß das bei der Verwendung von prepared statements zur Anwendung kommen?

Ich bitte um weitere Hilfe!

MfG

Onkel Hans