php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.03.2005, 11:25  
Gast
 
Beiträge: n/a
Standard variable wird nicht erstellt

moin moin

ich bin verzweifelt da ich meinen Fehler in einer datei nicht finde

Meine Datei sieht so aus:
Code:
    if(empty($_POST['aendern']))	{
 		 $einstellungen_sql = mysql_query("SELECT * FROM $options_table") or die (mysql_error());
  			$einstellungen = mysql_fetch_array($einstellungen_sql);
    			?>
    <form action="" method="post">
    			<table border="1" rules>
    			<tr>
 		 	<td colspan="2"><center>Einstellungen</center></td>
    			</tr>
    			<tr>
   			 <td>Seite online?</td>
 		 	<td><input type="checkbox" name="on" value="1" <?php if($einstellungen['on'] == 1){ echo "checked"; } ?>></td>
    			</tr>
    			<tr>
 		 	<td>Join Us anzeigen?</td>
 		 	<td><input type="checkbox" name="join" value="1" <?php if($einstellungen['join'] == 1){ echo "checked"; } ?>></td>
    			</tr>
    			<tr>
 		 	<td colspan="2"><input type="submit" class="submit" name="aendern" value="&Auml;ndern"></td>
    			</tr>
    			</table>
    			</form>
    <?php
    		}else{
 			$aendern = mysql_query("UPDATE $options_table SET on = '".$_POST['on']."', join = '".$_POST['join']."' WHERE lala = 1");
    			if($aendern)	{
    				echo "ja";
    			}else{
    				echo "nein";
    			}
    		}
die variable $options_table existiert.
Die Tabelle $options_table sieht folgendermaßen aus:
3 Felder (on,join,lala; alle int(1))
zur zeit ist lala=1 und das verändere ich auch nicht
wenn ich, nach dem "}else{" die beiden Variablen $_POST['on'] und $_POST['join'] ausgeben lasse, bekomme ich den richtigen wert.
also wenn der Haken gesetzt ist eine 1 ansonsten nichts


Wenn ich auf meinen Button "aendern" klicke, bekomme ich "nein" ausgegeben, aber ich weiss nicht warum

ich hoffe ihr könnt mir helfen

mfg
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.03.2005, 11:29  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

als erstes -> ganz an den anfang deines scripts error-reporting(E_ALL); dann bei querys immer mit mysql_error(); arbeiten:
beispiel:
PHP-Code:
<?php
$query 
=  "UPDATE $options_table SET on = '".$_POST['on']."', join = '".$_POST['join']."' WHERE lala = 1";
$sql mysql_query($query); 
if (!
$sql)
{
  echo 
'Fehler im Query: '.$query;
  
mysql_error();
}
?>
also bitte mal das query ausgeben lassen und den fehler dazu hier posten.
robo47 ist offline  
Alt 01.03.2005, 11:39  
Gast
 
Beiträge: n/a
Standard

huch da habe ich ein bearbeitetes script geschickt. ich hatte nämlich schon wen andere gefragt und der hatte mir mal gesagt ich solle das mysql_error() mal wegmachen ob es dann funktioniert.
Also normalerweise ist es dabei.

Folgende Fehlermeldung bekomme ich jetzt ausgegeben:
Code:
Notice: Undefined index: join in /.../.../datei.php on line 39
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on = '1', join = '' WHERE lala = 1' at line 1
Zeile 39 ist der Eintrag in die Datenbank
 
Alt 01.03.2005, 12:12  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
und der hatte mir mal gesagt ich solle das mysql_error() mal wegmachen
das ist der größte schwachsinn, wenn ein fehler auftritt, bringt es nix die augen zuzumachen, der fehler bleibt vorhanden. und man sollte niemals ohne diesen befehl ein script entwickeln, weil man ja sonst eben seine fehler nicht sieht.

ausserdem wäre es noch ganz ned wenn du mal die datenstruktur der datenbank postest, z.B. den create-befehl
oder halt händisch welche spalten es in der tabelle gibt und was für einen datentyp sie sind.

also was ich immernoch bruache ist ein komplettest query, das was die zeile
PHP-Code:
<?php
echo 'Fehler im Query: '.$query
?>
ausgibt.

mfg
robo47
robo47 ist offline  
Alt 01.03.2005, 12:16  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

ach ja, ich seh das problem, join ist ein reserviertes wort, so darf keine spalte heißen oder du musst den namen mit backtics umrahmen sprich denen hier: `

http://dev.mysql.com/doc/mysql/de/reserved-words.html

PHP-Code:
<?php
$query 
=  "UPDATE $options_table SET `on` = '".$_POST['on']."',`join` = '".$_POST['join']."' WHERE lala = 1"
?>
robo47 ist offline  
Alt 01.03.2005, 12:26  
Gast
 
Beiträge: n/a
Standard

na endlich funktioniert es.
danke
 
Alt 01.03.2005, 12:37  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
Zitat von gruffi
na endlich funktioniert es.
danke
ich würde dir den tip geben nicht nur copy und paste zu machen sondern den link auch mal durchzulesen und dein datebank design umzustellen, weils eigentlich nciht sauber ist mit reserved words als spaltennamen zu arbeiten.

mfg
robo47
robo47 ist offline  
Alt 01.03.2005, 12:50  
Gast
 
Beiträge: n/a
Standard

ich habe diese Tabelle ha jetzt umgenannt. Damit ich gar nicht mehr etwas ähnliches zu den reserved words habe.

Aber ein neue Problem hab ich nun.
Und zwar ist ja $_POST['join'] bzw. $_POST['on'], wenn kein Haken gesetzt wurde 0.
Und wenn ich versuche 0 in meine spalte einzufügen bekomme ich den Fehler:

Notice: Undefined index: join_us(ist mein neuer spaltenname)

Er setzt zwar join_us auf 0, was er auch tun soll, aber er gibt die Fehlermeldung aus.
Wie unterdrücke ich die Fehlermeldung?
 
Alt 01.03.2005, 12:57  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

deshalb überprüft man variablen immer mittels isset().

checkboxen werden eben wenn sie nciht gesendet sind, auch nicht übertragen.


-> http://www.php-faq.de/ch/ch-webvariablen.html
dort kannst du dir ja mal anschauen wie man mit checkboxen etc arbeitet, damit es sauber ist.

mfg
robo47
robo47 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
Variable in Datenbankentrag asa PHP Tipps 2008 11 22.07.2008 09:51
Gültigkeit einer Variable nur für ein Seitenaufruf ruferp PHP Tipps 2007 6 17.02.2007 18:19
Variable in SQL Anweisung verwenden Beatbox PHP Tipps 2006 2 08.08.2006 16:32
variable wird nich erkannt. Marian PHP Tipps 2006 1 03.04.2006 21:25
PHPMailer findet eigene Variable net seejay PHP Tipps 2007 6 04.01.2006 12:55
problem mit variable snatch-ic PHP Tipps 2007 5 13.12.2005 13:18
Variable durch 2. Variable bestimmen Quagga PHP Tipps 2005-2 11 26.10.2005 17:34
Variable als Variable behandeln ohne den Wert zu verwenden Pain-maker PHP Tipps 2005-2 4 11.09.2005 17:28
Session Variable oder Globale Variable ? PHP Tipps 2005-2 3 27.06.2005 21:49
[Erledigt] Fehlermeldung unterdrücken wenn keine variable übergeben... PHP Tipps 2005 6 20.03.2005 13:36
Variable in einer Variable Beatbox PHP Tipps 2005 7 15.01.2005 15:55
Warum wird Variable nicht übergeben??? Anuschka PHP Tipps 2005 2 06.01.2005 13:22
[Erledigt] $_SESSION verwandelt variable auf einem Server in ein Array PHP-Fortgeschrittene 2 16.12.2004 13:25
[Erledigt] Variable erst später definieren? PHP Tipps 2004-2 10 04.12.2004 20:23
2 Schleifen durchlaufen PHP Tipps 2004 1 14.09.2004 14:33


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