ERLEDIGT
JA
JA
ANTWORTEN
14
14
ZUGRIFFE
2127
2127
EMPFEHLEN
-
06.04.08 15:05 #1
Hallo!
ich plag mich seit längerem mit einem Problem rum.
Und zwar hab ich folgendes Skript, das einen User in eine Spalte eintragen soll:
Das Problem ist, er soll nur eintragen, wenn die Spalte leer ist.PHP-Code:<?
$connectionid = mysql_connect ("localhost", "****", "****");
if (!mysql_select_db ("usr_web**_*", $connectionid))
{
die ("Verbindung zur Datenbank fehlgeschlagen.");
}
$benutzer = $_POST['newusr'];
$sql = "INSERT INTO wachplan
(wg1)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
$sql = "INSERT INTO wachplan
(wg2)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
$sql = "INSERT INTO wachplan
(wg3)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
$sql = "INSERT INTO wachplan
(wg4)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
$sql = "INSERT INTO wachplan
(wg5)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
?>
Quasi so:
PHP-Code:<?
$connectionid = mysql_connect ("localhost", "****", "****");
if (!mysql_select_db ("usr_web**_*", $connectionid))
{
die ("Verbindung zur Datenbank fehlgeschlagen.");
}
$benutzer = $_POST['newusr'];
/* Wenn wg1 = leer, dann */
$sql = "INSERT INTO wachplan
(wg1)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
/* Wenn wg2 = leer, dann */
$sql = "INSERT INTO wachplan
(wg2)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
/* Wenn wg3 = leer, dann */
$sql = "INSERT INTO wachplan
(wg3)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
/* Wenn wg4 = leer, dann */
$sql = "INSERT INTO wachplan
(wg4)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
/* Wenn wg5 = leer, dann */
$sql = "INSERT INTO wachplan
(wg5)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
/* else */
header ("Location: wachplan.php?allesvoll=1");
?>
Wie lässt sich sowas denn realisieren, dass man die Spalte vorher ausliest, wenn voll weitergibt, wenn voll, weitergibt etc.etc...?
Vielen Dank und Grüße,
Fabian
-
06.04.08 15:19 #2
- Registriert seit
- Jun 2007
- Beiträge
- 73
Hi schonmal
probiertPHP-Code:if(!empty($_POST['feldname']))
{
//mach was
}
Mit diesem Beispiel kannst du sagen, wenn das Feld leer ist dann mach was.
Wenn du noch haben willst ansonsten denn mach eindahinter..PHP-Code:else {
//Mach was anderes
}
Hoffe das hilf dir.
Mfg Oliver
-
06.04.08 15:23 #3
hai,
danke. Von der struktur her hilfts mir schon, problem ist nur, dass ich ja eben nicht wie in deinem Beispiel ein Post-Feld erkunden will, sondern eine MySQL Spalte...
greetz
-
06.04.08 19:24 #4
so. Habe nun versucht, es auf die Reihe zu stellen.
Kenn mich nur leider in MYSQL eher wenig aus, deshalb auch dieser verrückte Code.
Nun meine Bitte: Kann mir das jemand richtig stellen ? Ich denke, es ist klar was ich meine, weiß nur nicht wie ich es umsetzen soll. Bei dem untenstehenden Code kommt folgende Meldung:
Hier der Code:Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in /var/www/web63/html/wdp/set_entry.php on line 16
Vielen Dank für eure Bemühungen!PHP-Code:<?
$connectionid = mysql_connect ("localhost", "web**", "****");
if (!mysql_select_db ("usr_web**_*", $connectionid))
{
die ("Es konnte keine Verbindung zur Datenbank hergestellt werden. . .");
}
$tag = $_POST['tag'];
$mysql = "SELECT wg1 from wachplan WHERE tag=$tag";
if(!empty(row['wg1'])) /* Wie soll die Spalte genannt werden, damit sie geprüft werden kann */
{
$benutzer = $_POST['newusr'];
$sql = "INSERT INTO wachplan
(wg1)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
}
$mysql = "SELECT wg2 from wachplan WHERE tag=$tag";
if(!empty(row['wg2'])) /* Wie soll die Spalte genannt werden, damit sie geprüft werden kann */
{
$benutzer = $_POST['newusr'];
$sql = "INSERT INTO wachplan
(wg2)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
}
$mysql = "SELECT wg3 from wachplan WHERE tag=$tag";
if(!empty(row['wg3'])) /* Wie soll die Spalte genannt werden, damit sie geprüft werden kann */
{
$benutzer = $_POST['newusr'];
$sql = "INSERT INTO wachplan
(wg3)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
}
$mysql = "SELECT wg4 from wachplan WHERE tag=$tag";
if(!empty(row['wg4'])) /* Wie soll die Spalte genannt werden, damit sie geprüft werden kann */
{
$benutzer = $_POST['newusr'];
$sql = "INSERT INTO wachplan
(wg4)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
}
$mysql = "SELECT wg5 from wachplan WHERE tag=$tag";
if(!empty(row['wg5'])) /* Wie soll die Spalte genannt werden, damit sie geprüft werden kann */
{
$benutzer = $_POST['newusr'];
$sql = "INSERT INTO wachplan
(wg5)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
}
else {
header ("Location: wachplan.php?full=1");
}
?>
-
06.04.08 19:32 #5
- Registriert seit
- Jun 2005
- Beiträge
- 303
Hallo Fabian.
Schau dir bitte einfach mal die Fehlermeldung an.
Die sagt es doch ganz klar. Auf Zeile 16 fehlt ein $ bei einer Variable.
Wenn du dir jetzt das row['blabla'] ansiehst, dann fehlt da ein $ wie es in der Fehlermeldung steht.
Gruß SimonErich
-
06.04.08 19:44 #6
okay. Danke. Hätte ich fast selber drauf kommen können :-P
Jetzt steh ich schon wieder vor einem neuen Problem:
Egal ob die Spalte leer oder besetzt ist, er leitet immer zu Location: wachplan.php?full=1 um.
Muss wohl ein Syntax-Fehler in den If-Abfragen davor sein...
Kannst du mir da noch weiterhelfen ?
-
06.04.08 20:13 #7
- Registriert seit
- Jun 2005
- Beiträge
- 303
@Fabian
Dein Script ist in sich einfach nicht schlüssig.
Wo kommt dieses $row auf einmal her. Falls es von der Datenbank kommen sollte, dann fehlt da noch etwas am mysql Teil. Schau dir lieber noch einmal die Datenbankfunktionen und wie man aus einer Datenbank ausliest an. Ganz ehrlich. Es bringt einfach nichts, wenn ich dir den Code jetzt umschreibe und du weißt nicht wie es weitergeht.
Schau dir vor allem die Funktion mysql_fetch_array an.
Gruß SimonErich
-
08.04.08 11:34 #8
versteh ich, ja. Hab mich jetzt auch drum gekümmert, es will nur einfach nicht funktionieren.
Es wird jedes mal auf die "?full=1" weitergeleitet, obwohl die Spalte leer ist
:
PHP-Code:$tag = $_POST['tag'];
$mysql = "SELECT wg1 from wachplan WHERE termin=$tag";
$row = mysql_fetch_array($mysql, MYSQL_BOTH);
if(!empty($row))
{
$benutzer = $_POST['newusr'];
$sql = "INSERT INTO wachplan
(wg1)
VALUES
('".$benutzer."')";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
}
else {
header ("Location: wachplan.php?full=1");
}
-
$row ist ein array. Also solltest du es auch so Abfragen...
// edit: Ausserdem ist die if-Abfrage falschrum wenn ich das richtig sehe. So bekommst du FALSE zurück wenn $row[] leer ist, und es wird der else Teil ausgeführt... Schreib mal nur empty() oder if($row['wgl'] == ''PHP-Code:$row['wgl']
Geändert von Loomis (08.04.08 um 11:53 Uhr) Grund: edit -_-
-
08.04.08 12:15 #10
Vielen Dank!
EDIT: Ein Problem noch: Die WHERE Abfrage funktioniert nicht. Die Struktur passt doch?! "WHERE Spalte=Wert".
Es funktioniert auch nicht, wenn ich einen festen Wert angebe, also z.B. "WHERE termin='12.32.' und dieser Wert in der Spalte vorhanden ist. Zudem kommt noch, dass er jedes mal eine neue Zeile anlegt, wobei er eigentlich zu full weiterleiten sollte :-PGeändert von Fabian Frank (08.04.08 um 12:20 Uhr)
-
Versuch mal das.PHP-Code:
$mysql = 'SELECT wg1 FROM wachplan WHERE termin = "' .$tag. '"';
$result = mysql_query($mysql);
$row = mysql_fetch_array($result, MYSQL_BOTH);
-
08.04.08 14:18 #12
funktioniert auch nicht :-P
Er erstellt immer wieder eine neue Zeile in der DB...
Muss evtl. hier noch eine WHERE-Abfrage rein?
PHP-Code:$benutzer = $_POST['newusr'];
$sql = "INSERT INTO wachplan
(wg1)
VALUES
('".$benutzer."')
/* WHERE termin='...' /*
";
$eintragen = mysql_query($sql);
header ("Location: wachplan.php?done=1");
Geändert von Fabian Frank (08.04.08 um 14:24 Uhr)
-
08.04.08 14:22 #13
Geb einfach mal den mysql_error aus.
Und stelle mal den error_reporting auf E_ALLPHP-Code:$sql = "SELECT `wg1` FROM `wachplan` WHERE `termin` = '$tag'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
echo mysql_error();
PHP-Code:error_reporting(E_ALL);
Der INSERT INTO Befehl erstellt immer eine neue neue Zeile.Er erstellt immer wieder eine neue Zeile in der DB...
Zum aktualisieren einer Zeile musst du UDPATE benutzen.
-
// edit: Der über mir war schneller
Geändert von Loomis (08.04.08 um 14:27 Uhr) Grund: edit
-
08.04.08 14:34 #15
Ähnliche Themen
-
Problem beim auslesen einer Spalte in Mysql DB
Von Silver83 im Forum JavaAntworten: 3Letzter Beitrag: 22.03.08, 20:35 -
OPC-Server auslesen und in MySQL-Datenbank eintragen
Von helene1 im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 12.03.08, 16:33 -
MySQL: bei leerem Wert in Spalte Ersatzwert eintragen - wie?
Von Kryptaesthesie im Forum Relationale DatenbanksystemeAntworten: 17Letzter Beitrag: 05.03.08, 14:17 -
If-bedingung und mysql Tabelle jede zweite Zeile auslesen
Von Frank Snake im Forum PHPAntworten: 2Letzter Beitrag: 06.04.04, 12:43 -
Werte in MySQL eintragen -> auslesen -> editieren wieder eintragen
Von M@rk im Forum PHPAntworten: 8Letzter Beitrag: 07.03.04, 12:35





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren