tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Kyôya
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
360
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    nchristoph nchristoph ist offline Mitglied Platin
    Registriert seit
    Sep 2007
    Beiträge
    527
    Hallo Zusammen,

    Ich sitze da an einem kleinen Problem mit meinem Thememanager:

    Ich wähle mittels Formular den Defaulttheme aus, und wenn ich speichere, sollen, wenn mehrere Themes installiert sind, bei den anderen Themes das Default auf 0 gesetzt werden, beim ausgewählten Allerdings auf 1.

    Auswählen tue ich den Defaulttheme mittels Radiobutton.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <form id="form1" name="form1" method="post" action="">
      <label for="theme 1">Theme 1
      <input id="theme 1" type="radio" name="radio" id="defaultheme" value="defaultheme" />
      </label>
        <label for="theme 2">Theme 2
      <input id="theme 2" type="radio" name="radio" id="defaultheme" value="defaultheme" />
      </label>
      <label for="theme 3">Theme 3
      <input id="theme 3" type="radio" name="radio" id="defaultheme" value="defaultheme" />
      </label>
    </form>

    So in etwa ist mein Formular aufgebaut.

    Ich weis, wie ich checken kann, ob ein Radiobutton ausgewählt ist, aber was muss ich beim MYSQL Update beachten?

    PHP-Code:
     $SQL mysql_query("UPDATE templates SET 'isdefault' ='1' WHERE mysql_real_escape_string($_POST['radio']) = 'checked'"); 
    Muss ich da als erstes alle auf 0 setzten und dann den einen auf 1 oder geht das auch in einem aufwischen?

    Grüsse
     

  2. #2
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    Hi,

    Als erstes gibst du den Radio-Buttons die ID der Templates (Spalte in der DB, die den Primärschlüssel PRIMARY KEY enthält). Den Namen der Radios würde ich auf was aussage kräftigeres wie z.B. "themeId" setzen.

    Du setzt erst bei allen Datensätzen "isdefault" auf 0 und dann bei dem neuen Default-Theme "isdefault" auf 1.

    Das schaut in etwa so aus (die Spalte "id" ist der PRIMARY KEY):
    Code php:
    1
    2
    
    mysql_query("UPDATE templates SET `isdefault` = 0");
    mysql_query("UPDATE templates SET `isdefault` = 1 WHERE `id` = " . mysql_real_escape_string($_POST["themeId"]));

    Ein genaueres Beispiel kann ich dir nur geben, wenn ich die Struktur deiner MySQL-Tabelle sehe.

    Gruß Kyôya Stefan
    Geändert von Kyôya (14.12.11 um 22:51 Uhr)
    nchristoph bedankt sich. 
    Oracle Certified MySQL 5 Professional Developer
    Zend Certified PHP 5.3 Engineer

    Vorträge, Webinare, etc im Mayflower - Blog

  3. #3
    nchristoph nchristoph ist offline Mitglied Platin
    Registriert seit
    Sep 2007
    Beiträge
    527
    Also muss ich 2 Updates machen, hab ich mir fast gedacht.

    PHP-Code:
        1     tem_id     int(11)             Nein     kein(e)     AUTO_INCREMENT     Ändern Ändern     Löschen Löschen     Mehr Weitere Aktionen anzeigen
        2     name     varchar
    (255)     latin1_swedish_ci         Nein     kein(e)         Ändern Ändern     Löschen Löschen     Mehr Weitere Aktionen anzeigen
        3     pfad     varchar
    (255)     latin1_swedish_ci         Nein     kein(e)         Ändern Ändern     Löschen Löschen     Mehr Weitere Aktionen anzeigen
        4     isdefault     tinyint
    (1)             Nein     kein(e)         Ändern Ändern     Löschen Löschen     Mehr Weitere Aktionen anzeigen 
    Hier hast du die genaue Struktur.

    Wie muss dann das Formular aussehen? Da stehe ich etwas auf dem Schlauch grad, liegt wohl auch an der Uhrzeit.
     

  4. #4
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    Wenn die Ausgabe vom phpMyAdmin ist, dann pack bitte mal die Indiezies noch dazu oder poste den Output vom MySQL Statement
    Code mysql:
    1
    
    DESCRIBE templates

    Zum Erstellen des Formulares:
    Code php:
    1
    2
    3
    4
    5
    
    $result = mysql_query("SELECT `id`, `name`, `isdefault` FROM `templates`");
    $templates = array();
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC) {
        $templates[] = $row;
    }
    Zum Rendern des Formulares:
    Code php:
    1
    2
    3
    4
    5
    6
    7
    
    <form id="form1" name="form1" method="post" action="">
    <?php foreach ($templates as $template) { ?>
      <label for="theme_<?php echo $template['tem_id']; ?>"><?php echo $template['name']; ?>
      <input id="theme_<?php echo $template['tem_id']; ?>" type="radio" name="templateId" value="<?php echo $template['tem_id']; ?>"<?php echo ($template['isdefault'] == 1) ? ' checked="checked"' : ''; ?> />
    <?php } // foreach ?>
      <input type="button" value="Default-Theme festlegen" />
    </form>

    Der Code zum Einstellen in der DB schaut dann so aus:
    Code php:
    1
    2
    
    mysql_query("UPDATE templates SET `isdefault` = 0");
    mysql_query("UPDATE templates SET `isdefault` = 1 WHERE `tem_id` = " . mysql_real_escape_string($_POST["templateId"]));

    Gruß Kyôya Stefan
    Geändert von Kyôya (14.12.11 um 22:52 Uhr)
     
    Oracle Certified MySQL 5 Professional Developer
    Zend Certified PHP 5.3 Engineer

    Vorträge, Webinare, etc im Mayflower - Blog

  5. #5
    nchristoph nchristoph ist offline Mitglied Platin
    Registriert seit
    Sep 2007
    Beiträge
    527
    Wow Danke, das funktioniert wie geschmiert.

    Den Updatevorgang kann ich ja theoretisch auch verwenden, dass ich ein neues Template bzw. jetzt noch Theme installiere.

    Danke für die Hilfe.
     

Ähnliche Themen

  1. 100ms timeout bei update(Graphics g) / oder update() bricht update() ab?
    Von AGSzabo im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 19.11.08, 18:37
  2. MySQL Update
    Von Rambo51 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 06.02.06, 15:24
  3. dynamisch Radiobutton, MYSQL
    Von momoxp im Forum PHP
    Antworten: 1
    Letzter Beitrag: 01.10.05, 18:12
  4. PHP MySQL Update
    Von fUnKuCh3n im Forum PHP
    Antworten: 3
    Letzter Beitrag: 19.09.04, 21:59
  5. Update von MySQL 3.23x auf 4.0.16
    Von wal im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 14.11.03, 09:35