Hallo,
dit is een deel van mijn script om artiesten toe te voegen, het script doet het op zich prima, het enige wat tot nu toe niet werkt is dat ik met
$dn = mysql_num_rows(mysql_query('
select id 
from artiesten 
where artiest="'.$artiest.'"'));


if($dn==0) 
{ 
wil kijken of de artiest al bestaat en als hij niet bestaat pas de nieuwe artiest toe voegen, maar ook al bestaat de artiest wel voegt ie gewoon de nieuwe artiest toe. Wat doe ik verkeerd?

<?php
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) { 

$sort = $_GET['sort'];

if(isset($_POST['submit']))
{
$dn = mysql_num_rows(mysql_query('
select id 
from artiesten 
where artiest="'.$artiest.'"'));


if($dn==0) 
{

if(get_magic_quotes_gpc())
{
	$_POST['artiest'] = stripslashes($_POST['artiest']);
	$_POST['genre'] = stripslashes($_POST['genre']);
}

	$artiest = mysql_real_escape_string(strtolower($_POST['artiest']));
	$genre = mysql_real_escape_string(strtolower($_POST['genre']));


	
		
$sql = "
INSERT INTO artiesten
(artiest, sort, genre, favoriet, position) 
VALUES('$artiest', '$sort', '$genre', 'nee', '') 
";

$retval = mysql_query( $sql, $mysql_connect );
if(! $retval )
{
  die('FOUT ' . mysql_error());
}
?>
<a href="http://web-stars.nl/muziek/muziek.php" style="color:#000000;">gelukt <br /> klik hier om naar de sonteksten te gaan</a>
<?php
}
else {
	echo 'er is al een artiest met deze naam';
}

}
else {

?>


Fabian
Ee kwestie van debuggen:
Even $dn echo'en.

Verder sla ik de query altijd op in een variabele, die ik weer in een vervolgfunctie verwerk:


<?php
$result = mysql_query("
SELECT id
FROM artiesten
WHERE artiest='".$artiest."');

if($result==true) {
	$dn = mysql_num_rows($result);
	if($dn==0) {
		// het aantal is nul
	}
}
?>


Verder raad ik MySQLi of PDO aan.
dank je wel!
Ik ben al met wat pagina's overgestapt naar mysqli


hij doet het niet


<?php 
if(isset($_POST['submit']))
{
	
	$artiest = mysql_real_escape_string(strtolower($_POST['artiest']));
	$genre = mysql_real_escape_string(strtolower($_POST['genre']));

	
$result = mysql_query("
SELECT id
FROM artiesten
WHERE artiest='".$artiest."'
");

if($result==true) {
    $dn = mysql_num_rows($result);
    if($dn==0) {

}

else {
	echo 'er is al een artiest met deze naam';
}
}
else {
echo 'fout';
}
}
else {
?>
    


Toevoeging op 06/07/2015 18:30:27:

ik heb blijkbaar iest fout gedaan want hij doet het nu wel!!
Waarom regel 5 en 6? Kun je toch ook in de query doen?
En waarom gebruik je dit:

if(isset($_POST['submit'])) {


Dit werkt veel beter:

if($_SERVER['REQUEST_METHOD']=="POST") {



Verder mogen er wel wat tab'jes in, om de statement goed in te springen. Als ik een aantal accolades boven elkaar zie, dan gaan mijn haren rechtovereind staan.

Reageren