Result in link stoppen ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arthur Heijmen

Arthur Heijmen

07/05/2013 20:24:33
Quote Anchor link
Hoi,
Ik ben bezig met mijn foto zoek script.
Wat ik wil, heb ik namelijk niet op google kunnen vinden.
Het script dat ik heb werkt goed, maar geeft elk result weer.
In het result, maak ik gebruik van de id van de foto.
Maar elk result, geeft een aparte link.
Nou wil ik alle resultaten in een link stoppen.
Hier is mijn stukje script,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php

include 'connect.php';

// error melding.
error_reporting(E_ALL);
ini_set('display_errors', 1);
// einde error.

if( isset($_POST['zoekterm']) && !empty($_POST['zoekterm']) ) {
 
    $query = "SELECT * FROM `fotoalbum` WHERE naam_foto  LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%' AND text_foto LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%' AND tag LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%'";

        $sql = mysql_query($query) or die (mysql_error());
        $aantal = mysql_num_rows($sql);
  
      $aantal = $aantal;
      if ($aantal1 == 0)
      {

      echo "Er zijn <b>geen</b> resultaten gevonden op <span class='schuin'><strong>$_POST[zoekterm]</strong></span> !<br>";
      }

      else
      {  
      echo "<b>$aantal items gevonden</b><br><br>";
//  toon result.      
        while ($obj = mysql_fetch_assoc($sql)) {
      echo "<a href=index.php?titel=result&id=$obj->id.>$_POST[zoekterm] : $obj->tag</a><br />";
      }

//  einde result.
   }
 }


?>

<br />

<form action="index.php?titel=zoek" method="post">
Zoek op deze site&nbsp;&nbsp;
<input type="text" name="zoekterm" value=""/>
<input type="submit" name="verzenden" value="  zoeken  "/>
</form>

<br />

Wie kan mij even hiermee op weg helpen.
Gewijzigd op 07/05/2013 20:48:42 door Arthur Heijmen
 
PHP hulp

PHP hulp

28/04/2024 18:22:21
 
- Ariën  -
Beheerder

- Ariën -

07/05/2013 20:32:13
Quote Anchor link
Ik snap je niet?

Even wat opmerkingen:
- Variabelen buiten quotes. Dit zou je immers na 3 jaar wel moeten weten ;-)
- $aantal1 klinkt niet echt als een duidelijke variabele... Houd het logisc, duidelijk en overzichtelijk.
- Gebruik geen mixed upper-/lowercase HTML. Dus geen <B> maar <b>
- Gebruik bij voorkeur mysql_fetch_assoc, i.p.v. mysql_fetch_object.
- Lijn 26 klopt niet helemaal.
- Gebruik geen <? tags, maar de volledige <?php tags.
Gewijzigd op 07/05/2013 20:32:56 door - Ariën -
 
Arthur Heijmen

Arthur Heijmen

07/05/2013 20:38:13
Quote Anchor link
Oke aar.
Maar wat ik bedoel is, Als ik op de site van mij naar bischop zoek,
krijg ik twee resultaten.
Die twee wil ik dan in een hyperlink stoppen, en door sturen naar de result pagina.
 
- Ariën  -
Beheerder

- Ariën -

07/05/2013 20:44:28
Quote Anchor link
Je wilt een link dat je direct die twee tegelijkertijd kan zoeken? Om bijv. iets te vergelijken ofzo?

Dan kan je toch een link maken met: items.php?product1=42&product2=24, en dan laat je een query lopen waar je met een query zoals dit beiden kan zoeken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT dit, dat, zus, zo
FROM tabel_naam
WHERE id IN ($_GET['product1'],$_GET['product2'])


Uiteraard is dit pseudocode, en moet je de boel nog escapen en netjes opbouwen.
Dit bedoel je dus?
Gewijzigd op 07/05/2013 20:45:01 door - Ariën -
 
Arthur Heijmen

Arthur Heijmen

07/05/2013 20:47:08
Quote Anchor link
Nee niet helemaal,
dat is meer iets voor op de result pagina.
 
- Ariën  -
Beheerder

- Ariën -

07/05/2013 20:47:54
Quote Anchor link
Dan snap ik je niet, want die link stuurt je toch door naar de resultspagina..
Kan je wat concreter zijn en eventueel een voorbeeld geven wat je wilt bereiken?
Gewijzigd op 07/05/2013 20:48:37 door - Ariën -
 
Arthur Heijmen

Arthur Heijmen

07/05/2013 20:52:29
Quote Anchor link
Als de zoek pagina twee resultaten weergeeft, (dit zijn foto id's)
Deze resultaten dan door te sturen naar de result pagina, zoals in regel 27.
Alleen regel 27 stuurt nu maar een foto id door.
Kijk anders even op mijn siteGothmaster
Ga na de zoek pagina en type in bishop
Gewijzigd op 07/05/2013 20:59:24 door Arthur Heijmen
 
- Ariën  -
Beheerder

- Ariën -

07/05/2013 20:56:55
Quote Anchor link
Eh, je bent dan toch al op de resultspagina? Heb je anders een online voorbeeld om het duidelijker te maken?
 
Wouter Van Marrum

Wouter Van Marrum

07/05/2013 21:03:30
Quote Anchor link
Arthur Heijmen op 07/05/2013 20:38:13:
Oke aar.
Maar wat ik bedoel is, Als ik op de site van mij naar bischop zoek,
krijg ik twee resultaten.
Die twee wil ik dan in een hyperlink stoppen, en door sturen naar de result pagina.


Ik heb de code iets aangepast zodat het werkt met mysqli.
Daar werk ik mee dus neem me dat niet kwalijk.

Ook heb ik de code iets aangepast zodat als je op zoeken hebt gedrukt dat het zoek formulier weg gaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
ini_set('display_errors', 1);
switch ($_GET['action']) {

    default:
?>


<form action="test.php?action=zoek" method="post">
Zoek op deze site&nbsp;&nbsp;
<input type="text" name="zoekterm" value=""/>
<input type="submit" name="verzenden" value=" zoeken "/>
</form>

<br />
<!-- End main page -->
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php break;

case
'zoek':

define('SHADOW_CMS', 1);
include 'config.php';

$mysqli = new mysqli($host, $username, $password, $db);


if(isset($_POST['zoekterm']) && !empty($_POST['zoekterm']) ) {
 
    $query = "SELECT * FROM `shadow_pages` WHERE title  LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%'";

        $result = $mysqli->query($query) or die (mysql_error());
       $aantal = $result->num_rows;
      if (mysqli_num_rows($result) == 0)
      {

      echo "Er zijn <B>geen</B> resultaten gevonden op <span class='schuin'><strong>$_POST[zoekterm]</strong></span> !<br>";
      }

      else
      {  
      echo "<b>$aantal items gevonden</b><br><br>";
//  toon result.      
        while ($row = $result->fetch_assoc()) {
      echo "<a href=test.php?pagina=result&id=".$row["get_title"].">$_POST[zoekterm] : $row[title]</a><br />";
      }

//  einde result.
   }
 }


break;
}

?>
 
Arthur Heijmen

Arthur Heijmen

07/05/2013 21:18:27
Quote Anchor link
Oke aar, je bracht mij wel op een idee.
Ik heb van de zoek pagina gelijk de result pagina gemaakt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
include 'connect.php';
// error melding.
error_reporting(E_ALL);
ini_set('display_errors', 1);
// einde error.
if( isset($_POST['zoekterm']) && !empty($_POST['zoekterm']) ) {
    $query = "SELECT * FROM `fotoalbum` WHERE naam_foto  LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%' AND text_foto LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%' AND tag LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%'";
        $sql = mysql_query($query) or die (mysql_error());
        $aantal = mysql_num_rows($sql);
      $aantal = $aantal;
      if ($aantal == 0)
      {

      echo "Er zijn <b>geen</b> resultaten gevonden op <span class='schuin'><strong>$_POST[zoekterm]</strong></span> !<br>";
      }

      else
      {  
      echo "<b>$aantal items gevonden</b><br><br>";
//  toon result.
      echo '<div class=img-blok>';  
        while ($obj = mysql_fetch_object($sql)) {
        
          $image_path = 'album/' . $obj->naam_foto ;
          list($width, $height, $type, $attr)= getimagesize($image_path);
        
      echo "<a title='$obj->text_foto' :afbeeldings grote = $width x $height in pixels' rel='example_group' href='album/$obj->naam_foto'><img src='album/thumb/$obj->foto_klein' alt='$obj->tag' class='img' height='100px' /></a>&nbsp;";  
      }

      echo '</div>';
//  einde result.
   }
 }

?>

<br />

<form action="index.php?titel=zoek" method="post">
Zoek op deze site&nbsp;&nbsp;
<input type="text" name="zoekterm" value=""/>
<input type="submit" name="verzenden" value="  zoeken  "/>
</form>
<br />

ps, zitten nog wel paar kleine foutjes in, maar die ga ik oplossen.
Gewijzigd op 07/05/2013 21:29:30 door Arthur Heijmen
 
Wouter Van Marrum

Wouter Van Marrum

07/05/2013 21:28:35
Quote Anchor link
Hallo Arthur Heijmen,

Ik heb een ander voorbeeld voor je,
Als je wilt kan ik deze online plaatsen om te testen.

hier is de code :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
ini_set('display_errors', 1);

define('SHADOW_CMS', 1);
include 'config.php';

$mysqli = new mysqli($host, $username, $password, $db);

switch ($_GET['action']) {

    default:
?>


<form action="test.php?action=zoek" method="post">
Zoek op deze site&nbsp;&nbsp;
<input type="text" name="zoekterm" value=""/>
<input type="submit" name="verzenden" value=" zoeken "/>
</form>

<br />
<!-- End main page -->
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php break;

case
'zoek':

if(isset($_POST['zoekterm']) && !empty($_POST['zoekterm']) ) {
 
    $query = "SELECT * FROM `shadow_pages` WHERE title  LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%'";

        $result = $mysqli->query($query) or die (mysql_error());
       $aantal = $result->num_rows;
      if (mysqli_num_rows($result) == 0)
      {

      echo "Er zijn <B>geen</B> resultaten gevonden op <span class='schuin'><strong>$_POST[zoekterm]</strong></span> !<br>";
      }

      else
      {  
      echo "<b>$aantal items gevonden</b><br><br>";
//  toon result.      
        while ($row = $result->fetch_assoc()) {
      echo "<a href=test.php?action=result&id=".$row["get_title"].">$_POST[zoekterm] : $row[title]</a><br />";
      }

//  einde result.
   }
 }


break;

case
'result' :

    function
get_content($id = 'zoek') {
        global $mysqli;
            if($id != "zoek"):
                $id = mysqli_real_escape_string($mysqli, $id);
                $sql = "SELECT * FROM shadow_pages WHERE get_title='$id' ";
            else:
                $sql = "SELECT * FROM shadow_pages WHERE get_title='home' ";
            endif;


            $result = $mysqli->query($sql) or die(mysqli_error($mysqli));

            if(mysqli_num_rows($result) !=0):
            $content = "";
            while (($row = $result->fetch_assoc()) !==null){
                $content = "<h1>". $row['title'] ."</h1>";
                $content .= $row['body'];
            }

            else :
                $content = "Er zijn <B>geen</B> resultaten gevonden op <span class='schuin'><strong>$_POST[zoekterm]</strong></span> !<br>";
            endif;

            return $content;
    }


    if(isset($_GET['id'])) :
        $content = get_content($_GET['id']);
    else :
        $content = get_content($_GET['id'] = "home");
    endif;

    echo $content;
break;
}

?>
 
Arthur Heijmen

Arthur Heijmen

07/05/2013 21:33:09
Quote Anchor link
Bedank hier voor,zo als ik even proberehet nu heb, werkt het goed.
Maar voor de zekerheid, zal ik die van jou ook proberen.
Wie weet heb ik daar meer aan.
 
Wouter Van Marrum

Wouter Van Marrum

07/05/2013 21:37:38
Quote Anchor link
Je kunt ook nog een linkje plaatsen terug naar de zoek pagina.
gewoon dit even replacen :

$content = "<h1>". $row['title'] ."</h1>";
$content .= $row['body'];

voor :
$content = "<h1>". $row['title'] ."</h1>";
$content .= $row['body'];
$content .= "<hr />
<p>Ga terug naar de <a href=\"test.php\">zoekpagina</a>.</p>";
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.