Hallo,

ik heb wat problemen met onderstaande code. Hij geeft de resultaten wel weer maar geeft daarbij de volgende melding:

Notice: Undefined index: in /var/www/vhosts/bla.nl/httpdocs/1.php on line 36

de desbetreffende regel is:

<?php
$score[$row['categorie']] += $row['occurrences'];
?>

en dit is de volledige code


<?php

$zoekterm = $_GET['zoekterm'];
$zoekterm_array = explode(" ", $zoekterm);

$score = array();
foreach($zoekterm_array as $zoekterm)
{

$result = mysql_query("SELECT *,
COUNT(*) AS occurrences FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = \"$zoekterm\"
GROUP BY p.page_id
ORDER BY occurrences DESC
LIMIT 0, 5" );

for( $i = 1; $row = mysql_fetch_array($result); $i++ )
{
$score[$row['categorie']] += $row['occurrences'];
}
}

if(count($score) > 0)
{
arsort($score);

while ($element = each($score))
{
echo $element[ "key" ];
echo " - ";
echo $element[ "value"];
echo " ";
}
}
else
{
//geen resultaten gevonden
}
?>

iemand een idee wat er met bovenstaande code mis is ?


PROBLEEM 2

met behulp van onderstaande code haal ik "categorie" uit de resultaten naar boven, echter wil ik naast categorie ook "omschrijving" en "link" uit de resultaten halen.

<?php
$score[$row['categorie']] += $row['occurrences'];
?>

Maar het lukt me niet om deze dan goed naar het scherm te schrijven.

het moet dus iets worden als:

echo $element[ "categorie" ];
echo $element[ "omschrijving" ];
echo $element[ "link" ];


iemand een idee hoe ik dit voor elkaar kan krijgen ?
nou je wil het niet geloven, maar nu ik bovenstaande code in de site integreer krijg ik weer een andere foutmelding namelijk :

Notice: Undefined index: max in /var/www/blabla/test.php on line 16
Notice: Undefined index: start in /var/www/blabla/test.php on line 17


dit is de code en start en max zouden gewoon moeten werken aangezien ik daar niets aan veranderd heb en het daarvoor prima werkte....het zit hem ergens in de limit, maar ik heb geen idee wat ik verkeerd doe.

ik heb ook geprobeerd om de limit direct in beide queries te zetten, maar dat gaf hetzelfde resultaat.

de foutmelding krijg ik overigens wel weg met de isset functie, maar hij pakt het gewoonweg niet helemaal goed, hij vind de zoekwoorden niet indien hij naar een volgende pagina gaat

Iemand een idee wat ik verkeerd doe ?

<?php

$extrazoek = $_GET['extrazoek'];
$zoekwoorden = $_GET['zoekterm'];

if(is_numeric($_GET['max'])) $max = $_GET['max'];
if(is_numeric($_GET['start'])) $start = $_GET['start'];

if (empty($max)) $max = 6;
if (empty($start)) $start = 0;

$end = $start + $max;
$prev = $start - $max;
$next = $end;

$starttijd = microtime();

$zoekterm = explode(" ", $zoekwoorden);

switch ($_GET['extrazoek']) {
case "zoekalles":
$query = "SELECT *, COUNT(*) AS occurrences
FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = \"$zoekterm[0]\"
GROUP BY p.page_id
ORDER BY occurrences DESC";
break;

case "fietsen":
$query = "";
break;
}

for($i = 1;$i < count($zoekwoorden); $i++)
{
switch ($_GET['extrazoek']) {
case "zoekalles":
$query .= "SELECT *, COUNT(*) AS occurrences
FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = \"$zoekterm[$i]\"
GROUP BY p.page_id
ORDER BY occurrences DESC";
break;

case "fietsen":
$query .= " ";
break;
}
}

$res = mysql_query($query) or trigger_error(mysql_error());
$count = mysql_num_rows($res);

$query .= " LIMIT $start, $max";

$res = mysql_query($query) or trigger_error(mysql_error());

$count = mysql_num_rows($res);

if ($count == 0)
{
//geen pagina´s gevonden
}
else
{
//hier komen de resultaten
}
?>
hij laat nu overigens wel de eerste 6 resultaten zien, maar als ik op "volgende" of vorige klik dan verschijnt er niets !!

Normaliter gaat hij indien men op volgende drukt door naar de volgende 6 resultaten.

als ik nu op volgende druk zie ik dat hij de zoekterm niet meer pakt, in plaats daarvan zet hij : zoekterm=Array

iemand een idee hoe ik dit op kan lossen ?

EDit :je hebt helemaal gelijk zal voortaan reacties editen indien ik de laatste persoon ben die reageer. mijn excuses.

gr
Offtopic
Robin, even de Bump regels door lezen. ;) Je kan je berichten aanpassen met

Reageren