Toon posts:

[PHP] Error, searchengine => als ik waarde opgeef

Pagina: 1
Acties:
  • 127 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben bezig met een zoekscriptje voor me site

Dit is mijn invoer scriptje:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
<form action="zoeken.php" method="post"> 
<select name="zoekin">
<option value="articles">Nieuws
<option value="posts">Forum
</select><br>
<input type="text" name="trefwoord" value=""> 
<input type="submit" name="submit" value="Zoeken!"> 
</form> 
?>

En dit m'n resultaat:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
if ($submit) { 
$kolom = "text,title";
$sort = "title"; 
include('./config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE $trefwoord ORDER BY $sort"; 
$res = mysql_query($sql) or die(mysql_error()); 
echo "$res";
}
?>

Ik dat script testen krijg ik deze error:

You have an error in your SQL syntax near '1 WHERE text,title LIKE bluetooth ORDER BY title' at line 1


Wie weet wat ik fout doe??

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op zaterdag 20 oktober 2001 22:21 schreef BeNNiS het volgende:
Ik ben bezig met een zoekscriptje voor me site

Dit is mijn invoer scriptje:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
<form action="zoeken.php" method="post"> 
<select name="zoekin">
<option value="articles">Nieuws
<option value="posts">Forum
</select><br>
<input type="text" name="trefwoord" value=""> 
<input type="submit" name="submit" value="Zoeken!"> 
</form> 
?>

En dit m'n resultaat:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
if ($submit) { 
$kolom = "text,title";
$sort = "title"; 
include('./config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE $trefwoord ORDER BY $sort"; 
$res = mysql_query($sql) or die(mysql_error()); 
echo "$res";
}
?>

Ik dat script testen krijg ik deze error:

You have an error in your SQL syntax near '1 WHERE text,title LIKE bluetooth ORDER BY title' at line 1


Wie weet wat ik fout doe??
doe eens echo "$sql";

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
OK met deze code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if ($submit) { 
$kolom = "text,title";
$sort = "title"; 
include('./config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE $trefwoord ORDER BY $sort"; 
echo "$sql";
$res = mysql_query($sql) or die(mysql_error()); 
echo "<BR>$res";

}
?>

Nog steeds deze error:

You have an error in your SQL syntax near '0 WHERE text,title LIKE bluetooth ORDER BY title' at line 1

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

en wat is de uitvoer van die echo?

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter


$sql echo =>
SELECT * FROM articles WHERE text,title LIKE ok ORDER BY


Error =>
You have an error in your SQL syntax near '0 WHERE text,title LIKE bluetooth ORDER BY title' at line 1


  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Ik ben bang dat je SQL script niet klopt :

$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE $trefwoord ORDER BY $sort";

veranderen naar :

$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE '$trefwoord' ORDER BY $sort";

dan lijkt het me al logischer, want je krijgt nu :

LIKE bluetooth

bluetooth is toch geen kolom naam ? maar een sql string dit moet tussen haakjes staan. Je moet alleen bedenken of deze haakjes ' enkel of " dubbel moet zijn. In Oracle moeten ze enkel zijn, in MySQL weet ik het niet maar ik denk ook enkel.

en de parameters $zoekin, $kolom, $sort dit zijn neem ik aan wel de tabel, kolom en de soorteer kolom naam die meegaan. Ik weet namelijk weinig van PHP af.

[edit]

SELECT * FROM 0 WHERE text,title LIKE bluetooth ORDER BY title

ziet er trouwens erg ongezond uit die 0 een tabel naam kan nooit 0 zijn, en twee kolommen gebruiken in een vergelijking ?!?, dat kan ook niet het is of text of title, als text de tabel is dan moet het text.title zijn.

samengevat :


SELECT * FROM [moet een tabel komen te staan] WHERE text.title LIKE 'bluetooth' ORDER BY title

tabelnaam toevoegen, komma vervangen door een punt, en de haakjes.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • me1299
  • Registratie: Maart 2000
  • Laatst online: 19:37

me1299

$ondertitel

Is 0 een table in je DB?

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Verwijderd

Topicstarter
Dat van die "0" was een foutje moest dit zijn:

SELECT * FROM articles WHERE text,title LIKE 'bluetooth'

Ik heb nu dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if ($submit) { 
$kolom = "text,title";
$sort = "title"; 
include('./config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE '$trefwoord' ORDER BY $sort"; 
echo "$sql";
$res = mysql_query($sql) or die(mysql_error()); 
echo "<BR>$res";

}
?>

blijf dezelfde error houden...

Verwijderd

Topicstarter
Als ik nu alleen " TEXT " doe zoals je zei


Krijg ik een hele andere error:

SELECT * FROM articles WHERE text LIKE 'bluetooth'
ORDER BY title Resource id #2




-----EDIT----

Of is dit geen error?

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Er klopt nogsteeds iets niet in je SQL

text,title

kan niet dit moet of text of title zijn, en gezien jouw order by zou ik zeggen dat het title moet zijn.

de quotjes (hoe?) kloppen nu volgens mij wel.

Heb je al geprobeerd je sql in een sql sessie te draaien.

Draai je MySQL, MSSQL of Oracle als database ?

Probeer eens de SQL rechtstreeks in je PHP file te stoppen zonder de parameters of whatever die dingen ook heten. Als het dan wel lukt dan weet je in iedergeval dat je connectie goed is. (Tenzij andere sql statements wel lukken).

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


Verwijderd

Topicstarter
Mysql database zie me vorige reaktie

Ik heb nu alleen "Text" geprobeer ...
PHP:
1
2
3
<?
$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE '$trefwoord' ORDER BY $sort"; 
?>

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Als dit nu het sql statement is :

SELECT * FROM articles WHERE text LIKE 'bluetooth'
ORDER BY title Resource id #2

Dan begrijp ik het deel :

ORDER BY title Resource id #2

niet, als je een describe maakt van articles dan neem ik aan dat de kolommen title, resource, id, #2 daarin bestaan.

dan zou dit altijd komma gescheiden moeten zijn dus :

ORDER BY title, Resource, id, #2

Ik weet niet wat de kolom ID in MySQL is (De unique identifier van de kolom die uitgerijkt word door de database zelf) deze is in Oracle ROWID.

Hoe ziet de describe van de tabel articles eruit ?

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


Verwijderd

Topicstarter
Dat zier er zo uit:


CREATE TABLE articles (
ID int(10) unsigned NOT NULL auto_increment,
title text,
beginning text,
text text,

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Dat zier er zo uit:

CREATE TABLE articles (
ID int(10) unsigned NOT NULL auto_increment,
title text,
beginning text,
text text,

Dan is het dus niet mogelijk om een order by op :

Resource, #2

te doen, die mogen dan niet in het sql statement voor komen. Dus dan krijg je :

SELECT * FROM articles WHERE text LIKE 'bluetooth'
ORDER BY title, id

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
iemand was me voor

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Heeft "Resource #2" niet iets met php te maken (bijv. filehandler of mysqlhandler), of is daadwerkelijk je query?

Resource #2 kan namelijk ook een filehandler zijn, bij bijv. $a = fopen("blaat.txt"); ($a = "Resource #2" o.i.d.).

edit Die resource-id hoort NIET bij de query, dat is de output van mysql_query() (zie php-code)

Verwijderd

Topicstarter
Ok ik doe dus:
PHP:
1
2
3
<?
$sort = "title, ID"; 
?>

Maar nu krijg ik helemaaaal niks te zien
ook geen error ofzo helemaal niks..

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Aha, kan je statement ook in een vorm van SQL-Window uitvoeren ?, want moet het wel een resultaat geven.

Owja, je doet wel een like maar doe je ook de % wildcard teken voor en na het woord ? anders krijg je inderdaad waarschijnlijk niets, tenzijn je een row hebt waarbij text alleen 'bleutooth' bevat.

dus :

Where text like '%bleutooth%'

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Op zaterdag 20 oktober 2001 23:24 schreef elnino het volgende:
Heeft "Resource #2" niet iets met php te maken (bijv. filehandler of mysqlhandler), of is daadwerkelijk je query?

Resource #2 kan namelijk ook een filehandler zijn, bij bijv. $a = fopen("blaat.txt"); ($a = "Resource #2" o.i.d.).

edit Die resource-id hoort NIET bij de query, dat is de output van mysql_query() (zie php-code)
Zoals ik al zij, ik weet niets van PHP maar wel veel van SQL, dus het kan zijn dat wat jij zegt waar is maar ik kijk puur even naar de query.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


Verwijderd

Topicstarter
Damn krijg ik weer dit:


SELECT * FROM articles WHERE text LIKE '%bluetooth%' ORDER BY title, ID
Resource id #2



ik snap er de tering niet van |:(

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Laat eens nu het totaale PHP scripje zien wat je hebt (Het tweede deel uit je eerste posting bedoel ik dan)

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
if ($submit) { 
$kolom = "text";
$sort = "title, ID"; 
include('./config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE '%$trefwoord%' ORDER BY $sort"; 

echo "$sql";
$res = mysql_query($sql) or die(mysql_error()); 
echo "<BR>$res";

}
?>

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Op zaterdag 20 oktober 2001 23:42 schreef BeNNiS het volgende:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
if ($submit) { 
$kolom = "text";
$sort = "title, ID"; 
include('./config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
$sql = "SELECT * FROM $zoekin WHERE $kolom LIKE '%$trefwoord%' ORDER BY $sort"; 

echo "$sql";
$res = mysql_query($sql) or die(mysql_error()); 
echo "<BR>$res";

}
?>
Vreemd ?!?, $sort word nergens aangepast wat houdt $res in ?

Die $sort kan niet aangepast word in dit bestand

include('./config.inc.php');

dat hij daar toevallig ook in voorkomt ?

Ik weet niet of die reactie die door elnino geplaatst is enige betekenis hierin kan hebben ?

anders moet je $sort eens kijhard vervangen want heeft het eigenlijk zin om deze los te plaatsen ?, (ik weet niet of je de gebruiker de flexibiliteit wilt geven om deze te veranderen ofzo)

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Als je geen foutmelding krijgt, doe je het goed. Je moet nu het verder gaan uitwerken, met bijv. mysql_fetch_array() . Zie ook de talloze voorbeelden op internet.

mysql_query is niet genoeg.

Voorbeeldcode uit de phpmanual:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
 
mysql_connect ($host, $user, $password);
$result = mysql_db_query ("database","select user_id, fullname from table");
while ($row = mysql_fetch_array ($result)) {
    echo "user_id: ".$row["user_id"]."<br>\n";
    echo "user_id: ".$row[0]."<br>\n";
    echo "fullname: ".$row["fullname"]."<br>\n";
    echo "fullname: ".$row[1]."<br>\n";
}
mysql_free_result ($result);
?>

Verwijderd

Topicstarter
Ik ben nog niet goed in PHP maar ik doe nu:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if ($submit) { 
$kolom = "text";
$sort = "title, ID"; 
include('./config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
$result = mysql_db_query ("SELECT * FROM $zoekin WHERE $kolom LIKE '%$trefwoord%' ORDER BY $sort"); 
while ($row = mysql_fetch_array ($result)) {
echo "$result";
}

}
?>

Geen error maar ook geen resultaat

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Zo te zien gaat de query dan nu wel goed, van PHP heb ik echter geen kaas gegeten dus zal je mischien naar voorbeelden op de GoT moeten gaan zoeken.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
verander $sort eens in een ander woord..... bv. $rangschik

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


Verwijderd

als je mysql_select_db() doet kan je je query aanroepen via:

mysql_query($sqlstring)

bij mysql_db_query() MOET je ook nog de database aangeven.

De $result die je op ut scherm zette (Resource #id 2) is dus gewoon een verwijzing naar de recordset die je terugkrijgt.

gebruik na het uitvoeren van de query eens:

echo mysql_error()."<br>";

Verwijderd

Topicstarter
Yeah eindelijk het werkt :)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
 <?
if ($submit) { 
$kolom = "title";
$sort = "ID"; 
include('./config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
$select="SELECT * FROM $zoekin WHERE $kolom LIKE '%$trefwoord%' ORDER BY ID"; 
$query = mysql_query($select); 
while ($list = mysql_fetch_object($query)) { 

echo "$list->title<br>"; 

}


}
?>

Thx guys :P
Pagina: 1