Zoeken in meerdere tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

Lauren Zonneveld

Lauren Zonneveld

19/10/2009 15:17:00
Quote Anchor link
Volgens mij voer je de query als argument in bij mysql_num_rows en niet het resultaat van je query...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_num_rows(mysql_query($sql));
 
PHP hulp

PHP hulp

08/11/2024 19:16:38
 
Jaap V

Jaap V

19/10/2009 15:19:00
Quote Anchor link
aangepast,
maar ik krijg zelfs nog meer errrors

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
Notice: Undefined variable: cat in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 34

Notice: Undefined variable: cat in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 41

Notice: Undefined variable: cat in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 47

Notice: Undefined variable: log in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 47

Notice: Undefined variable: tabellen in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 55

Notice: Undefined variable: where in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 56

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 65
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' WHERE '' LIMIT 0, 3 ORDER BY l.id, c.id' at line 2
 
- SanThe -

- SanThe -

19/10/2009 15:46:00
Quote Anchor link
Al die vars zijn blijkbaar onbekend.
 
Jaap V

Jaap V

20/10/2009 08:49:00
Quote Anchor link
dat had ik er zelf ook nog uitgehaald,
ik kreeg zo deze code maar volgens mij klopt hij helemaal niet...

---edit--

ik heb nu deze code:

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

include('gegevens.php');
 
 //ff kijken of er op verzenden gedrukt is...
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

//variable zoekterm aanmaken waarin de zoekterm staat + nog wat beveiliging
    $zoekterm = mysql_real_escape_string(addslashes(trim($_POST['zoekterm'])));
 
//even checken of er wel genoeg karakters zijn ingevoerd. Zoniet, maar de variable error aan met een boodschap
    if(strlen($zoekterm) < 1)
    {

            $error = '<p>Je moet wel een zoekterm invoeren.</p>';
                //hier checken we dus of de variable error bestaat
            if(isset($error))
        {

                //ja hij bestaat... echo'en met die hap
            echo $error;
        }    
    }


//wanneer er GEEN error is en er dus meerdere tekens zijn opggegeven
    else
    {
//de query uitvoeren
//de query maken

if(isset($_POST['Categorie'])){$cat = true;}
if(isset($_POST['Logboek'])){$log = true;}

// beide
if($cat AND $log)
{

$tabellen = "categorie, logboek ";
$where = "Categorie LIKE '%$zoekterm%'
OR Omschrijving LIKE '%$zoekterm%' "
;
}

// alleen categorie
if($cat AND !$log)
{

$tabellen = "categorie";
$where = "Categorie LIKE '%$zoekterm%' ";
}

// alleen logboek
if(!$cat AND $log)
{

$tabellen = "logboek";
$where = "Omschrijving LIKE '%$zoekterm%' ";
}


// samenvoegen
$sql = "SELECT *
FROM "
. $tabellen . "
WHERE "
. $where . "
ORDER BY l.id, c.id
"
;

  
    
    
    
    $aantal = mysql_num_rows(mysql_query($sql))  or die(mysql_error());
    echo ($aantal == 1) ? $aantal.' resultaat gevonden <br><br>' : $aantal.' resultaten gevonden <br><br>';
        echo "de opgegeven zoekterm was: <b> $zoekterm </b><br><br>";
        
        //en de while loop wordt gestart om alles uit de database te laten zien
        echo '<hr size="1" color="black">';
        
        
while($row = mysql_fetch_array($sql))
    {

    $sql1 = mysql_query("SELECT * FROM relatie WHERE id = '".$row['c_id']."'") or die(mysql_error());
        $Categorie = $row['Categorie'];
        $Date = $row['Date'];
        $id      = $row['id'];
        $Omschrijving = substr($row['Omschrijving'], 0, 15);
        
while($row = mysql_fetch_array($sql1))
        
        echo '<table border="1" width="300"><tr><th width="60">Naam: </th><td>'.$row['Naam'].'</td></tr><br>';
        echo '<th>Datum: </th><td>'.$Date.'</td></tr><br>';
        echo '<th>Categorie: </th><td><a href="res_categorie.php?id='.$id.'">'.$Categorie.'</a></td></tr><br>';
        echo '<th>Omschrijving: </th><td>'.$Omschrijving.'</td></tr></table><br><hr size="1" color="black">';
    }
    
    }    
}

//er is nog niet op verzenden gedrukt. Show het formulier maar!!
else
{ ?>

<form action="categorie.php" method="post">
  <INPUT TYPE='checkbox' NAME="Categorie" checked>Categorie&nbsp;
<INPUT TYPE='checkbox' NAME="Omschrijving_cat" checked>Categorie omschrijving<BR>
<INPUT TYPE='checkbox' NAME="Logboek"      checked>Logboek&nbsp;
<INPUT TYPE='checkbox' NAME="Omschrijving_log"      checked>Logboek omschrijving<P>

<input type="text" name="zoekterm"><br>
  <input type="submit" value="Zoeken">
  </form>

  <br><br>
    <a href="javascript:history.go(-1);">&laquo; Ga terug</a>
  <?php
}
?>



        


en deze error krijg ik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 64
Column 'Omschrijving' in where clause is ambiguous
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
 
Niels K

Niels K

20/10/2009 09:52:00
Quote Anchor link
Je query klopt dus nog steeds niet.. Ook vraag ik me af of dit kan

$aantal = mysql_num_rows(mysql_query($sql)) or die(mysql_error());

$sql = "SELECT *
FROM " . $tabellen . "
WHERE " . $where . "
ORDER BY l.id, c.id
";

Zet hier eens mysql_query voor en afsluiten met or die (mysql_error());
En dan moet je hem bij $aantal weghalen
 
- wes  -

- wes -

20/10/2009 10:00:00
Quote Anchor link
Blijft leuk, leken die leken tips geven
 
Jaap V

Jaap V

20/10/2009 10:13:00
Quote Anchor link
@niels,
wat bedoel je met die info die je gaF?
waar moet ik dat bijvoegen?

toch niet bij die sql?
want maak zo altijd sql's en ze werken gewoon...

@wes,

wat bedoel je met leken die leken tips geven?
 
Jaap V

Jaap V

20/10/2009 10:36:00
Quote Anchor link
ik heb nu de code wat aangepast,

heb er dit van gemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sql
= mysql_query("SELECT *
FROM "
. $tabellen . "
WHERE "
. $where . "
ORDER BY id
"
);
?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 64
Query was empty


query was empty,
hoe kan hij nu leeg zijn ? :O
 
Jaron T

Jaron T

20/10/2009 11:07:00
Quote Anchor link
post eens het resultaat van deze dingen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
# leer debuggen !
echo $sql."<br />";
echo $tabellen."<br />";
echo $where."<br />";
?>
 
Jaap V

Jaap V

20/10/2009 11:24:00
Quote Anchor link
ik heb die code geplaatst...
en ik krijg nu dit resultaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
categorie, logboek
Categorie LIKE '%ip%' OR Omschrijving LIKE '%ip%'

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 66
Query was empty


had dit stukje code ook nog even toegepast,
maar werkt niet helemaal,
terwijl hij in mijn ogen hoort te kloppen...
geeft geen fout aan,
en gewoon een witte pagina...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if($aantal == 0)
    {
echo "Er zijn geen resultaten gevonden,<br> Probeer een andere zoekterm."
    }Else{
    echo ($aantal == 1) ? $aantal.' resultaat gevonden <br><br>' : $aantal.' resultaten gevonden <br><br>';
}
      
?>
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
 
Jaron T

Jaron T

20/10/2009 11:26:00
Quote Anchor link
'%ip%

waar haalt ie ip dan vandaan? is dat een DEFINE(constant)? of een STRING($)
Gewijzigd op 01/01/1970 01:00:00 door Jaron T
 
Jaap V

Jaap V

20/10/2009 11:31:00
Quote Anchor link
ip komt van een zelf opgegeven zoek
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
'%$zoekterm%'


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="zoekterm"><br>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$zoekterm = mysql_real_escape_string(addslashes(trim($_POST['zoekterm'])));
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
 
Jaap V

Jaap V

22/10/2009 14:22:00
Quote Anchor link
eindelijk kan ik zoeken in meerdere tabellen en categorieën...

maar nu zit ik nog steeds met het probleempje van de checkboxxen...
ik moet dus mijn query's gaan opsplitsen?
wie kan mij hiermee helpen?

dit 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
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?
error_reporting(E_ALL);
ini_set('display_errors', 1);

include "gegevens.php";  
//zoekmachine
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
  



  $naamvantekstveld=$_POST['naamvantekstveld'];
  // querys, hier plaats je dus je querys die in je tabellen zoeken
  if (isset($_POST['Categorie'])) {
    $query1="SELECT * FROM categorie WHERE Categorie LIKE '%$naamvantekstveld%' OR Omschrijving_cat LIKE '%$naamvantekstveld%'ORDER BY Categorie ASC";
  
  
   if (isset($_POST['Logboek'])) {
    $query2="SELECT * FROM `logboek` WHERE Omschrijving_log LIKE '%$naamvantekstveld%' ORDER BY Omschrijving_log ASC";
    
    
    // resultaten ophalen
  $sql1 = mysql_query($query1) or die (mysql_error());
  $aantal1=mysql_num_rows($sql1);
  $sql2 = mysql_query($query2) or die (mysql_error());
  $aantal2=mysql_num_rows($sql2);

  
  echo "de opgegeven zoekterm was: <b> $naamvantekstveld </b><br><br>";
  
  // aantal resultaten
  $aantal = $aantal1 + $aantal2 ;
  if ($aantal1 == 0 AND $aantal2 == 0 ) {
    echo "Er zijn <B>geen</B> resultaten gevonden";
  }
else {
    echo "$aantal gevonden resultaten:<BR>";
// hier resultaten
echo "<b>$aantal1 gevonden categorieén:</b>";

// query 1 zoekt in Categorie
while ($row = mysql_fetch_array($sql1)) {

        $sql4 = mysql_query("SELECT * FROM relatie WHERE id = '".$row['c_id']."'") or die(mysql_error());
        $Categorie = $row['Categorie'];
        $Date = $row['Date'];
        $id      = $row['id'];
        $Omschrijving = substr($row['Omschrijving_cat'], 0, 15);
        
        while($row1 = mysql_fetch_array($sql4))
      
        echo '<table border="1" width="300"><tr><th width="60">Naam: </th><td>'.$row1['Naam'].'</td></tr><br>';
        echo '<th>Datum: </th><td>'.$Date.'</td></tr><br>';
        echo '<th>Categorie: </th><td><a href="res_categorie.php?id='.$id.'">'.$Categorie.'</a></td></tr><br>';
        echo '<th>Omschrijving: </th><td>'.$Omschrijving.'</td></tr></table><br>';
 }
 }

// einde query 1
 echo '<hr size="1" color="black">' ;
        echo "<br>";
        echo "<b>$aantal2 gevonden logboeken:</b><br>";
//query 2
while ($row = mysql_fetch_array($sql2)) {

        $sql4 = mysql_query("SELECT * FROM relatie WHERE id = '".$row['l_id']."'") or die(mysql_error());
        $Date = $row['Date'];
        $Omschrijving = substr($row['Omschrijving_log'], 0, 15);
        
while($row1 = mysql_fetch_array($sql4))
      
        echo '<table border="1" width="300"><tr><th width="60">Naam: </th><td>'.$row1['Naam'].'</td></tr><br>';
        echo '<th>Datum: </th><td>'.$Date.'</td></tr><br>';
        echo '<th>Omschrijving: </th><td>'.$Omschrijving.'</td></tr></table>';
 }

        echo '<hr size="1" color="black">';
}

        // einde query 2
  
      
}
 
 }

 
 
 else{
?>

<FORM ACTION="categorie.php" METHOD="post">
<center>Zoeken naar: <br>
<INPUT TYPE=CHECKBOX NAME="Categorie" checked>Categorie&nbsp;
<INPUT TYPE=CHECKBOX NAME="Logboek"  checked>Logboek <P>

<INPUT TYPE="text" NAME="naamvantekstveld"> -
<INPUT TYPE="submit" NAME="Zoek" VALUE="Zoek"></center>
</FORM>
<?php
}

//einde zoekmachine

?>


het script werkt wel,
maar zodra ik een checkbox uitvink,
dan krijg ik gewoon een witte pagina...
zonder error melding...
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
 
Jaap V

Jaap V

22/10/2009 15:31:00
Quote Anchor link
--opgelost--
 

Pagina: « vorige 1 2 3



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.