kan man udvide dette script til at søge i flere tabler mysql
hvordan for man dette script udvidet til at søge i flere tabler mysql:med tablerne:
fedtfattige
hovedretopskrift
nemmekage
orientalske
pastaopskrifter
vegetar
tablerne er opbygget på den samme måde her er et eksempel:
CREATE TABLE `vegetar` (
`id` int(11) NOT NULL auto_increment,
`titel` varchar(100) NOT NULL default '',
`name` varchar(60) NOT NULL default '',
`email` varchar(60) NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`portioner` varchar(24) NOT NULL default '',
`ingredienser` text NOT NULL,
`fremgangsmaade` text NOT NULL,
`tilbehoer` varchar(255) NOT NULL default '',
`message` text NOT NULL,
`parent` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;
mit søge script:
<form action="soeg.php">
<table><tr>
<td>Søgeord:<br><input type="text" name="q"> </td>
<td>Sorter efter:<br><select name="sort"><option value="titel">Opskrifter</option><option value="name">Forfatter</option><option value="id">Dato</option></select> </td>
<td>Sortering:<br><select name="order"><option value="desc">Faldende [z-a]</option><option value="asc">Stigende [a-z]</option></select></td>
</tr></table>
<input type="submit" value="Udfør">
</form>
<?php
if (isset($_GET['q'])) {
echo '<hr>';
echo '<h2>Resultater af din søgning på: "'.$_GET['q'].'"</h2>';
include('config.php');
$q = $_GET['q'];
$sort = $_GET['sort'];
$order = $_GET['order'];
$query = mysql_query("SELECT id,titel,name,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM opskrift WHERE parent=0 AND (titel LIKE '%$q%' OR message LIKE '%$q%') ORDER BY $sort $order LIMIT $offset,$range") or die(mysql_error());
if (mysql_num_rows($query) == 0){
echo 'Ingen resultater af din søgning!<br>';
} else {
echo '<table id="list"><tr>';
echo '<th width="40%">Opskrifter</th><th width="30%">Forfatter</th><th width="30%">Dato</th><th nowrap>Indlæg</th>';
echo '</tr>';
while($row = mysql_fetch_assoc($query)) {
echo '<tr>';
echo "<td width='40%'><a href='laes.php?id=$row[id]'>$row[titel]</a></b></td>";
echo '<td width="30%">'.$row['name'].'</td>';
echo '<td width="30%">'.$row['date'].'</td>';
echo '<td nowrap>'.mysql_result(mysql_query("SELECT COUNT(*) FROM opskrift WHERE parent=$row[id]"),0).'</td>';
echo '</tr>';
}
echo '</table>';
}
echo '<br>';
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM opskrift WHERE parent=0 AND (titel LIKE '%$q%' OR message LIKE '%$q%')"),0);
if ($offset >= $range) {
$forrige = $offset-$range;
echo "<a href='?q=$q&sort=$sort&order=$order&offset=$forrige'>Forrige</a> | ";
} else {
echo 'Forrige | ';
}
if ($antal > $offset+$range) {
$naeste = $offset+$range;
echo "<a href='?q=$q&sort=$sort&order=$order&offset=$naeste'>Næste</a>";
} else {
echo 'Næste';
}
}
?>
skal man bare sætte dem ind i denne linie eller er det ikke nok:
$query = mysql_query("SELECT id,titel,name,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM opskrift WHERE parent=0 AND (titel LIKE '%$q%' OR message LIKE '%$q%') ORDER BY $sort $order LIMIT $offset,$range") or die(mysql_error());
og denne her:
echo '<td nowrap>'.mysql_result(mysql_query("SELECT COUNT(*) FROM opskrift WHERE parent=$row[id]"),0).'</td>';
og denne her:
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM opskrift WHERE parent=0 AND (titel LIKE '%$q%' OR message LIKE '%$q%')"),0);
og congig.php
<?php
/* indstillinger : database */
$mysql['host'] = 'localhost'; // Host til database
$mysql['username'] = 'Brugernavn '; // Brugernavn til database
$mysql['password'] = 'Kodeord '; // Kodeord til database
$mysql['database'] = 'Database'; // Database
/* indstillinger : side */
$range = 4; // Antal resultater pr. side
/* redigering ikke nødvendig herunder */
$offset = isset($_GET['offset']) ? $_GET['offset'] : 0;
mysql_connect($mysql['host'],$mysql['username'],$mysql['password']);
mysql_select_db($mysql['database']);
?>
