MySQL Zoekmachine probleem
deze site gehaald en aangepast naar mijn situatie, maar het werkt niet, hij geeft parse error bij de laatste regel (?>). Ik heb alles 3x nagelopen of er niet een if nog open stond of wat dan ook, of ergens een ; miste, maar ik kan niks vinden. Kijk ik er overheen, ziet iemand anders het wel?
Ik heb dit script van Code (php)
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
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
<?php
error_reporting(E_ALL);
/* call this script 'advs.php' */
if(!$_GET['c']) {
?>
<form action='advs.php?c=1' method=POST>
<b>Find Results with: </b><br>
Any of these words: <input type='text' length=40 name='any'> <br>
All of these words: <input type='text' length=40 name='all'> <br>
None of these words: <input type='text' length=40 name='none'> <br>
<input type='submit' value='Search'>
</form>
<?php
} else if($_GET['c']) {
include_once 'config.php';
include_once 'functions.php';
connectdb();
$all = $_POST['all'];
$any = $_POST['any'];
$none = $_POST['none'];
if((!$all) || ($all == '')) { $all = ''; } else { $all = '+(' . $all . ')'; }
if((!$any) || ($any == '')) { $any = ''; }
if((!$none) || ($none == '')) { $none = ''; } else { $none = '-(' . $none . ')'; }
$query = "
SELECT *,
MATCH(body) AGAINST ('" . $all . $none . $any . "' IN BOOLEAN MODE) AS score
FROM compsite
WHERE MATCH(body) AGAINST ('" . $all . $none . $any . "' IN BOOLEAN MODE)";
$artm1 = MySQL_query($query);
if(!$artm1) {
echo MySQL_error().'<br>' . $query . '<br>';
}
echo '<b>Matches</b><br>';
if(MySQL_num_rows($artm1) > 0) {
echo '<table>';
echo '<tr><td>Score </td><td>Title </td><td>Body</td></tr>';
while($artm2 = MySQL_fetch_array($artm1)) {
$val = round($artm2['score'], 3);
$val = ($val*100);
echo '<tr><td>' . $val . '</td>';
echo '<td>' . $artm2['title'] . '</td>';
echo '<td>' . $artm2['body'] . '</td></tr>';
}
echo '</table>';
}
else {
echo 'No Results were found in this category.<br>';
}
echo '<br>';
}
?>
error_reporting(E_ALL);
/* call this script 'advs.php' */
if(!$_GET['c']) {
?>
<form action='advs.php?c=1' method=POST>
<b>Find Results with: </b><br>
Any of these words: <input type='text' length=40 name='any'> <br>
All of these words: <input type='text' length=40 name='all'> <br>
None of these words: <input type='text' length=40 name='none'> <br>
<input type='submit' value='Search'>
</form>
<?php
} else if($_GET['c']) {
include_once 'config.php';
include_once 'functions.php';
connectdb();
$all = $_POST['all'];
$any = $_POST['any'];
$none = $_POST['none'];
if((!$all) || ($all == '')) { $all = ''; } else { $all = '+(' . $all . ')'; }
if((!$any) || ($any == '')) { $any = ''; }
if((!$none) || ($none == '')) { $none = ''; } else { $none = '-(' . $none . ')'; }
$query = "
SELECT *,
MATCH(body) AGAINST ('" . $all . $none . $any . "' IN BOOLEAN MODE) AS score
FROM compsite
WHERE MATCH(body) AGAINST ('" . $all . $none . $any . "' IN BOOLEAN MODE)";
$artm1 = MySQL_query($query);
if(!$artm1) {
echo MySQL_error().'<br>' . $query . '<br>';
}
echo '<b>Matches</b><br>';
if(MySQL_num_rows($artm1) > 0) {
echo '<table>';
echo '<tr><td>Score </td><td>Title </td><td>Body</td></tr>';
while($artm2 = MySQL_fetch_array($artm1)) {
$val = round($artm2['score'], 3);
$val = ($val*100);
echo '<tr><td>' . $val . '</td>';
echo '<td>' . $artm2['title'] . '</td>';
echo '<td>' . $artm2['body'] . '</td></tr>';
}
echo '</table>';
}
else {
echo 'No Results were found in this category.<br>';
}
echo '<br>';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jeroen van de Ven
sja dat krijg je wel eens
Wat is de error?
if(!$_GET['c']) {
en regel 13:
} else if($_GET['c']) {
en op regel 16 voeg je toe:
$all = $_POST['all'];
$any = $_POST['any'];
$none = $_POST['none'];
Gewijzigd op 01/01/1970 01:00:00 door niek s
Parse error: parse error, unexpected $end in C:\Webserver Root\dbzoek\advs.php on line 53
Ik vond dat al opmerkelijk maar hij zou toch een andere error moeten geven dan?
Gewijzigd op 01/01/1970 01:00:00 door Jeroen van de Ven
Verrander het hier eens in dan:
Code (php)
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
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
<?php
error_reporting(E_ALL);
/* call this script 'advs.php' */
if(!$_GET['c']) {
?>
<form action='advs.php?c=1' method=POST>
<b>Find Results with: </b><br>
Any of these words: <input type='text' length=40 name='any'> <br>
All of these words: <input type='text' length=40 name='all'> <br>
None of these words: <input type='text' length=40 name='none'> <br>
<input type='submit' value='Search'>
</form>
<?
} else if($_GET['c']) {
include_once 'config.php';
include_once 'functions.php';
connectdb();
$all = $_POST['all'];
$any = $_POST['any'];
$none = $_POST['none'];
if((!$all) || ($all == '')) { $all = ''; } else { $all = '+('.$all.')'; }
if((!$any) || ($any == '')) { $any = ''; }
if((!$none) || ($none == '')) { $none = ''; } else { $none = '-('.$none.')'; }
$query = "
SELECT *,
MATCH(title, story) AGAINST ('$all $none $any' IN BOOLEAN MODE) AS score
FROM compsite
WHERE MATCH(title, story) AGAINST ('$all $none $any' IN BOOLEAN MODE)";
$artm1 = MySQL_query($query);
if(!$artm1) {
echo MySQL_error().'<br>$query<br>';
}
echo '<b>Article Matches</b><br>';
if(MySQL_num_rows($artm1) > 0) {
echo '<table>';
echo '<tr><td>Score </td><td>Title </td><td>Body</td></tr>';
while($artm2 = MySQL_fetch_array($artm1)) {
$val = round($artm2['score'], 3);
$val = $val*100;
echo '<tr><td>$val</td>';
echo '<td>{$artm2['title']}</td>';
echo '<td>{$artm2['body']}</td></tr>';
}
echo '</table>';
}
else {
echo 'No Results were found in this category.<br>';
}
echo '<br>';
}
}
?>
error_reporting(E_ALL);
/* call this script 'advs.php' */
if(!$_GET['c']) {
?>
<form action='advs.php?c=1' method=POST>
<b>Find Results with: </b><br>
Any of these words: <input type='text' length=40 name='any'> <br>
All of these words: <input type='text' length=40 name='all'> <br>
None of these words: <input type='text' length=40 name='none'> <br>
<input type='submit' value='Search'>
</form>
<?
} else if($_GET['c']) {
include_once 'config.php';
include_once 'functions.php';
connectdb();
$all = $_POST['all'];
$any = $_POST['any'];
$none = $_POST['none'];
if((!$all) || ($all == '')) { $all = ''; } else { $all = '+('.$all.')'; }
if((!$any) || ($any == '')) { $any = ''; }
if((!$none) || ($none == '')) { $none = ''; } else { $none = '-('.$none.')'; }
$query = "
SELECT *,
MATCH(title, story) AGAINST ('$all $none $any' IN BOOLEAN MODE) AS score
FROM compsite
WHERE MATCH(title, story) AGAINST ('$all $none $any' IN BOOLEAN MODE)";
$artm1 = MySQL_query($query);
if(!$artm1) {
echo MySQL_error().'<br>$query<br>';
}
echo '<b>Article Matches</b><br>';
if(MySQL_num_rows($artm1) > 0) {
echo '<table>';
echo '<tr><td>Score </td><td>Title </td><td>Body</td></tr>';
while($artm2 = MySQL_fetch_array($artm1)) {
$val = round($artm2['score'], 3);
$val = $val*100;
echo '<tr><td>$val</td>';
echo '<td>{$artm2['title']}</td>';
echo '<td>{$artm2['body']}</td></tr>';
}
echo '</table>';
}
else {
echo 'No Results were found in this category.<br>';
}
echo '<br>';
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door niek s
Ook al gezocht en geprobeerd, zelfde error.
echo '<td>{$artm2['title']}</td>';
echo '<td>{$artm2['body']}</td></tr>';
je bent vergeten je variablen buiten quetes te zetten...
moet worden:
echo '<tr><td>$val</td>';
echo '<td>{'.$artm2['title'].'}</td>';
echo '<td>{'.$artm2['body'].'}</td></tr>';
Nee daar zijn die { } voor. Bovendien werkt het nog steeds niet...
Maar houd die $_GET enzo maar zoals ik het heb gemaakt voor je, dat is de juiste notatie. Eigenlijk is dit nog steeds niet helemaal goed (variabelen niet buiten quotes enz enz enz. ) maar dat mag eigenlijk geen problemen opleveren.
Maar even wachten tot iemand hier komt die het wel ziet. Sorry.
michel schreef op 04.01.2007 11:08:
echo '<tr><td>$val</td>';
echo '<td>{$artm2['title']}</td>';
echo '<td>{$artm2['body']}</td></tr>';
je bent vergeten je variablen buiten quetes te zetten...
moet worden:
echo '<tr><td>'.$val.'</td>';
echo '<td>{'.$artm2['title'].'}</td>';
echo '<td>{'.$artm2['body'].'}</td></tr>';
echo '<td>{$artm2['title']}</td>';
echo '<td>{$artm2['body']}</td></tr>';
je bent vergeten je variablen buiten quetes te zetten...
moet worden:
echo '<tr><td>'.$val.'</td>';
echo '<td>{'.$artm2['title'].'}</td>';
echo '<td>{'.$artm2['body'].'}</td></tr>';
En dan laat je het zelf nog staan :p
niek schreef op 04.01.2007 11:13:
Hm.. Ik weet het ook niet meer.
Maar houd die $_GET enzo maar zoals ik het heb gemaakt voor je, dat is de juiste notatie. Eigenlijk is dit nog steeds niet helemaal goed (variabelen niet buiten quotes enz enz enz. ) maar dat mag eigenlijk geen problemen opleveren.
Maar even wachten tot iemand hier komt die het wel ziet. Sorry.
Maar houd die $_GET enzo maar zoals ik het heb gemaakt voor je, dat is de juiste notatie. Eigenlijk is dit nog steeds niet helemaal goed (variabelen niet buiten quotes enz enz enz. ) maar dat mag eigenlijk geen problemen opleveren.
Maar even wachten tot iemand hier komt die het wel ziet. Sorry.
Ok thx :) Ik zal ondertussen ff alle variabelen buiten de quotes halen voor de vorm, dat was ik toch al van plan.
Waarom staat er op regel 16 else if en niet aan elkaar: elseif, else if wordt denk ik gezien als 2 dingen openen, een else en een if, dat zou verklaren waarom je unexpected end krijgt.
Mark schreef op 04.01.2007 11:18:
Waarom staat er op regel 16 else if en niet aan elkaar: elseif, else if wordt denk ik gezien als 2 dingen openen, een else en een if, dat zou verklaren waarom je unexpected end krijgt.
Hm je hebt gelijk dat moet aan elkaar, zoals het er nu staat is het de VB vorm :P Maar ik heb alle variabelen buiten de quotes gehaald en ineens doet ie et :/ dus zal wel ernstig geweest zijn. zo zien we maar weer dat slordig coden niet slim is :P naja iig thx
@niek... idd.... over het hoofd gezien, maar die andere viel me op door de kleur tags hier...
include_once 'functions.php';
heb je deze erbij?
Code (php)
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
62
63
64
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
62
63
64
<?php
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//Belangrijk! Voer hier je MySQL gegevens in:
$DBserver = 'localhost'; //Server van MySQL database (meestal localhost)
$DBusername = 'username'; //Username voor MySQL server
$DBpassword = 'password'; //Password voor MySQL server
$DBdatabase = 'username_database'; //Jouw database
//Einde config
if(mysql_connect($DBserver,$DBusername,$DBpassword,$DBdatabase)){
if(!mysql_select_db($DBdatabase)){
echo '<font color="red">Kon database niet selecteren, controleer je gegevens!';
}
}else{
echo '<font color="red">MySQL server connectie error, controleer je gegevens!';
}
if(!empty($_POST['all'])){
$all = '+('.htmlentitites($_POST['all']).')';
}
if(!empty($_POST['any'])){
$any = htmlentitites($_POST['any']);
}
if(!empty($_POST['none'])){
$none = '-('.htmlentitites($_POST['nome']).')';
}
$query = "SELECT *,
MATCH(body) AGAINST ('" . $all . $none . $any . "' IN BOOLEAN MODE) AS score
FROM compsite
WHERE MATCH(body) AGAINST ('" . $all . $none . $any . "' IN BOOLEAN MODE)";
if(!$artm1 = mysql_query($query)) {
echo mysql_error().'<br>' . $query . '<br>';
}else{
echo '<b>Matches</b><br>';
if(mysql_num_rows($artm1) > 0) {
echo '<table>';
echo '<tr><td>Score </td><td>Title </td><td>Body</td></tr>';
while($artm2 = mysql_fetch_array($artm1)) {
$val = round($artm2['score'], 3);
$val = ($val*100);
echo '<tr><td>' . $val . '</td>';
echo '<td>' . $artm2['title'] . '</td>';
echo '<td>' . $artm2['body'] . '</td></tr>';
}
echo '</table>';
}else {
echo 'No Results were found in this category.<br>';
}
echo '<br>';
}
}
?>
<form action="advs.php?c=1" method="post">
<b>Find Results with: </b><br>
Any of these words: <input type="text" maxlength="40" name="any"> <br>
All of these words: <input type="text" maxlength="40" name="all"> <br>
None of these words: <input type="text" maxlength="40" name="none"> <br>
<input type="submit" name="submit" value="Search">
</form>
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//Belangrijk! Voer hier je MySQL gegevens in:
$DBserver = 'localhost'; //Server van MySQL database (meestal localhost)
$DBusername = 'username'; //Username voor MySQL server
$DBpassword = 'password'; //Password voor MySQL server
$DBdatabase = 'username_database'; //Jouw database
//Einde config
if(mysql_connect($DBserver,$DBusername,$DBpassword,$DBdatabase)){
if(!mysql_select_db($DBdatabase)){
echo '<font color="red">Kon database niet selecteren, controleer je gegevens!';
}
}else{
echo '<font color="red">MySQL server connectie error, controleer je gegevens!';
}
if(!empty($_POST['all'])){
$all = '+('.htmlentitites($_POST['all']).')';
}
if(!empty($_POST['any'])){
$any = htmlentitites($_POST['any']);
}
if(!empty($_POST['none'])){
$none = '-('.htmlentitites($_POST['nome']).')';
}
$query = "SELECT *,
MATCH(body) AGAINST ('" . $all . $none . $any . "' IN BOOLEAN MODE) AS score
FROM compsite
WHERE MATCH(body) AGAINST ('" . $all . $none . $any . "' IN BOOLEAN MODE)";
if(!$artm1 = mysql_query($query)) {
echo mysql_error().'<br>' . $query . '<br>';
}else{
echo '<b>Matches</b><br>';
if(mysql_num_rows($artm1) > 0) {
echo '<table>';
echo '<tr><td>Score </td><td>Title </td><td>Body</td></tr>';
while($artm2 = mysql_fetch_array($artm1)) {
$val = round($artm2['score'], 3);
$val = ($val*100);
echo '<tr><td>' . $val . '</td>';
echo '<td>' . $artm2['title'] . '</td>';
echo '<td>' . $artm2['body'] . '</td></tr>';
}
echo '</table>';
}else {
echo 'No Results were found in this category.<br>';
}
echo '<br>';
}
}
?>
<form action="advs.php?c=1" method="post">
<b>Find Results with: </b><br>
Any of these words: <input type="text" maxlength="40" name="any"> <br>
All of these words: <input type="text" maxlength="40" name="all"> <br>
None of these words: <input type="text" maxlength="40" name="none"> <br>
<input type="submit" name="submit" value="Search">
</form>