Hej Udvikleren,
Jeg har brugt et search script på min projektside, men vil gerne vide hvordan det fungere, selv om jeg har fået det til at virke. Størstedelen giver mening for mig, men er stadig i tvivl om dele af scriptet. Vil gerne hører om i kunne give mig en "skåret ud i pap" beskrivelse af det jeg ikke forstår i scriptet, så jeg kan lærer at forstå scriptet og php bedere.
Her er hele scriptet
- <?php
-
- $button = @$_GET['submit'];
- $button = @$_GET['side'];
- $search = htmlspecialchars(@$_GET['search']);
-
- ?><div class="mainpadding"><?php
-
- if (!$button) {
- echo "Fejl i søgningen<br />";
- echo "<b><a href='http://dfalkner.dk/index.php?side=Kurser'>Tilbage til kurser</a></b>";
- } else {
-
- if (strlen($search)<=2) {
- echo "Der er ikke nok bogstaver<p><b><a href='http://dfalkner.dk/index.php?side=Kurser'>Tilbage til kurser</a></b>";
- die();
- } else {
- echo "Du søgte efter <b>$search</b><p><b><a href='http://dfalkner.dk/index.php?side=Kurser'>Tilbage til kurser</a></b>";
- }
- ?></div><hr size='1'><?php
- ?><div class="mainpadding"><?php
- mysql_connect("dfalkner.dk.mysql", "dfalkner_dk", "yCRYJwUS");
- mysql_select_db("dfalkner_dk");
-
- $search_exploded = explode(" " ,mysql_real_escape_string($search));
- $construct = '';
- $x = 0;
-
- foreach ($search_exploded as $search_each) {
-
- $x++;
-
- if ($x == 1) {
- $construct .= "keywords LIKE '%$search_each%'";
- } else {
- $construct .= " AND keywords LIKE '%$search_each%'";
- }
-
- }
-
- $query = "SELECT * FROM sog WHERE $construct";
-
- $run = mysql_query($query);
- $foundnum = mysql_num_rows($run);
-
- if ($foundnum == 0) {
- echo "Ingen resultater fundet.";
- } else {
- echo "$foundnum resultat(er) fundet!<p>";
- ?></div>
Efter det laver jeg bare runrows og echoer data ud på siden, og det er jeg helt med på. Der hvor jeg kommer mest i tvivl er:
- $search_exploded = explode(" " ,mysql_real_escape_string($search));
- $construct = '';
- $x = 0;
-
- foreach ($search_exploded as $search_each) {
-
- $x++;
-
- if ($x == 1) {
- $construct .= "keywords LIKE '%$search_each%'";
- } else {
- $construct .= " AND keywords LIKE '%$search_each%'";
- }
-
- }
-
- $query = "SELECT * FROM sog WHERE $construct";
-
- $run = mysql_query($query);
- $foundnum = mysql_num_rows($run);
-
- if ($foundnum == 0) {
- echo "Ingen resultater fundet.";
- } else {
- echo "$foundnum resultat(er) fundet!<p>";
- ?></div><?php
Håber i har tid til at hjælpe en php-newbie