php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.12.2005, 22:43  
Gast
 
Beiträge: n/a
Standard [Erledigt] Mal funktioniert es....mal funktioniert es nicht?!

Also ich versteh die Welt nicht mehr....
hab ein kleines Script, bei dem Werte von Checkboxes in eine DB übertragen werden. Dabei sollen die ausgewählten Wochentage und die UserId übertragen werden.

Tabelle sieht so aus:
ID | Userid | Mon | Tue | Wed | Thu | Fri | Sat | Sun | aktiv

Userid = int alles andere tinyint mit länge 1
Wird 1 eingetragen heißt es ja, bei 0 heißt es nein (handelt sich btw um einen PaidMailer der nur an bestimmten Tagen senden soll).


Formular sieht so aus:
Code:
<form name="options" method="post" action="index2.php?p=options&action=save&<?php echo"$sessionname=$sessionid";?>">

PaidMails Optionen:
<p class="links">Status:</p>
<p class="links">
<input name="aktiv" type="radio" value="1"> aktiviert


<input name="aktiv" type="radio" value="0"> deaktiviert
</p>
<p class="links">
Wochentage ausw&auml;hlen, an denen du PaidMails empfangen m&ouml;chtest:
</p>
<p class="links">
<input name="tage[]" type="checkbox" value="Mon"> Montag

<input name="tage[]" type="checkbox" value="Tue"> Dienstag

<input name="tage[]" type="checkbox" value="Wed"> Mittwoch

<input name="tage[]" type="checkbox" value="Thu"> Donnerstag

<input name="tage[]" type="checkbox" value="Fri"> Freitag

<input name="tage[]" type="checkbox" value="Sat"> Samstag

<input name="tage[]" type="checkbox" value="Sun"> Sonntag
</p>	
<p class="links"><input class="inputs3" type="submit" value="speichern"></p>
</form>
Hab mal alle Table sachen rausgenommen um es übersichtlicher zu machen


Dann zum PHP Code:

Code:
<?php
$aktiv=$_POST['aktiv'];
$update=mysql_query("REPLACE INTO paidmails_options (id,userid,Mon,Tue,Wed,Thu,Fri,Sat,Sun,aktiv) VALUES ('','$userid','0','0','0','0','0','0','0','$aktiv')");

if($_POST['tage'] != "")
{
foreach($_POST['tage'] as $tage)
{
$update2=mysql_query("UPDATE paidmails_options set $tage='1' where userid='$userid'");
}
}
?>
$userid wird schon vorher definiert....


Also wie gesagt, mal klappt es....mal klappt es nicht. Wenn es nicht klappt wird zwar ein neuer Eintrag in der DB eingetragen, aber alles mit "0", obwohl auch Tage gechecked waren.

Vermute, dass es mit dem Replace Befehl zu tun hat weil ich den zum ersten Mal verwende, aber weiß nicht so recht.

Gruss
goosele
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.12.2005, 22:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Dein Skript ist totaler Humbug. Was ist REPLACE INTO? Wozu?

Du willst einfach nur die angekreuzten Tage in die DB eintragen?

PHP-Code:
<?php
$sql 
sprintf("INSERT INTO paidmails_options SET userid = %u, Mon = %u, Tue = %u, Wed = %u, Thu = %u, Fri = %u, Sat = %u, Sun = %u, aktiv = %u",
  
$userid,
  (isset(
$_POST['tage']) && in_array('Mon'$_POST['tage'])) ? 0,
  (isset(
$_POST['tage']) && in_array('Tue'$_POST['tage'])) ? 0,
  ..
  (isset(
$_POST['tage']) && in_array('Sun'$_POST['tage'])) ? 0,
  
$_POST['aktiv']);
mysql_query($sql);
?>
Eventuell musst du statt dem INSERT ein Update machen.
Und bitte nicht Denglisch verwenden, entweder Deutsch oder Englisch, nicht beides gemischt, das macht die Vorteile jeder Sprache zunichte.
Zergling-new ist offline  
Alt 08.12.2005, 23:24  
Gast
 
Beiträge: n/a
Standard

Ich dachter Replace ist gleich Update und INsert in einem
Also wenn nicht vorhanden Insert, sonst update....

oder habe ich was falsch verstanden?
 
Alt 09.12.2005, 09:58  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Zergling
Dein Skript ist totaler Humbug. Was ist REPLACE INTO? Wozu?
http://dev.mysql.com/doc/refman/5.0/en/replace.html
xabbuh ist offline  
Alt 09.12.2005, 10:02  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

OK wusste ich nicht, aber totaler Humbug bezog sich nicht einzig auf REPLACE (sorry dafür, kannte ich nicht, hätte mich mal informieren sollen).

Sondern auch die Schleife mit den UPDATEs. Wenn ich mit einem Befehl alle UPDATEs erledigen kann, dann bau dir doch den String fürs UPDATE einfach zusammen?!

Abgesehen davon macht doch REPLACE dann keinen Sinn, wenn der PRIMARY KEY "id" garnicht übergeben wird, oder ist "userid" schon UNIQUE?
Zergling-new ist offline  
Alt 09.12.2005, 13:44  
Gast
 
Beiträge: n/a
Standard

userid ist unique
und leider versteh ich deinen code überhaupt nicht

Zitat:
<?php
$sql = sprintf("INSERT INTO paidmails_options SET userid = %u, Mon = %u, Tue = %u, Wed = %u, Thu = %u, Fri = %u, Sat = %u, Sun = %u, aktiv = %u",
$userid,
(isset($_POST['tage']) && in_array('Mon', $_POST['tage'])) ? 1 : 0,
(isset($_POST['tage']) && in_array('Tue', $_POST['tage'])) ? 1 : 0,
..
(isset($_POST['tage']) && in_array('Sun', $_POST['tage'])) ? 1 : 0,
$_POST['aktiv']);
mysql_query($sql);
?>

Hat einer vielleicht ne Doku/Tutorial wo das erklärt wird? Was z.b heißt %u....vermute mal das die Variabel später gegeben wird. Das raff ich überhaupt nicht: (isset($_POST['tage']) && in_array('Mon', $_POST['tage'])) ? 1 : 0,

Kann mich einer aufklären....danke
Laurenz
 
Alt 09.12.2005, 14:09  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von goosele
Hat einer vielleicht ne Doku/Tutorial wo das erklärt wird? Was z.b heißt %u....vermute mal das die Variabel später gegeben wird.
Schau dir hier mal die Platzhalter für sprintf(), printf() etc. an.

Zitat:
Zitat von goosele
Das raff ich überhaupt nicht: (isset($_POST['tage']) && in_array('Mon', $_POST['tage'])) ? 1 : 0,
Schau dir hier mal den Abschnitt über den ternären Operator () an.
xabbuh 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
Datenbankeintrag funktioniert nicht phrain PHP Tipps 2008 13 03.04.2008 12:59
.htaccess funktioniert On- aber nicht OFFline DER_Brain Server, Hosting und Workstations 5 13.05.2007 10:40
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
Lokal funktioniert alles -> auf Server fast nichts PsychoEagle Datenbanken 2 14.08.2006 08:43
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
[Erledigt] Upload funktioniert manchmal, manchmal nicht HTML, Usability und Barrierefreiheit 9 29.09.2005 12:32
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
PHP funktioniert nicht PHP Tipps 2005 20 28.04.2005 13:56
pear mime mail >> attachment funktioniert nicht PHP Tipps 2005 4 28.01.2005 16:23
geechoter button funktioniert nicht richtig Crypi HTML, Usability und Barrierefreiheit 10 29.12.2004 19:08
Script funktioniert bei include() nicht mehr :-( seb-web HTML, Usability und Barrierefreiheit 9 24.12.2004 12:35
Login funktioniert mit MD5 nicht PHP Tipps 2004-2 8 13.12.2004 19:32
Dateien erstellen oder schreiben funktioniert nicht im Web PHP Tipps 2004-2 1 05.12.2004 19:39
PHP funktioniert Solo. Aber nicht im Frame Sachse PHP Tipps 2004-2 10 21.11.2004 20:32
$row funktioniert nicht, warum? Paulo PHP Tipps 2004 10 22.09.2004 17:22


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