PHP Switches in PHP

Cool Master

Fleet Admiral
Registriert
Dez. 2005
Beiträge
39.143
Huhu ich schon wieder :P Also ich habe da ein kleines problem und zwar komme ich nicht weiter mit switches. Ich möchte gerne drei optionen haben. Option 1 User in der DB anlegen; Option 2 User aus der DB löschen und Option 3 ein kleiner Hilfe text für was Option 1 und 2 ist. Ich habe aktuell folgendes:

PHP:
<?php

function Auswahl()
{
    switch ()
    {
        case "0": // User in DB anlegen
        if(isset($_GET['userid']))
        {
            $userid = $_GET['userid'];
            $var    = $_GET['var'];
            $val    = $_GET['val'];

            mysql_connect(localhost,$username,$password);
            @mysql_select_db($database) or die( "Unable to select database"); 
    
            $query = "INSERT INTO $datatable VALUES ('$userid','$var', '$val') ON DUPLICATE KEY UPDATE user_id=$userid, cookie_name='$var', cookie_value='$val';";
    
            echo mysql_error();
    
            mysql_query($query);
    
            mysql_close();
        }
        
        break;
        
        case "1": // User aus DB löschen
        if(isset($_GET['userid']))
        {
            $userid = $_GET['userid'];
            $var    = $_GET['var'];
            $val    = $_GET['val'];

            mysql_connect(localhost,$username,$password);
            @mysql_select_db($database) or die( "Unable to select database"); 

            $query = "DELETE FROM $datatable WHERE user_id = $userid";

            mysql_query($query);

            mysql_close();
            
        }
        
        break;
        
        case "2": // Ausgabe mit kleinem Hilfe Text
        echo "Guten Tag, Ihre erste Option ist es einen User anzulegen und in der Datenbank zu speichern";
        echo "Ihre zweite Option ist es einen angelegten user zu löschen. ACHTUNG!!! Diese Aktion kann nicht rückgänig gemacht werden!";
        
        break;
    }
    

}
?>

Hoffe ihr könnt mir da ein wenig helfen.
 
bei switch() gehört die zu prüfende variable rein... -> switch($auswahl)

PHP:
<?php

function Auswahl($Auswahl)
{
    switch ($Auswahl)
    {
        case "0": // User in DB anlegen
        if(isset($_GET['userid']))
        {
            $userid = $_GET['userid'];
            $var    = $_GET['var'];
            $val    = $_GET['val'];
 
Zuletzt bearbeitet:
PHP:
switch
sollte schon auch ein Parameter haben, z.B.
PHP:
switch($var)
An den Cases würde ich arbeiten:
PHP:
case "0"
finde ich gefährlich wegen PHPs Casting, am besten du machst:
PHP:
case "1": ... break;
case "2":  ... break;
default:
oder
PHP:
case  "create":  ... break;
case  "delete":  ... break;
default:
 
Ich würde das ganze mal ein wenig überarbeiten...

Stichwort : SQL Injection

und dann schaue Dir mal die Beschreibung von switch->case an :

http://php.net/manual/de/control-structures.switch.php

*edit*

Ich würde eine extra Datei angeben die, die Angaben für die MySQL enthält, in einen Array oder so.

Dann brauchst Du nur -> include("sql.inc.php"); einbinden und gut.

Beispiel:

PHP:
<?php
    $_config = array(); //erzeuge array
    $_config['host'] = 'localhost';  //localhost oder ip
    $_config['user'] = 'benutzer';        //Benutzername
    $_config['password']  = 'passwort'; //Passwort der Datenbank ( Erstelle einen Benutzer mit nur rechten an der Datenbank, die er auch nur wirklich benötigt. )
    $_config['database'] = 'datenbank'; // die zu wählende Datenbank


if( !$connection = mysql_connect( $_config['host'], $_config['user'], $_config['password'] ) ) {
               die( 'Keine Verbindung zum Datenbankserver!.' );
          }

          if( !mysql_select_db( $_config['database'], $connection ) ) {
              die ( 'Die Datenbank ' . $_config['database'] . ' kann nicht verwendet werden. <br />
                       MySQL-Error: <br />' . mysql_error() );
          }

?>

etc pp..
 
Zuletzt bearbeitet:
Ok wir haben es ein wenig anderst gelöst trotzdem danke ich euch für eure Mühe.
 
Zurück
Oben