Controleren of waarde bestaat in db...

Status
Niet open voor verdere reacties.

hitme007

Gebruiker
Lid geworden
16 jun 2004
Berichten
131
Hoi, ik wil graag voordat een waarde wordt toegevoegd
controleren of deze al bestaat in de db.
Ik heb in mysql bij de kolom al de optie"unieke waarde" aangevinkt,
maar nu moet hij dat nog controleren in de code.

Ik heb het nu op deze (niet werkende :( ) manier gedaan.
PHP:
		$g = mysql_query("SELECT naam FROM latijns_geslacht WHERE categorie='" . $_SESSION['categorie'] . "' ORDER BY naam DESC") or die(mysql_error());
		while($object != mysql_fetch_object($g)){
		mysql_query("INSERT INTO latijns_geslacht (naam,categorie) VALUES ('" . slashes($_POST["geslacht"]) . "','" . slashes($_SESSION['categorie']) . "')") or die("Fout bij toevoegen geslacht");
		}

		$s = mysql_query("SELECT soort FROM latijns_soort WHERE geslacht='" . $_SESSION['geslacht'] . "' ORDER BY soort DESC") or die(mysql_error());
		while($object != mysql_fetch_object($s)){
		mysql_query("INSERT INTO latijns_soort (geslacht,soort) VALUES ('" . slashes($_SESSION['geslacht']) . "','" . slashes($_POST["soort"]) . "')") or die("Fout bij toevoegen soort");
		}

		$o = mysql_query("SELECT soort FROM latijns_ondersoort WHERE soort='" . $_SESSION['soort'] . "' ORDER BY soort DESC") or die(mysql_error());
		while($object != mysql_fetch_object($o)){
		mysql_query("INSERT INTO latijns_ondersoort (soort,ondersoort) VALUES ('" . slashes($_SESSION['soort']) . "','" . slashes($_POST["ondersoort"]) . "')") or die("Fout bij toevoegen ondersoort");
		}

Iemand tips om dit wel werkend te krijgen?
 
Zoiets?
PHP:
<? 
$check = @mysql_query("SELECT COUNT(*) FROM iets WHERE iets_anders = waarde"); 
$check_resultaat = mysql_result($check,0); 

if ($check_resultaat >= 1)
	{
		//jaja de waarde bestaat
	}else{
		//nee de waarde bestaat niet
	}
  ?>
 
COUNT(*) is traag, maak er dan dit van:
PHP:
<? 
$query = 'SELECT kolom FROM tabel WHERE kolom = waarde [b]LIMIT 0,2[/b]';
$result = mysql_query($query) or die(mysql_error()); 
  if(mysql_num_rows($result) > 0)
  {
  // De waarde komt één of meer keer voor
  }
  else
  {
  // De waarde komt niet voor
  }
?>
En de kolom die je selecteert maakt niets uit, maar je moet _iets_ in je query selecteren, dus het beste vul je hier een kolom in de snel geladen kan worden (integers).
 
Bedankt voor de reacties, maar het is niet helemaal wat ik bedoel.

De bedoeling is dat er geen 2 dezelfde waarde in een kolom gezet kan worden.

dus als ik een kolom "categorie" heb en daar in staat al een waarde "slangen", dan mag deze niet nogmaals worden toegevoegd.

Ik hoop dat ik nu iets duidelijker ben.

:thumb:
 
Geplaatst door hitme007
De bedoeling is dat er geen 2 dezelfde waarde in een kolom gezet kan worden.

dus als ik een kolom "categorie" heb en daar in staat al een waarde "slangen", dan mag deze niet nogmaals worden toegevoegd.
Jahaa ... Dus ...
PHP:
<? 
$query = "SELECT categorie FROM tabel WHERE categorie = 'slangen' LIMIT 0,2";
$result = mysql_query($query) or die(mysql_error()); 
  if(mysql_num_rows($result) > 0)
  {
  // De waarde staat al in de database
  }
  else
  {
  // De waarde komt nog niet voor
  }
?>
 
:o k, thx...
PHP:
$g = mysql_query("SELECT naam FROM latijns_geslacht WHERE categorie='" . $_SESSION['categorie'] . "' LIMIT 0,2") or die(mysql_error());
$result = mysql_query($g) or die(mysql_error()); 
if(mysql_num_rows($result) <= 0){
mysql_query("INSERT INTO latijns_geslacht (naam,categorie) VALUES ('" . slashes($_POST["geslacht"]) . "','" . slashes($_SESSION['categorie']) . "')") or die("Fout bij toevoegen geslacht");
}

hij geeft nu deze foutmelding:

You have an error in your SQL syntax near 'Resource id #22' at line 1

het zit em volgens mij in deze regel:
$result = mysql_query($g) or die(mysql_error());

wat gaat er fout?

[edit]

Ow, stom stom...zie t al... foutje bij het overnemen :o

Excusses :rolleyes:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan