2016-05-12 17 views
5

Ich habe ein Problem, bei dem die Ausgabe der folgenden Anweisung den richtigen Inhalt zeigt, aber wenn ich auf eines der Elemente klicke (ein Hyperlink), enden alle auf derselben Seite mit dem gleichen Namen der unteren Reihe:

<table class="center"> 
    <!-- Creating a table with the class of 'center' --> 
    <!-- SEARCH FORM --> 
    <?php 
    $KEYWORD = $_POST['keyword']; 
    $stmt = $conn->prepare("SELECT DISTINCT dog_park_name FROM dog_parks.items WHERE dog_park_name LIKE '%{$KEYWORD}%'"); 
    $stmt->execute(); 
    for ($i = 0; $row = $stmt->fetch(); ++$i) { 
     $_SESSION["dog_park"] = "$row[0]"; 
    ?> 
     <!-- DISPLAY RESULTS --> 
     <tr> <!-- Adding the first table row --> 
      <th>Dog Park</th> <!-- Adding the second table header --> 
     </tr> 

     <tr> <!-- Adding the second table row --> 
      <td><a href="individual_item_page.php" ><?php echo $row[0]; ?></a></td> <!-- Add the second cell on the second row --> 
     </tr> 
    <?php 
    } 
    ?> 
</table> 

ich ein Keyword suchen und es erzeugt die folgende Ausgabe, die korrekt ist:

TRAMWAY ST DOG OFF LEASH AREA 
STRINGYBARK DVE DOG OFF LEASH AREA 

Das Problem kommt, wenn ich klicken sie auf eines der Ergebnisse kehrten sie alle ende auf der gleichen Seite mit dem gleichen Namen der unteren Reihe.

STRINGYBARK DVE DOG OFF LEASH AREA 
STRINGYBARK DVE DOG OFF LEASH AREA 

Ich denke, es war etwas mit den leiden $stmt->fetch()

nicht veröffentlichen Bilder zu tun ...

+0

Bitte formatieren Sie den Code –

+0

Sie halten das Überschreiben '$ _SESSION [ 'dog_park'] 'bis nur noch die letzte Zeile übrig ist. Wie erwarten Sie, dass das funktioniert? Du solltest einen Link wie 'individual_item_page.php? Park = blahblah' haben. –

+0

Habe ihn jetzt aktualisiert, sorry hat ihn noch nie gepostet. – deluxenathan

Antwort

1
Note: the change is here --> $row[0] not "$row[0]" 

vor $_SESSION["dog_park"] = "$row[0]";

nach $_SESSION["dog_park".$i] = $row[0];

dann Sitzungswert von

 $_SESSION["dog_park0"]; 
    $_SESSION["dog_park1"]; 
    $_SESSION["dog_park2"]; 
    $_SESSION["dog_park3"];
usw. bekommen,

+0

Hallo Kumpel, danke für den Kommentar, habe meinen Code geändert , scheint es immernoch nur einen Park zu geben, welches Schlüsselwort ich suche .. – deluxenathan

+0

$ KEYWORD = $ _GET ['keyword']; und

+0

Ist das wrk für dich? –

0

Wenn Sie die Schleife wollen richtig arbeiten, dann müssen Sie Ihre Daten ein zuweisen Variable, die nicht überschrieben wird, benutze ich sowohl in der Sitzung als auch in der Zeile, um zu inkrementieren, ansonsten verwende eine foreach-Schleife.

for ($i = 0; $row = $stmt->fetch(); ++$i) { 
    $_SESSION["dog_park"][$i] = $row[$i]; 
?> 

Dies würde verhindern, dass das Session-Array die gleichen Werte zurückgibt. Auf diese Weise gehen Sie jedes Ergebnis einzeln durch und setzen es einzeln (anstatt alles auf einen Wert zu setzen).

+0

Warum ... downvote – LukeXF

+0

UPDATE MIT BILDERN: Wenn ich ein Keyword suche ich die richtigen Ergebnisse zeigen in der Tabelle erhalten, unten stehenden Link: [Tabelle 1] (https://gyazo.com/04dc46ee4a659cd82cd61fbdbcedaf0d.png) Wenn Ich klicke auf das erste Ergebnis (TRAMWAY ..), es wird der Name des unteren Ergebnisses (STRINGBARK ...) angezeigt. [Ergebnis] (https://gyazo.com/2dd44e2075232192652e130b07fe2183.png) Der Code der Seite, die diesen Namen anzeigt, wird unter unten stehenden Link: [individual_item_page.php] (https://gyazo.com/f572bc3362c20b1fbcaee51e88ca1789.png) – deluxenathan