19. juni 2006 - 12:16
Der er
2 kommentarer
Vælge data fra to tabeller og udskrive dem med samme variable!
Hej eksperter,
Hvad er det lige der skal ændres i mit sql kald, så dette stykke kode kommer til at virke?
Så kolonnen Titel skal udskrives som titel, beskrivelse, som beskrivelse og Kode_ID/ID som ID.
Tabeller:
koder:
- Titel
- Beskrivelse
- Kode_ID
tutorial:
- Titel
- Beskrivelse
- ID
Source:
$result_text = mysql_query("select koder.titel and tutorial.titel as Titel, koder.beskrivelse and tutorial.beskrivelse as Beskrivelse, koder.ID and tutorial.Kode_ID as ID from koder, tutorial where koder.Godkendt='A' or tutorial.Godkendt='A'") or die(mysql_error());
while($row = mysql_fetch_array($result_text)){
echo "Titel: ".$row['Titel']."<br>";
echo "Beskrivelse: ".$row['Beskrivelse']."<br>";
echo "ID: ".$row['ID']."<br><br>";
}
Den understående kode søger kun i tabellen koder, men den skal også søge i tutorial, som jeg skrev oven for. Hvordan vil du skrive det, hvis der skal være to kald?
Source:
<form action="index.php?H=Home&U=9" method="POST">
<table width="100%"><tr><td valign="center">
<input type="text" name="sSearch" value="<?php if(isset($_POST['sSearch'])) echo $_POST['sSearch'];?>" style="width: 85%">
<input type="submit" name="search" value="Søg" class="knap" style="width:35px"> <input type="button" name="help" value="?" class="knap" style="width:15px"onclick="window.open('pop-up.php?Titel=Søgning&Tekst=For at søge paa mere end et ord skal du lave et MELLEMRUM imellem ordene!<br><br>Du kan ikke bruge X som seperator ved søgning på flere ord!','Eksempel','width=400,height=250');"><br>
</td></tr></table></form>
<?php
if(!empty($_POST['sSearch'])) {
$search_org=$_POST['sSearch'];
$search_titel="LOWER(Titel) LIKE '%".str_replace(" ", "%' OR LOWER(Titel) LIKE '%", $search_org)."%'";
$search_beskrivelse = "LOWER(Beskrivelse) LIKE '%".str_replace(" ", "%' OR LOWER(Beskrivelse) LIKE '%", $search_org)."%'";
$search_kode="LOWER(Kode) LIKE '%".str_replace(" ", "%' OR LOWER(Kode) LIKE '%", $search_org)."%'";
$query=mysql_query("SELECT * FROM koder WHERE $search_titel OR $search_beskrivelse OR $search_kode AND Godkendt = 'Y'") or die(mysql_error());
if(mysql_num_rows($query)>0) {
$tCount=0;
$oOutput="<table width='100%' border='0' cellspacing='0' cellspan='0'>";
$search=explode(" ",$search_org);
while($row = mysql_fetch_array($query)) {
$iCount=0;
$Beskrivelse=$row['Beskrivelse'];
for($k=0; $k<count($search); $k++) {
$reg_exp1="/^(|.*\W{1})".strtolower($search[$k])."(\W{1}.*|)$/";
if(preg_match($reg_exp1, strtolower($row['Beskrivelse']))) {
$iCount+=substr_count(strtolower($row['Beskrivelse']),$search[$k]);
$Beskrivelse=str_replace(strtolower($search[$k]),"<b>".strtolower($search[$k])."</b>",$Beskrivelse);
$iCount+=substr_count(strtoupper($row['Beskrivelse']),$search[$k]);
$Beskrivelse=str_replace(strtoupper($search[$k]),"<b>".strtoupper($search[$k])."</b>",$Beskrivelse);
$iCount+=substr_count(ucwords($row['Beskrivelse']),$search[$k]);
$Beskrivelse=str_replace(ucwords($search[$k]),"<b>".ucwords($search[$k])."</b>",$Beskrivelse); }
if(preg_match($reg_exp1, strtolower($row['Titel']))) {
$iCount+=substr_count(strtolower($row['Titel']), $search[$k]); }
if(preg_match($reg_exp1, strtolower($row['Kode']))) {
$iCount+=substr_count(strtolower($row['Kode']), $search[$k]); } }
if($iCount!=0) {
$oOutput.="<tr>\n<td class='tekst'><b>".$row['Titel']."</b><br>\n";
$oOutput.=$Beskrivelse."<br>\n";
$oOutput.="<a href='index.php?H=Koder&K=".$row['ID']."'>Gå til koden »</a></td>\n</tr>";
$tCount+=$iCount; } }
if($tCount>0) {
$oOutput.="<tr>\n<td class=\"tekst\">Der blev fundet ialt ".$tCount." matches på : ".$search_org."</td>\n</tr></table>";
} else {
$oOutput="<table width='100%' border='0' cellspacing='0' cellspan='0' class=\"tekst\"><tr><td>Der var ingen matches på : ".$search_org."</td></tr></table>";
}
} else {
$oOutput="<table width='100%' border='0' cellspacing='0' cellspan='0' class=\"tekst\"><tr><td>Der var ingen matches på : ".$search_org."</td></tr></table>";
}
echo $oOutput;
}
if(!isset($oOutput)){
echo"Du skal intaste et søgeord.";
}
?>
</body>
</html>