Hallo,
ik maak gebruik van een zoek-script om gebruikersnamen in een database te kunnen zoeken. Maar ik wil graag in al mijn databases tegelijk kunnen zoeken.
Dit is het script:

<?php
include("header.php");
$q = $_POST['q'];
?>

<form action="zoeken.php" method="POST" name="zoeken">
<p>
	Vul de voornaam in van de persoon die je zoek.<br>
	<input type="text" name="q" value="<?php echo $q; ?>">
	<input name="submit" type="submit" value="Zoek"><br>
	<a href="zoeken.php" title="wis de resultaten">Resultaten wissen</a>
</p>
</form>

<?php

if(isset($_POST['q']))
	{
	if ($q == "")
		{
		$error .= "Je hebt geen zoekterm ingevuld<br>";
		}

	if (!isset($error))
		{
		$connect = mysql_connect("$host", "$gebruikersnaam", "$wachtwoord") or die(mysql_error());
		mysql_select_db("***") or die(mysql_error());

		$query = "SELECT * FROM `login` WHERE `name` REGEXP '" . $q . "'"; 

		$result = mysql_query($query) or die(mysql_error());

		$count = mysql_num_rows($result);

		if($count > 0)
			{
			while($row = mysql_fetch_assoc($result))
				{
				echo "<p><a href='http://www.djstarfish.nl/berkel/11fliert/verhalen.php?leerling_id=". $row['id'] ."' title'Ga naar de persoonlijke pagina van ". $row['name'] ."' target='blank'>". $row['name'] ."</a><br>";
				echo "<a href='http://www.djstarfish.nl/berkel/11fliert/verhalen.php?leerling_id=". $row[''] ."' title'Ga naar de de klas ". $row[''] ."' target='blank'>". $row[''] ."</a>";
				}
			}

		else
			{
			echo "<p>Er is geen overeenkomstige naam -$q- in de database gevonden</p>";
			}

		mysql_free_result($result);
		mysql_close($connect);
		}
	else
		{
		echo "
		<p>".$error."</p>";
		}
	}

include("footer.php");
?>


Wie kan me helpen
Ik snap je vraag van alle databasen niet helemaal.. Zie ook ook maar een query voor 1 tabel..

Overigens ben je redelijk netjes met isset (), zou overigens gaan voor if ( !empty ( $_POST['q'] ) ) ( tenzij je wilt zoeken op ''.

Echter vervolgens ga je voor if ($q == "") die kent hij niet ( of heb je globals aan? )

De if ( $q == "" ) zou je derhalve meteen afvangen met de "empty()"

Ik weet het dit zal geen antwoord geven op je vraag, maar hopelijk wel een beetje op weg helpen..

Wat bedoel je met dat hij ($q == "") niet kent, ik bedoel er mee dat, als q leeg is, dat hij dan een error geeft. Het werkt prima.

Mijn vraag is, hoe ik in meerdere databaseses kan zoeken, maar ik ben stom geweest, en heb gewoon niet nagedacht. Doordat je zei dat je maar één query zag, bedacht ik dat ik natuurlijk meerder query's moet maken!

Mischien is het wél mogelijk om in alle databases op de server te zoeken?
Inderdaad meerdere query's.

Bedoel dat de variabele $q onbekend is ( tenzij die van tevoren is gedefined ) en dat hij daar een error op zou geven.
Ja, als iemand niks heeft ingevuld in het veld, dan geeft ie een error, namelijk dat je wat in moet vullen...

Ik ben nu bezig om een tweede query te maken, maar moet ik dan de hele query opnieuw doen, vanaf mysql_select_db() tot mysql_free_result()?

Reageren