php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.10.2005, 23:39  
Gast
 
Beiträge: n/a
Standard checkbox indexieren

Hallo liebe com,

ich weiß, das leidige Thema "undefined index". Ich konnte bisher nicht die checkboxen indexieren und bekomme beim ausführen der sql-query ein(ige) "undefined index" Meldungen. Jedoch nur bei den checkboxen, welche nicht checked sind, diese ja auch keinen "on" Wert übertragen. Das stört mich jedoch, obwohl die query ja ausgeführt wird.

die checkboxen im formular:

Code:
<input name="mo" type="checkbox" value="1">
<input name="di" type="checkbox" value="1">
<input n........
dann die query:

Code:
mysq_query = "INSERT INTO events (mo, di, mi..) VALUES ('".$_REQUEST['mo']."',
		'".$_REQUEST['di']."', .....
Danach wird dann die Fehlermeldung ausgegeben. Wie bekomme ich das if isset($_Request['mo']) jetzt hin wenn die query auch dann dann ausgeführt werden soll, wenn diese nicht gesetzt sind bzw. wie muss ich diese Variablen deklarieren?

Vielen dank schonmal....
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.10.2005, 23:52  
Gast
 
Beiträge: n/a
Standard

Die Existenz einer Variablen oder eines Elements kannst Du mit isset() abtesten
http://php.net/isset
 
Alt 27.10.2005, 00:22  
Gast
 
Beiträge: n/a
Standard

Danke, dort sehe ich eigentlich immer nach...
 
Alt 27.10.2005, 08:43  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

für jeden Tag ein eigenes Feld ok da lässt sich drüber streiten ich hätte das über n Integerwert gelöst.

1 Mo 0000001
2 Die 0000010
4 Mi 0000100
8 Do 0....
usw.

wenn Mo,Die u. Mi zb. angeklickt hast den Wert 7 wenn du nun überprüfen willst ob Mo u. Die gesetzt sind dann machst einfach folgende Abfrage:

Code:
Mo + Die == ($wochentage & (Mo + Die))
Du machst einfach eine UND Verknüpfung zwischen den zu prüfenden Wochentagen u. den gestezten Wochentagen u. das Ergebnis vergleichst wieder mit den zu prüfenden Wochentagen.

So brauchst nur ein Feld u. ich finde es ist noch recht übersichtlich wenn man das kleine Binäre 1x1 im Kopf hat
HStev ist offline  
Alt 27.10.2005, 09:04  
Gast
 
Beiträge: n/a
Standard

Naja, Wochentage sind nun aber eine eindeutig eingrenzbare Anzahl an Feldern
Wenn nun WHERE Abfragen über einzelne Wochwentage gemacht werden sollen, ist es sinnvoller, sie in eigenen Feldern zu haben. Klar kennt auch mysql Bitoperation. Aber da macht kein Index mit -> Datenbank vergeblich.
 
Alt 27.10.2005, 10:02  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von Bruchpilot
Naja, Wochentage sind nun aber eine eindeutig eingrenzbare Anzahl an Feldern
Wenn nun WHERE Abfragen über einzelne Wochwentage gemacht werden sollen, ist es sinnvoller, sie in eigenen Feldern zu haben. Klar kennt auch mysql Bitoperation. Aber da macht kein Index mit -> Datenbank vergeblich.
Naja das mit den Index leuchtet mir ein aber mit der Abfrage für einzelene Wochentage weniger das funktioniert mit der Bit-Vergleichung genauso das Beispiel dazu hab ich gezeigt
HStev ist offline  
Alt 27.10.2005, 10:56  
Gast
 
Beiträge: n/a
Standard

Mangels Zeit hier ein Muster für das Abfragen von Checkboxes:
[Sorry, daß ich als 'Anfänger' es wage, hier bei den 'Profis' etwas zu posten!]
Code:
<HR>
<?php

if (isset($_POST['submit']))
{
    echo "das Formular hat folgende Informationen geliefert:";

    print '<pre>';
    var_dump($_POST);
    print '</pre>';

    print 'Mittels FOREACH-Schleife ausgegeben: 
';

    foreach($_POST['cbx'] as $key => $value)
    {
        echo "key = $key  ,value =  $value 
";
    }

    print 'Bitte versuchen Sie es nochmal';

}
else
{

   ?>

   <form action="<?php echo $PHP_SELF; ?>" method="POST">

    cbx: verschiedene Keys, verschiedene Werte 

    : <input type="checkbox" name="cbx[0]" value="Mo">Montag

    : <input type="checkbox" name="cbx[1]" value="Di">Dienstag

    : <input type="checkbox" name="cbx[2]" value="Mi">Mittwoch

    : <input type="checkbox" name="cbx[3]" value="Do">Donnerstag

    : <input type="checkbox" name="cbx[4]" value="Fr">Freitag

    : <input type="checkbox" name="cbx[5]" value="Sa">Samstag

    : <input type="checkbox" name="cbx[6]" value="So">Sonntag

    


    <input type="submit" name="submit" value="absenden">


   </form>

   <?php
}
?>
<HR>
Wie man sehen kann, enthält $_POST ein Array mit dem Key "cbx".
Von diesem Array $_Post['cbx']

kann man dann sehr einfach mittels ---> foreach($_POST['cbx'] as $key => $value)

die Inhalte von $key und $value ermitteln un weiterverarbeiten.

Man muß halt die Checkbox so bauen, wie im o.g. Beipiel.

mfg
~dilemma~
 
Alt 27.10.2005, 14:41  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines Profis. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21431

moved to PHP - Anfänger
__________________
mod = master of disaster
Waq ist offline  
Alt 27.10.2005, 20:11  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von HStev
Naja das mit den Index leuchtet mir ein aber mit der Abfrage für einzelene Wochentage weniger das funktioniert mit der Bit-Vergleichung genauso das Beispiel dazu hab ich gezeigt
Das gehört doch zusammen.
Wenn Du keinen Index benutzen kanns,t sondern eh jeden einzelnen Datensatz abtesten musst, brauchst Du keine Datenbank.
 
Alt 27.10.2005, 23:29  
Gast
 
Beiträge: n/a
Standard

Ich entschuldige mich für den Eintrag bei den Profis. Kommt nicht wieder vor.

Jedenfalls ging es mir bei den checkboxen darum, den Zustand in eine INSERT-Query einzugeben. Dabei kam der index undef. zustande.

Das habe ich dann so gelöst:

Code:
mysq_query=(INSERT into events.... mo, di..) VALUES ('".(isset($_REQUEST['mo']))."','".(isset($_REQUEST['di']))."',...
das funktioniert so und es gibt keine Fehlermeldung mehr. Aber irgendwie scheint mir das nicht so recht zu gefallen, warum auch immer.

@HStev
Das mit der Bitrechnung ist eine gute Idee, ist mir aber im Moment aus Zeitmangel und dem index setzen zu aufwendig. Aber werde das mit dem Bitrechnen im Hinterkopf behalten.

@Bruchpilot
Mit dem Index hast Recht, da ich eine Abfrage nach Wochentage vorhabe.
Also (SELECT x,y,... from events WHERE $wochentag=1) Da ich noch mehrere Spalten in der Tab. habe werde ich wohl auch darauf ein index setzen.

@dilemma
Ich stufe dich zum Profi rauf! :wink:
Ne ehrlich, du hast mir mal eine sehr gute Antwort gegeben und mich aus einem ~ rausgeholt. Ich werde das Script bestimmt noch brauchen.
 
 


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
Aktivieren einer Checkbox aktiviert viele andere Checkboxen buggybugga HTML, Usability und Barrierefreiheit 3 12.03.2007 16:23
Checkbox Text daneben andrew22 HTML, Usability und Barrierefreiheit 7 22.02.2007 16:44
Checkbox jacos PHP Tipps 2006 5 01.04.2006 10:19
checkbox problem test022 PHP Tipps 2006 18 25.01.2006 21:59
Textboxen abhängig von Textbox, Checkbox und Radiobuttons HTML, Usability und Barrierefreiheit 1 13.01.2006 12:11
Alle Checkbox per Klick selectieren? becks123 HTML, Usability und Barrierefreiheit 3 25.12.2005 00:26
[Erledigt] Checkbox wert weitergeben PHP Tipps 2007 8 09.12.2005 14:30
[Erledigt] Checkbox will nicht HTML, Usability und Barrierefreiheit 2 23.11.2005 19:48
[Erledigt] Checkbox via Button steuern HTML, Usability und Barrierefreiheit 2 17.10.2005 09:53
checkbox .. mehrere werte auslesen bei gleichem namen PHP Tipps 2005-2 9 12.10.2005 15:24
Wie kann ich eine checked Checkbox in die DB eintragen??? LA-Finest PHP Tipps 2005-2 3 06.06.2005 13:36
[Erledigt] Checkbox - Übergabe mehrerer Werte patr1k HTML, Usability und Barrierefreiheit 6 16.03.2005 11:25
Checkbox Variable Beatbox PHP Tipps 2004-2 1 28.11.2004 16:47
[Erledigt] Formularelement Checkbox in Interaktion mit MYSQL Datenbanken 4 13.07.2004 12:14
datein per checkbox löschen (php) rocco PHP Tipps 2004 16 27.06.2004 21:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
undefined index: checkboxen, php checkbox wochentage, checkbox intergerwert php, php mysql wochentage checkbox

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:52 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.