php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-06-2007, 21:43
powermax90
 Registrierter Benutzer
Links : Onlinestatus : powermax90 ist offline
Registriert seit: Sep 2006
Ort: Hanau
Beiträge: 100
powermax90 ist zur Zeit noch ein unbeschriebenes Blatt
Exclamation MySql mit if und else --> fehler ?

Hi, ich bin grade dabei die von einem Formular kommenden Daten in meine DB schreiben zu lassen, um es genauer zu sagen sind es checkboxen. Es sollen Teile einer Webseite abschaltbar sein, deswegen die checkboxen, aber das soll hier nicht zur sache stehen.

Weswegen ich Hilfe bruache ist die Sache, dass das mit if dann die "1" eintragen klappt, wenn es aber nicht so ist dann else mit "0" aber das funktioniert nicht. Ich weis nicht woran es liegen könnte, ihr vielleicht?

Hier der Script:


if ($profile = "on") {
$sql="UPDATE benutzer SET set_profile='$profile_on' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
} else {
$sql="UPDATE benutzer SET set_profile='0' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
header ("location: index.php?sucessful=1");
}



Vielen Dank im voraus.
Powermax90
Mit Zitat antworten
  #2 (permalink)  
Alt 22-06-2007, 21:50
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: MySql mit if und else --> fehler ?

Zitat:
Original geschrieben von powermax90
Weswegen ich Hilfe bruache ist die Sache, dass das mit if dann die "1" eintragen klappt,
OffTopic:
und an deutschnachhilfe hast du garnicht gedacht?
Mit Zitat antworten
  #3 (permalink)  
Alt 22-06-2007, 21:56
powermax90
 Registrierter Benutzer
Links : Onlinestatus : powermax90 ist offline
Registriert seit: Sep 2006
Ort: Hanau
Beiträge: 100
powermax90 ist zur Zeit noch ein unbeschriebenes Blatt
Angry Sorry ich bin ziemlich in Eile

... ja schreib ichs noch einmal

Ich möchte gerne durch checkboxen Abschnitte meiner Homepage abschalten und natürlich wieder anschalten können. Wenn die checkbox also den Wert true ausgibt soll in die DB Spalte 1 eingetragen werden, wenn nicht, also flase ist soll 0 eingetragen werden. Nur wenn der Wert false ist funktioniert es nicht.

Hier der Code:

if ($profile = "on") {
$sql="UPDATE benutzer SET set_profile='$profile_on' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
} else {
$sql="UPDATE benutzer SET set_profile='0' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
header ("location: index.php?sucessful=1");
}
Mit Zitat antworten
  #4 (permalink)  
Alt 22-06-2007, 21:56
hacktor81
 Newbie
Links : Onlinestatus : hacktor81 ist offline
Registriert seit: Jun 2007
Beiträge: 15
hacktor81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

=P

$myFlag = $profile == 'on' ? $profile_on : 0;
$sql = "UPDATE foo SET bar = '$myFlag'";
mysql_query( $sql )or die( mysql_error() );
if( $myFlag ) header( 'Location: xxx' );

Süß oder.

--------------------------------------------------------------------------------------
Was der großartige Bazzi mir mal gesagt hat:
Es ist ständig Komplexität zu vermeiden.
Mit Zitat antworten
  #5 (permalink)  
Alt 22-06-2007, 21:59
powermax90
 Registrierter Benutzer
Links : Onlinestatus : powermax90 ist offline
Registriert seit: Sep 2006
Ort: Hanau
Beiträge: 100
powermax90 ist zur Zeit noch ein unbeschriebenes Blatt
Standard LOL?

Das was du da schreibst versteh ich nicht, ich möchte ja lediglich eine 1 in meine DB eintragen wenn der Wert eine Variable zum Beispiel "1" ist, wenn nicht, soll eine "0" in die Spalte eingetragen werden.
Mit Zitat antworten
  #6 (permalink)  
Alt 22-06-2007, 22:08
hacktor81
 Newbie
Links : Onlinestatus : hacktor81 ist offline
Registriert seit: Jun 2007
Beiträge: 15
hacktor81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja deine If Abfrage ist unnötig du unterscheidest zwischen 2 Zuständen und das schreit nach dem Trinitäroperator.

$myVar = An oder Aus
SQL $myVar einfügen

fertig.
Mit Zitat antworten
  #7 (permalink)  
Alt 22-06-2007, 22:14
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich vermute, dass das Problem woanders liegt.

Du musst auf der auswertenden Seite wissen, was es alles für checkboxen gibt, und alle (ev. in einer Schleife) abfragen. Wenn da -> 1 wenn nicht da -> 0. Es wird nämlich kein "false" gesendet, wenn der Haken nicht drin ist, sondern gar nichts.
__________________
ich glaube
Mit Zitat antworten
  #8 (permalink)  
Alt 22-06-2007, 22:15
powermax90
 Registrierter Benutzer
Links : Onlinestatus : powermax90 ist offline
Registriert seit: Sep 2006
Ort: Hanau
Beiträge: 100
powermax90 ist zur Zeit noch ein unbeschriebenes Blatt
Question

kannst du das bitte etwas genauer erklären wie das geht? (google findet nicht so viel darüber was hilft)
Mit Zitat antworten
  #9 (permalink)  
Alt 22-06-2007, 22:18
powermax90
 Registrierter Benutzer
Links : Onlinestatus : powermax90 ist offline
Registriert seit: Sep 2006
Ort: Hanau
Beiträge: 100
powermax90 ist zur Zeit noch ein unbeschriebenes Blatt
Standard naja

ich hab ja angewiesen, wenn die $_POST["profile"]; Variable nichts hat also es "" ist soll ich die spalte set_profile eine "0" eingetragen werden. ICh bring hier mal den ganzen code hin:

<?

$uid = getUserData("id");

$welcome = $_POST["checkbox_1"];
$mail = $_POST["checkbox_2"];
$profile = $_POST["checkbox_3"];

$welcome_on = 1;
$mail_on = 1;
$profile_on = 1;

if ($welcome = "on") {
$sql="UPDATE benutzer SET set_center='$welcome_on' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
} else {
$sql="UPDATE benutzer SET set_center='0' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
}

if ($mail = "on") {
$sql="UPDATE benutzer SET set_mail='$mail_on' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
} else {
$sql="UPDATE benutzer SET set_mail='0' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
}

if ($profile = "on") {
$sql="UPDATE benutzer SET set_profile='$profile_on' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
} else {
$sql="UPDATE benutzer SET set_profile='0' WHERE id ='$uid'";
$result = mysql_query($sql) or die (mysql_error());
header ("location: index.php?sucessful=1");
}

?>
Mit Zitat antworten
  #10 (permalink)  
Alt 22-06-2007, 22:28
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
if ($welcome = "on") {
Das ist kein Vergleichsoperator, sondern eine Zuweisung. Weil ich gerade angeranzt wurde von wegen "friss oder stirb" , erklär ichs dir: durch $welcome = "on" setzt du ganz einfach $welcome auf den Wert "on". Das if drumherum überprüft nur, ob die Zuweisung geklappt hat, was immer der Fall ist. Daher kommst du nie in den else - Zweig.

Edit: der passende Vergleichsoperator wäre ==.

Außerdem:
Zitat:
$welcome = $_POST["checkbox_1"];
Wenn der Haken nicht drin ist, dann gibt es $_POST['checkbox_1'] nicht, weil nichts gesendet wurde. Richtig wäre
PHP-Code:
if (isset($_POST['checkbox_1'])) {
   
// 1 eintragen
} else {
   
// null eintragen

.

Ein vernünftiges error_reporting (E_ALL) hätte dich darauf hingewiesen.

Alles kapiert?
__________________
ich glaube

Geändert von ministry (22-06-2007 um 22:31 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 22-06-2007, 22:37
powermax90
 Registrierter Benutzer
Links : Onlinestatus : powermax90 ist offline
Registriert seit: Sep 2006
Ort: Hanau
Beiträge: 100
powermax90 ist zur Zeit noch ein unbeschriebenes Blatt
Talking geil xD

Dank es funktioniert, das mit isset kannte ich noch nicht, jetzt weis ichs^^

thx thx
Mit Zitat antworten
  #12 (permalink)  
Alt 22-06-2007, 22:40
hacktor81
 Newbie
Links : Onlinestatus : hacktor81 ist offline
Registriert seit: Jun 2007
Beiträge: 15
hacktor81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

<?php
$uid = getUserData("id");

$welcome = isset( $_POST["checkbox_1"] ) ? 1 : 0;
$mail = isset( $_POST["checkbox_2"] ) ? 1 : 0;
$profile = isset( $_POST["checkbox_3"] ) ? 1 : 0;

$sql="UPDATE benutzer SET set_center='$welcome' WHERE id ='$uid'";
mysql_query($sql) or die (mysql_error());

$sql="UPDATE benutzer SET set_mail='$mail' WHERE id ='$uid'";
mysql_query($sql) or die (mysql_error());

$sql="UPDATE benutzer SET set_profile='$profile' WHERE id ='$uid'";
mysql_query($sql) or die (mysql_error());

header ("location: index.php?sucessful=1");
?>

ganz einfach oder?
Ausserdem hat man dann auch gleich schon die Benutzereingabe validiert.
Denn der Witz bei der Sache ist, das $_POST[checkbox_x] nicht unbedingt so funktioniert wie erwartet, weil die Daten vom Clienten kommen, da kann auch schadhafter Code eingeschleusst werden.
-------------------------------------------------------------------------------------
hierzu: http://www.php.net/mysql_real_escape_string
ganz wichtig!

EDIT:
huch ich war zu langsam

Geändert von hacktor81 (22-06-2007 um 22:43 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 22-06-2007, 22:54
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ministry
Weil ich gerade angeranzt wurde von wegen "friss oder stirb"
OffTopic:
ach komm, hau nicht so durch, "mimostry"
powermax90 hat schon einige posts, rtfm hätte es auch getan

Mit Zitat antworten
  #14 (permalink)  
Alt 22-06-2007, 22:56
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OffTopic:
Ist es heute mal wieder nicht so einfach, es dir Recht zu machen?
__________________
ich glaube
Mit Zitat antworten
  #15 (permalink)  
Alt 23-06-2007, 00:06
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ministry
erklär ichs dir: durch $welcome = "on" setzt du ganz einfach $welcome auf den Wert "on". Das if drumherum überprüft nur, ob die Zuweisung geklappt hat, was immer der Fall ist.
nur um es richtig zu stellen, wenn die zuweisung auch php-mäßig true ergibt.
zuweisungen mit 0, false, '', leeres array, usw. fallen z.b. nicht darunter.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:06 Uhr.