php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.04.2009, 19:08  
Neuer Benutzer
 
Registriert seit: 13.01.2008
Beiträge: 11
Ragnaroek befindet sich auf einem aufstrebenden Ast
Standard Verbesserung zum Formular? Brauche mal jemand der drüberschaut...

Hallo allerseits...

habe folgendes Problem gehabt:

Bilder für eine Slidewshow sollten per DB online/offline geschaltet werden (also per Statuswert: 1=online; 0=offline)

Die Bilder sollten mittles eines einfachen Formular geschaltet werden können (bei mir per Radiobutton). Die neuen Daten sollten dann in die DB geschrieben werden.

So. Das Formular funktioniert auch. Nur möchte ich ja ständig dazulernen und frage mich, ob ich das ganze nicht doch über ein paar Ecken zuviel gelöst habe.

Hier mal das Script für das Formular:

PHP-Code:
<?php

include ('../inc/db.php');

mysql_query("SET NAMES 'utf8'");  

$mysql_abfrage  "SELECT * FROM bilder_index ORDER BY bilder_index_id";

$mysql_ergebnis=mysql_query($mysql_abfrage);
$num mysql_num_rows($mysql_ergebnis);

while(
$datensatz mysql_fetch_assoc($mysql_ergebnis))
{
    if (
$datensatz["bilder_index_status"] == 1)
    {
        echo 
'<tr>';
        echo 
'<td class="rahmen"><img src="../images/index/' $datensatz["bilder_index_bild"] . '.jpg" </td>
        <input type="radio" name="index_status_' 
$datensatz["bilder_index_id"] . '" value="1" checked /></td><input type="radio" name="index_status_' $datensatz["bilder_index_id"] . '" value="0" /></td>';                                        
        echo 
'</tr>';
    }
    
    else
    {
        echo 
'<tr>';
        echo 
'<td class="rahmen"><img src="../images/index/' $datensatz["bilder_index_bild"] . '.jpg" </td>
        <input type="radio" name="index_status_' 
$datensatz["bilder_index_id"] . '" value="1" /></td><td class="rahmen"><input type="radio" name="index_status_' $datensatz["bilder_index_id"] . '" value="0" checked /></td>';                                        
        echo 
'</tr>';
    }
}

echo 
'</table>';

echo 
'<input class="senden_admin" name="submit" type="submit" value="Senden" />&nbsp;';

?>
Zuerst wird die DB abgefragt und der Inhalt nach Status ausgegeben. Dazu wird über die IF-Anweisung abgefragt, wie der Status ist, damit "checked" richtig gesetzt wird. Um den input-name eindeutig gesetzt bekomme, hänge ich am Namen "index_status_" noch die ID des Datensatzes an. Im Value wird dann der Status übermittelt. Dann wird das Formular per send abgeschickt...

Auf der nächsten Seite wird das nächste Script aufgerufen:

PHP-Code:
<?php
                    
include ('../inc/db.php');

mysql_query("SET NAMES 'utf8'");  

$mysql_abfrage  "SELECT * FROM bilder_index ORDER BY bilder_index_id";

$mysql_ergebnis=mysql_query($mysql_abfrage);
$num mysql_num_rows($mysql_ergebnis);

while(
$datensatz mysql_fetch_assoc($mysql_ergebnis))
{
    echo 
$_POST["index_status_" $datensatz["bilder_index_id"] . ""] . '<br />';

    
mysql_query("SET NAMES 'utf8'");     
    
$mysql_aendern "UPDATE bilder_index SET bilder_index_status = '" $_POST["index_status_" $datensatz["bilder_index_id"] . ""] . "' ";
    
$mysql_aendern .= "WHERE bilder_index_id = '" $datensatz["bilder_index_id"] . "' ";
    
    
mysql_query($mysql_aendern);
    
    
$num mysql_affected_rows();
}
Hier wird erst mal wieder der Index der DB abgefragt (ist ja genau der gleiche wie auf der anderen Seite). Anhand dessen haben wir wieder die ID für die exakte Namenszuweisung (z.B. index_status_3). Damit kann auch der Wert der übermittelten Variable abgefragt und in der DB aktualisiert werden.

Ich hoffe ihr konntet folgen.

Ich bin mir sicher dass das über ein Feld noch einfacher gelöst werden kann, aber das hat zum verr.... bei mir nicht funktioniert. Das PRoblem war für mich zudem dass die IDs aus der DB ja nicht immer kontinuierlich sein werden.

Wenn man es einfacher machen könnte, wäre ich für einen Hinweis sehr dankbar...

besten dank

Lapje
Ragnaroek ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.04.2009, 19:15  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Also auf alle Fälle solltest du Select * in deiner Abfrage nicht machen, sondern anstatt des * die Felder die bracuhst dur Komma getrennt angeben.

Dein checked dürfte so auch nicht funktionieren, denn das heist dann checked="checked".

Und mit dem Thema SQL-Injections solltest du dich auseinander setzen.

Ansonsten fäält mir so nichts auf.

[OT]

Dein Nick gefällt mir, hat der was mit der blackmetalband zu tun?

Gruß litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 10.04.2009, 19:34  
Neuer Benutzer
 
Registriert seit: 13.01.2008
Beiträge: 11
Ragnaroek befindet sich auf einem aufstrebenden Ast
Standard

Hai,

nein, eher mit einem Kinderbuch... Lapje kommt von Lapje Luum, kommt aus dem niederländischen und bedeutet soviel wie "kleine Insel"...

und das mit dem checked funzt aber wunderbar...ist das jetzt dann nur Zufall?

Bei Selfhtml wirds zumindest auch so geschrieben:

SELFHTML: HTML/XHTML / Formulare / Auswahllisten, Radio-Buttons und Checkboxen

das mit dem Select habe ich schon geändert, mit injections befasse ich mich auch mal...gibts die bei MySQL auch?
Ragnaroek ist offline  
Alt 10.04.2009, 19:38  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ragnaroek Beitrag anzeigen
und das mit dem checked funzt aber wunderbar...ist das jetzt dann nur Zufall?
Kein zufall, nur veraltete schreibweise.
Squall ist offline  
Alt 10.04.2009, 19:46  
Erfahrener Benutzer
 
Registriert seit: 04.12.2008
Beiträge: 132
agundur befindet sich auf einem aufstrebenden Ast
agundur eine Nachricht über Skype™ schicken
Standard

so spontan würde ich sagen Deine DB-Abfragen könnten noch geprüft werden ..
PHP-Code:

$result 
mysql_query(....);
if (!
$result) {
    die(
'Ungültige Abfrage: ' mysql_error());

usw.
__________________
AFFE ist nur im Dezimalsystem ein Palindrom.
agundur ist offline  
Alt 10.04.2009, 19:58  
Neuer Benutzer
 
Registriert seit: 13.01.2008
Beiträge: 11
Ragnaroek befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Squall Beitrag anzeigen
Kein zufall, nur veraltete schreibweise.
Nicht dass ich das, was Du schreibst in Frage stellen will...aber warum wird das bei SelfHTML noch immer so geschrieben? Haben die nicht abgedatet? Oder wieder ein Unterschied zwischen HTML und (X)HTML?

Nachtrag: Ja, ist XHTML...habs gesehen...und geändert

Geändert von Ragnaroek (10.04.2009 um 20:11 Uhr).
Ragnaroek ist offline  
Alt 10.04.2009, 20:12  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ragnaroek Beitrag anzeigen
Nicht dass ich das, was Du schreibst in Frage stellen will...aber warum wird das bei SelfHTML noch immer so geschrieben? Haben die nicht abgedatet? Oder wieder ein Unterschied zwischen HTML und (X)HTML?
Ich bin kein Gott ^^ fehler können auch mir passieren, also kritisier mich ruhig

Was deine Frage angeht, wenn du auf klick hier schaust, steht unten im kleingedruckten
Zitat:
Wenn Sie XHTML-Standard-konform arbeiten wollen, müssen Sie dieses Attribut in der Form checked="checked" notieren.
Squall ist offline  
Alt 10.04.2009, 20:15  
Neuer Benutzer
 
Registriert seit: 13.01.2008
Beiträge: 11
Ragnaroek befindet sich auf einem aufstrebenden Ast
Standard

Da haben sich unsere Posts überschnitten..habs auch gerade gelesen und schon geändert...wieder was gelernt.. Danke
Ragnaroek ist offline  
Alt 12.04.2009, 12:39  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Dein Thread-Titel ist schlecht bzw. unglücklich gewählt. Bitte ändere diesen und beachte dabei Bitte aussagekräftige Threadtitel verwenden
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP: Formular Generator Zergling-new Tutorials 16 06.07.2010 03:14
Formular; ich brauche mal euren Rat maeck PHP Tipps 2008 8 17.04.2008 23:58
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
[Erledigt] PHP Formular ~~wichtig~~ PHP Tipps 2005 27 29.05.2005 19:38
Brauche PHP Formular Beitragsarchiv 9 16.08.2004 16:23


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum