Hej
Jeg er igang med finde ud af hvordan MySQLi virker, altså hvordan jeg kan udbygge alle mine nuværende funktioner baseret på det gamle MySQL API, til det nye MySQLi API i stedet. Jeg har fået systemet til at vise indhold fra databasen, og lavet min menu, men nu er jeg stødt på et lille problem med CSS-styling.
Jeg har min menu og her har var den i den tidligere version blevet bedt om at sætte <li class="current"> hvis min nuværende placering var der hvor linket pegede hen.
Jeg har bygget min menu på ny med MySQLi og har så forsøgt at indsætte den kode jeg brugte før. Det skal lige siges at i den gamle version havde jeg en tabel til hver af de øvre menupunkter og det har jeg nu lavet om, således at jeg har mine øvre menupunkter(parents) og de nedre(children) i hver sin tabel så jeg har content og subcontent tabeller i min database og jeg henter menuerne med et while-loop.
Her er lige koden til den øvre menu, mangler lige at lave den nedre endnu, men det kommer når jeg har styr på denne:
- include 'inc/connect.php';
- /* Opret et prepared statement */
- if ($stmt = $mysqli->prepare('SELECT `titel`, `id` FROM `indhold`')) {
- /* Bind parametre */
-
-
- /* Sæt værdier på parametrene */
-
-
- /* Eksekver forespørgslen */
- $stmt->execute();
-
- /* Bind resultatet */
- $stmt->bind_result($titel, $id);
-
- /* Hent rækker og udskriv data */
- while ($stmt->fetch()) {
- //Sørger for at nuværende placering for class="current"
- if (strpos($_SERVER['PHP_SELF'], 'content.php?id='.$id.'')) {
- echo '<li class="current"><a href="content.php?id='.$id.'">'.$titel.'</a></li>';
- }
- }
- /* Luk statement */
- $stmt->close();
-
- } else {
- /* Der er opstået en fejl */
- echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
- }
Det er denne del som er problemet:
- /* Hent rækker og udskriv data */
- while ($stmt->fetch()) {
- //Sørger for at nuværende placering for class="current"
- if (strpos($_SERVER['PHP_SELF'], 'content.php?id='.$id.'')) {
- echo '<li class="current"><a href="content.php?id='.$id.'">'.$titel.'</a></li>';
- }
- }
Den får jo at vide at den skal sætte
clas="current" for det menupunkt jeg befinder mig på. I den gamle udgave virkede det skam også, men det gør det ikke nu. For at vær helt præcis, så efter indsættelse af mit if-statement vil den slet ikke vise menupunkter overhovedet.
Er der nogen der kan give mig et par fif til hvordan jeg fikser problemet.
Skal jeg måske tilføje noget
for each til mit while-loop?
Eller skal jeg få den til at sætte class ud fra mit titel felt i tabellen?
EDIT: Tilføjes:
- else {
- echo '<li class=""><a href="content.php?id='.$id.'">'.$titel.'</a></li>';
- }
til mit if statement i while-loopet, så kommer menupunkterne frem, men den aktuelle for ikke class="current"
Indlæg senest redigeret d. 23.06.2012 14:07 af Bruger #17072