login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zoeken in db (Opgelost)

Offline jvuz - 08/03/2007 15:18
Avatar van jvuzNieuw lid Hallo,

met volgend script wil ik iets opzoeken in de db. De tabel is opgemaakt met fulltext op title en article.

Als ik het volgende doe

http://www.plaatscode.be/4518/

Dan krijg ik zelfs geen formulier meer te zien. De volgende error daarentegen wel:

Parse error: parse error in c:\program files\easyphp1-8\www\eindwerk\search.php on line 15

19 antwoorden

Gesponsorde links
Offline Rik - 08/03/2007 15:22
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je bent in ieder geval een ' vergeten aan het einde van je query.

Verder zie ik geen fouten...
Offline jvuz - 08/03/2007 15:24 (laatste wijziging 08/03/2007 15:28)
Avatar van jvuz Nieuw lid Ik krijg nog altijd de Parse error: parse error in c:\program files\easyphp1-8\www\eindwerk\search.php on line 15

Je bedoelde de ' op het einde van AGAINST ('$keyword')?

Edit: OK, de ( en ) kwamen niet overeen. Nu wel. Maar als ik iets invul, en waarvan ik zeker ben dat het erin staat, krijg ik dit:

Notice: Undefined index: title in c:\program files\easyphp1-8\www\eindwerk\search.php on line 15
All fields need to be filled in.
Hit the "back" button of your browser en fill in all the fields.

Dit is nu mijn code.

http://www.plaatscode.be/4520/
Offline marten - 08/03/2007 15:28
Avatar van marten Beheerder http://www.plaatscode.be/4519/
Offline jvuz - 08/03/2007 15:35
Avatar van jvuz Nieuw lid Code 4519 bevatte nog probleembjes met ( en ). In 4520 zijn die opgelost, maar ik krijg nog altijd die ene foutmelding, na het invoeren. (Zie vorig bericht na edit)
Offline Rik - 08/03/2007 15:37 (laatste wijziging 08/03/2007 15:37)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je gebruikt $_POST['title'] terwijl title niet wordt meegestuurd met het formulier, moet dat niet $_POST['keyword'] zijn?
Offline jvuz - 08/03/2007 15:41
Avatar van jvuz Nieuw lid Bedankt, maar nu krijg ik

Warning: mysql_query(): Access denied for user 'ODBC'@'localhost' (using password: NO) in c:\program files\easyphp1-8\www\eindwerk\search.php on line 17

Warning: mysql_query(): A link to the server could not be established in c:\program files\easyphp1-8\www\eindwerk\search.php on line 17
Access denied for user 'ODBC'@'localhost' (using password: NO)
Offline Brix - 08/03/2007 15:43
Avatar van Brix Nieuw lid Misschien moet je root gebruiken in je config.php ;)
Offline Rik - 08/03/2007 15:54
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je moet nog wel connectie maken met de database he? 
Offline jvuz - 08/03/2007 18:49
Avatar van jvuz Nieuw lid Maar die heb ik gemaakt (dacht ik toch).
Hier is het bestand waarin het bovenstaande script (search.php) include

http://www.plaatscode.be/4524/

Of ben ik hier iets vergeten?
Offline escoball - 08/03/2007 18:54
Avatar van escoball Lid http://www.plaatscode.be/4520

hier zie ik nergens een tekstveldje met de naam: title.

hoort dat? of..
Offline jvuz - 08/03/2007 19:03
Avatar van jvuz Nieuw lid Nee, dat moet keyword zijn. Dat heb ik al aangepast bij mij. Blijkbaar nog niet in het opgestuurde bestand.
Offline escoball - 08/03/2007 19:13 (laatste wijziging 08/03/2007 19:13)
Avatar van escoball Lid ik snap denk ik waarom het fout was, je had
  1. <?php
  2. if(!isset($_POST['submit'])) {
  3. ?>


ik weet niet of dat goed is ik heb het een beetje bewerkt ik hoop dat hij het nu doet.

klik: http://www.plaatscode.be/4526/
Offline jvuz - 09/03/2007 08:15 (laatste wijziging 12/03/2007 13:31)
Avatar van jvuz Nieuw lid Dan krijg ik dit:

Notice: Undefined index: keyword in c:\program files\easyphp1-8\www\eindwerk\search2.php on line 15
All fields need to be filled in.
Hit the "back" button of your browser en fill in all the fields.

Edit: Als ik
  1. require ("connect.php");
toevoeg, krijg ik geen foutboodschap meer dat er geen connectie is, maar ik krijg ook geen resultaten te zien. :/

Edit2: Als ik wat nieuwe artikels bijmaak, krijg ik wel een resultaat te zien, maar ik krijg dan enkel het resultaat. De layout van de site is weg. Moet ik die terug in de echo plaatsen of is er nog een andere manier?

Edit3: OK, het is me gelukt. Ik had het eerst gedaan via een include en daarin werd nogmaals verwezen naar search.php. Daardoor kreeg ik meerdere keren de layout. Nu heb ik eigenlijk een andere vraag. Het is de bedoeling dat de resultaten in de vorm van een url komen, nu, dat is niet zozeer het probleem denk ik, maar hoe zorg ik ervoor dat als ik op die link klik, ik het volledige resultaat krijg, dus title en article. Is daar een speciale manier voor nodig. Klopt het dat ik de variabelen dan moet meenemen naar de andere pagina en is dat mogelijk?

Edit4:Sorry, ik dacht dat het probleem opgelost was, maar nu heb ik op de index pagina tweemaal de layout. Kan iemand me misschien helpen hiermee?

Edit5: Uiteindelijk is het me dan toch gelukt. Nu heb ik nog een ander probleem. Ik krijg als resultaat de titel en het id nummer in link vorm. Maar nu is het de bedoeling om, als ik op de link klik, dat het naar een pagina gaat, waar ik de titel, het id-nummer en het artikel zelf kan lezen. Hoe kan ik dit verwezenlijken? Moet ik daarvoor iets in de link plaatsen, ...
Offline Chupskie - 12/03/2007 13:39
Avatar van Chupskie MySQL beginner Ja in principe hoef je alleen maar het id in de link mee te sturen.
Daarna kun je op de volgende pagina, met een simpele:
SELECT * WHERE id = '".$_GET['id']."' or die mysql_error;
de rest van de gegevens uitlezen.

Is dit wat je bedoeld, of begrijp ik je verkeerd?
p.s. natuurlijk wel ff een aantal controlles erop zetten dan he.;-)
Offline jvuz - 12/03/2007 13:43
Avatar van jvuz Nieuw lid Ja, dat is wat ik bedoel.

Bedoel je zo?

  1. <?php
  2. }
  3. elseif(trim($_POST['keyword']) <> "" ) {
  4. $keyword=$_POST['keyword'];
  5. $res = mysql_query("SELECT ID, title FROM articles WHERE MATCH (title,article) AGAINST ('" .$keyword. "')") or die(mysql_error());
  6. include("layout1.php");
  7. while($r = mysql_fetch_array($res)) {
  8. echo '<a href="'.$res['ID'].'">' . $res['ID']. '&nbsp;' . $r['title'] . '</a>'.'<br />';
  9. }include("layout2.php");
  10. } else {
  11. // some fields are empty
  12. echo("All fields need to be filled in.<br />");
  13. echo("Hit the \"back\" button of your browser en fill in all the fields.<br />");
  14. include("layout2.php");}
  15.  
  16. ?>


Maar als het ID in de link staat, kan ik die ID er dan uithalen via een gewone query, want de ID staat in de link, niet in de code.
Offline Chupskie - 12/03/2007 13:45
Avatar van Chupskie MySQL beginner Dit: $res['ID'] zal zoiezo niet werken. Maak daar maar $r['ID'] van, in jou geval.

Wat wil je dat in de link wordt meegegeven, het opgegeven keyword, of het id, waarmee het keyword in het db staat opgeslagen?
Offline jvuz - 12/03/2007 13:55 (laatste wijziging 12/03/2007 14:05)
Avatar van jvuz Nieuw lid In de link eigenlijk enkel de id, zodat ik aan de hand van het id de rest kan opvragen. Alvast bedankt. Ik zal al wat verder 'klooien', maar ik denk dat ik al heel wat verder ben nu. Hartelijk dank!

En wat bedoel je met controles?
Offline Chupskie - 12/03/2007 14:04
Avatar van Chupskie MySQL beginner [B]Bijvoorbeeld[/B], zoiets. Even snel getypt.

  1. <?php
  2. if(isset($_GET['id']) && !empty($_GET['id'])){
  3. $query = "SELECT * FROM tabel WHERE id = '".$_GET['id']."' ";
  4. $sql = mysql_query($query) or die (mysql_error());
  5.  
  6. $array = mysql_fetch_array($sql);
  7. }else{
  8. //hier het formpje
  9. }
  10. ?>
Offline jvuz - 12/03/2007 18:43
Avatar van jvuz Nieuw lid Het werkt! Bedankt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.232s