If/Else structuur
Ik ben momenteel bezig met een systeempje waar ik ook categorieën moet toevoegen/wijzigen. Als ik een categorie toevoeg, moet ik eerst kijken als de naam of de url al bestaan. Dit doe ik zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
if(!empty($_POST['naam']) && !empty($_POST['title']) && !empty($_POST['description']) && !empty($_POST['keywords']) && !empty($_POST['url']) && !empty($_POST['beschrijving']))
{
$query = "SELECT naam FROM cats WHERE naam = '".$_POST['naam']."'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$msg = "Deze naam is al in gebruik. Probeer een andere naam.";
}
else
{
$query = "SELECT url FROM cats WHERE url = '".$_POST['url']."'";
$result = $result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$msg = "Deze url is al in gebruik. Probeer een andere url.";
}
else
{
$query = "INSERT INTO cats (naam, title, description, keywords, url, beschrijving) VALUES('".$_POST['naam']."', '".$_POST['title']."', '".$_POST['description']."', '".$_POST['keywords']."', '".$_POST['url']."', '".$_POST['beschrijving']."')";
$result = mysql_query($query);
if($result)
{
$msg = "De categorie is succesvol toegevoegd.";
}
else
{
$msg = "Het toevoegen is mislukt, probeer later nog eens.";
}
}
}
}
else
{
$msg = "U heeft niet alle velden ingevuld, probeer nogmaals.";
}
?>
if(!empty($_POST['naam']) && !empty($_POST['title']) && !empty($_POST['description']) && !empty($_POST['keywords']) && !empty($_POST['url']) && !empty($_POST['beschrijving']))
{
$query = "SELECT naam FROM cats WHERE naam = '".$_POST['naam']."'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$msg = "Deze naam is al in gebruik. Probeer een andere naam.";
}
else
{
$query = "SELECT url FROM cats WHERE url = '".$_POST['url']."'";
$result = $result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$msg = "Deze url is al in gebruik. Probeer een andere url.";
}
else
{
$query = "INSERT INTO cats (naam, title, description, keywords, url, beschrijving) VALUES('".$_POST['naam']."', '".$_POST['title']."', '".$_POST['description']."', '".$_POST['keywords']."', '".$_POST['url']."', '".$_POST['beschrijving']."')";
$result = mysql_query($query);
if($result)
{
$msg = "De categorie is succesvol toegevoegd.";
}
else
{
$msg = "Het toevoegen is mislukt, probeer later nog eens.";
}
}
}
}
else
{
$msg = "U heeft niet alle velden ingevuld, probeer nogmaals.";
}
?>
Dat lukt allemaal uitstekend als ik categorieën wil toevoegen. Maar nu wil ik ze ook kunnen wijzigen. De naam mag natuurlijk niet hetzelfde zijn als van een andere categorie, maar dit mag wel als het de naam is van het artikel wat ik aan het wijzigen ben. Dus selecteer ik de id van het artikel waar die naam voorkomt die ik intypte in het form. Dan vergelijk ik die met het id van waar ik bezig ben. Dit zou moeten lukken, enkel lukt de structuur mij niet goed. Ik heb nu dit (werkt niet):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
if(!empty($_POST['naam']) && !empty($_POST['title']) && !empty($_POST['description']) && !empty($_POST['keywords']) && !empty($_POST['url']) && !empty($_POST['beschrijving']))
{
$query = "SELECT naam FROM cats WHERE naam = '".$_POST['naam']."'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$query = "SELECT id FROM cats WHERE naam = '".$_POST['naam']."'";
$result = $result = mysql_query($query);
$row = mysql_fetch_assoc($result);
if($row['id'] != $_GET['id'])
{
$msg = "Deze naam is al in gebruik. Probeer een andere url.";
}
}
else
{
$query = "SELECT url FROM cats WHERE url = '".$_POST['url']."'";
$result = $result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$msg = "Deze url is al in gebruik. Probeer een andere url.";
}
else
{
$query = "UPDATE cats SET naam = '".$_POST['naam']."', title = '".$_POST['title']."', description = '".$_POST['description']."', keywords = '".$_POST['keywords']."', url = '".$_POST['url']."', beschrijving = '".$_POST['beschrijving']."' WHERE id = '".$_GET['id']."'";
$result = mysql_query($query) or die(mysql_error());
if($result)
{
$msg = "De categorie is succesvol gewijzigd.";
}
else
{
$msg = "Het wijzigen is mislukt, probeer later nog eens.";
}
}
}
}
else
{
$msg = "U heeft niet alle velden ingevuld, probeer nogmaals.";
}
?>
if(!empty($_POST['naam']) && !empty($_POST['title']) && !empty($_POST['description']) && !empty($_POST['keywords']) && !empty($_POST['url']) && !empty($_POST['beschrijving']))
{
$query = "SELECT naam FROM cats WHERE naam = '".$_POST['naam']."'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$query = "SELECT id FROM cats WHERE naam = '".$_POST['naam']."'";
$result = $result = mysql_query($query);
$row = mysql_fetch_assoc($result);
if($row['id'] != $_GET['id'])
{
$msg = "Deze naam is al in gebruik. Probeer een andere url.";
}
}
else
{
$query = "SELECT url FROM cats WHERE url = '".$_POST['url']."'";
$result = $result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$msg = "Deze url is al in gebruik. Probeer een andere url.";
}
else
{
$query = "UPDATE cats SET naam = '".$_POST['naam']."', title = '".$_POST['title']."', description = '".$_POST['description']."', keywords = '".$_POST['keywords']."', url = '".$_POST['url']."', beschrijving = '".$_POST['beschrijving']."' WHERE id = '".$_GET['id']."'";
$result = mysql_query($query) or die(mysql_error());
if($result)
{
$msg = "De categorie is succesvol gewijzigd.";
}
else
{
$msg = "Het wijzigen is mislukt, probeer later nog eens.";
}
}
}
}
else
{
$msg = "U heeft niet alle velden ingevuld, probeer nogmaals.";
}
?>
De fout zit dus waar ik kijk of het id overeenkomt met die van het artikel waar ik bezig ben. Nu stopt hij eigenlijk als het gepermiteerd wordt om de naam te wijzigen. Het zou dus eigenlijk zo moeten:
1. checken of naam bestaan
2. Naam bestaat, kijken of je mag wijzigen.
3. Mag niet, url check eronder niet meer uitvoeren
4. Mag wel, url check uitvoeren
5. zelfde doen met url als ik met naam wil doen
6. query uitvoeren.
Ik hoop dat ik het goed uitgelegd heb voor jullie, wie kan mij helpen om dit op te lossen aub?
Mvg,
Cedric
Gewijzigd op 01/01/1970 01:00:00 door Cedric
$query = "SELECT id, naam FROM cats WHERE naam = '".$_POST['naam']."' AND id !=".$huidigID;
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
Ik denk dat die != in je query <> moet zijn.
Ah juist! Ik had er niet aan gedacht om het in de query te doen ! Thx jongens =)