php/sql

  • Onderwerp starter Onderwerp starter feint
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

feint

Gebruiker
Lid geworden
3 jun 2008
Berichten
273
Ik ben een redelijke beginner in php en sql. dus we beginnen maar

Ik ben bezig met een script aan het schrijven waarbij data uit een database kan worden gehaald.

ik heb een database met hierin gegevens zoals
naam
adres
email
categorie
etc

op het moment heb ik het zo dat ik een database tabel kan selecteren zoals email. en hierbij dan een trefwoord in kan vullen zodat die alle gegevens waar die combo in voorkomt laat zien op het scherm.

nu lukt dat allemaal redelijk goed. het enige probleem is dat niet alle gegevens compleet zijn.

ik heb bijvoorbeeld bij 50 database entries een email en de rest niet. en dat staat totaal verdeeld. dus ik krijg witte regels x de entries waar geen email is ingevuld. nu vroeg ik me af of het mogelijk is om die witte regels automatisch weg te halen..

scriptje is echt totaal simpel in elkaar geschreven.
Code:
<?php
if (isset($_GET['trefwoord']) && isset($_GET['kolom']))
{
mysql_connect("localhost","username","password") or die(mysql_error());
mysql_select_db("test");

$res = mysql_query("SELECT email FROM tabel WHERE $kolom LIKE '%$trefwoord%'");


echo '
	<table>
		<tr>
			<td><b>Zoekresultaten</b></td>
		</tr>';

WHILE ($row =  mysql_fetch_assoc($res))
{
	
	echo '	<tr>
<td>';
echo " ".$row['email']. "<br/>";


echo'
</td>
		</tr>';
}
	echo '</table> ';
}
else{
echo'
<form method="GET">
	<table>
		<tr>
			<td colspan="2"><b>Zoeken in database</b></td>
		</tr>
		<tr>
			<td>Kolom:</td>
			<td>
			<select name="kolom">
			<option value="nummer">Klantnummer</option>
                    	<option value="naam">Naam</option>
			<option value="straat">Straat</option>
			<option value="huisnummer">Huisnummer</option>
			<option value="postcode">Postcode</option>
			<option value="woonplaats">Woonplaats</option>
			<option value="land">Land</option>	
			<option value="telefoon_1">Telefoon</option>
			<option value="telefoon_2">Telefoon 2</option>
			<option value="tele_fax">Fax</option>
			<option value="email">E-mail</option>
			<option value="categorie">Categorie</option>
                </select>
			</td>
		</tr>
		<tr>
		<td>Trefwoord:</td>
		<td>
			<input type="text" name="trefwoord" />
		</td>
		<tr>
			<td colspan="2"><input type="submit" value="zoeken"></td>
		</tr>
	</table>
</form>';
}
?>


hiernaast zou ik het op prijs stellen of jullie misschien tuts weten of iets dergelijks waar uitgelegd staat hoe ik gezochte entries kan exporteren naar excel of acces

alvast bedankt!:thumb:
 
Als het goed is komen lege entries niet naar voren als je zoekt op LIKE '%woord%'

Maar als je zeker wilt weten dat een leeg veld niet terug komt, kun je het aan de query toevoegen:

SELECT veld FROM tabel WHERE veld != ''
(met 2 enkele aanhalingstekens, om aan te geven dat er niets in moet staan)
-of-
SELECT veld FROM tabel WHERE !ISNULL(veld)
(als er een NULL value in het veld staat ipv een lege)

Daarnaast raad ik je aan om hier even naar te kijken, want je code is nu zo lek als een mandje...

http://www.codeproject.com/KB/database/SqlInjectionAttacks.aspx

Als je entries naar Excel wilt halen, raad ik je aan om phpMyAdmin te gebruiken, want dat kan nog een stevige klus zijn... als je het echt heel graag wilt, moet je even kijken naar CSV:

http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm


Good luck!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan