If/Else structuur

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cedric

Cedric

17/10/2007 15:45:00
Quote Anchor link
Hey PHPhulpers,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.";
    }

?>


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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.";
    }

?>

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
 
PHP hulp

PHP hulp

26/04/2024 23:47:24
 
Gerben Jacobs

Gerben Jacobs

17/10/2007 15:56:00
Quote Anchor link
In de trant van;

$query = "SELECT id, naam FROM cats WHERE naam = '".$_POST['naam']."' AND id !=".$huidigID;
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
 
GaMer B

GaMer B

17/10/2007 15:57:00
Quote Anchor link
Ik denk dat die != in je query <> moet zijn.
 
Cedric

Cedric

17/10/2007 16:07:00
Quote Anchor link
Ah juist! Ik had er niet aan gedacht om het in de query te doen ! Thx jongens =)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.