• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Syntaxerror bei Stringzusammenbau...

Metallica

Lounge-Member
Hi Leute,

Datum und Zeit des Users schreibe ich in eine sql-db.
Aus der ID, Datum und Zeit will ich wiederrum eine ganze Zahl erzeugen.
das php-script sieht jetzt folgendermaßen aus (Fehlermeldung steht im Kommentar):

<?php
$database= "XXXXX";
$sqlhost= "localhost";
$sqluser= "YYYYY";
$sqlpass= "ZZZZZ";

$verbindung = mysql_connect ( $sqlhost, $sqluser, $sqlpass);
if (!$verbindung) {
echo "Keine Verbindung zur DB möglich!\n";
exit;
}
$date = date("d.m.Y");
$time = date("H:i:s");

mysql_query("INSERT INTO headrotation SET DATEhr = '$date',TIMEhr = '$time'");

//ab da bekomme ich die Fehlermeldung:
//Supplied argument is not a valid MySQL result resource
$lesen = mysql_query("select IDhr, DATEhr, TIMEhr from headrotation ");
while($row = mysql_fetch_array($lesen))
{ $nummer = $row[IDhr].".".$row[DATEhr].".".$row[TIMEhr];
$eintrag = mysql_query(" update headrotation set NUMMERhr='$nummer' where IDhr='$row[IDhr]' ");
}

mysql_close($verbindung);
?>

Bitte um Rat - bin ECHT schon AM VERZWEIFELN!
 
ist klar, dass das nicht geht. das insert-statement sieht anders aus:
$query = "INSERT INTO $db_table VALUES('$id', '$typ', '$user', '$pass', '$nachname', '$vorname', '$strasse', '$plz_ort', '$land', '$email', '$homepage', '$zahlungsart', '$erfasst', '$bezahlt', '$verschickt')";

und so das update-statement:
$query = "UPDATE $db_table SET id = '$id', user = '$user', pass = '$pass', nachname = '$nachname', vorname = '$vorname', strasse = '$strasse', plz_ort = '$plz_ort', land = '$land', email = '$email', homepage = '$homepage', zahlungsart = '$zahlungsart', erfasst = '$erfasst', bezahlt = '$bezahlt', verschickt = '$verschickt' WHERE id = '$id'";

bye,
mo
 
Da fehlt aber nochwas =)

Wo is die Connection bei den Updates etc????

Des muss doch eigentlich:

mysql_query($sql-string, $connection);

heissen, oder?
 
es funkt nicht.
der befehl sieht jetzt so aus:
$date = date("d.m.Y");
$time = date("H:i:s");
$query = "INSERT INTO headrotation VALUES (DATEmm = '$date', TIMEmm = '$time')";
 
Versuchmal den mysql_query, wo der $query drin is so aufzubauen wie ich sagte, also:

$lesen = mysql_query($query, $verbindung);

in deinem Fall
 
Hab das script jetzt testweise wie folgt abgeändert.
Es handelt sich um das original-script so wie ich es vom server abrufe.

<?php
$database= "databasename";
$sqlhost= "localhost";
$sqluser= "username";
$sqlpass= "userpassword";

$verbindung = mysql_connect ( $sqlhost, $sqluser, $sqlpass);
if (!$verbindung) {
echo "Keine Verbindung mit SQLDB möglich!\n";
exit;
}
//bis da her muss es passen weil ich die Fehlermeldung von der Verbindung nicht erhalte!

//ab hier haut irgendwas nicht hin - testweise hab ich's jetzt mal so versucht
$date = "2001-11-21";
$time = "14:13:20";

$sqlbefehl = "INSERT INTO headrotation VALUES ('$date','$time')";

mysql_close($verbindung);
?>

Wo soll ich deiner Meinung nach jetzt die query einbauen??
 
Also, BOLD mal die Änderung:

<?php
$database= "databasename";
$sqlhost= "localhost";
$sqluser= "username";
$sqlpass= "userpassword";

$verbindung = mysql_connect ( $sqlhost, $sqluser, $sqlpass);
if (!$verbindung) {
echo "Keine Verbindung mit SQLDB möglich!\n";
exit;
}
//bis da her muss es passen weil ich die Fehlermeldung von der Verbindung nicht erhalte!

//ab hier haut irgendwas nicht hin - testweise hab ich's jetzt mal so versucht
$date = "2001-11-21";
$time = "14:13:20";

$sqlbefehl = "INSERT INTO headrotation VALUES ('$date','$time')";

mysql_query($sqlbefehl, $verbindung);
mysql_close($verbindung);
?>


So, weil du musst ja schliesslich auch irgendwie das MySQL Query ausführen, und das geht nur über:

mysql_query(SQL String der Abfrage, Connection string)

So long
 
hab's zusammengebracht. Es funkt und ich kann den neuen DB-Eintrag in phpmyadmin auch sehen.

Eine Frage hätt ich da aber noch:
Ich will zu meiner $time-variablen 6Std dazuzählen und dachte, dass das so geht.
Dem ist aber nicht so.

Was paßt an der Zeile nicht?
$time = date("H:i:s") + 21600;
 
Versuchs mal ander, mit

$time2 = $time + "06:00:00";

Weil du hast ja keine Sekunden bei deiner Timevariable, sondern Stunden:Minuten:Sekunden. Denke ich mal, mit dem Tim zeug kenn ich mich nicht so gut aus.
 
es stimmt fast.

ich bekomme jetzt allerdings nur die Std. zurück. In diesem Fall "15" => Minuten und Sekunden fehlen ihm noch.

Hast Du vielleicht noch 'ne Idee??
 
Hallo!

In MySQL gibts ne Funktion zum addieren:

PHP:
$sqlStatement = "SELECT
                             irgendwas,
                             DATE_ADD(now(),INTERVAL 6 HOUR) AS spaeter,
                             FROM mytable";

Jetzt bekommst du im Alias - Feld spaeter die aktuelle Zeit + 6 Stunden. Damit kannst du auch weitermachen:

PHP:
$sqlStatement = "SELECT
                             irgendwas,
                             zeit,
                             DATE_ADD(now(),INTERVAL 6 HOUR) AS spaeter,
                             FROM mytable
                             WHERE zeit < spaeter";

Jetzt werden nur Datensätze ausgegeben indem das DATETIME - Feld Zeit kleiner ist als die Jetzige Zeit + 6 Stunden.

......
 
Danke für deine ausführliche antwort - aber das ist ja viel zu kompliziert.

es muss doch eine einfache möglichkeit geben, die 6std dazu zu zählen.

Die Std bekomm ich ja schon richtig vom server. er zeigt mir nur noch keine minuten und sekunden an.
 
Zurück
Oben