CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
03.10.2005, 18:17:16
|
Anfänger
|
|
Registriert seit: Sep 2005
Ort: Fürth
Beiträge: 23
|
|
AW: SQL Abfrage
Hi,
der wird doch bereits der Variablen $SQLString übergeben, oder?
PHP-Code:
$SQLString = mysql_query("select *
DAYOFMONTH(gebtag) AS tag,
MONTH(gebtag) AS monat,
YEAR(gebtag) AS jahr, ................
|
03.10.2005, 20:20:24
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: SQL Abfrage
Deine Query hat einen syntaktischen Fehler, weshalb MySQL keine Ergebnisse zurückliefert. Benutze mysql_error(). Dann findest du den Fehler (nämlich das fehlplatzierte *) in deiner Abfrage recht schnell:
PHP-Code:
<?php
$result = mysql_query($sql) or die(mysql_error());
?>
|
03.10.2005, 21:34:35
|
Anfänger
|
|
Registriert seit: Sep 2005
Ort: Fürth
Beiträge: 23
|
|
AW: SQL Abfrage
Hi xabbuh,
wollte mit dem * gleich alles abfragen was anscheinend nicht geht. Aber ich hatte bereits zuvor einzelne Inhalte abgefragt und es war der selbe Fehler.
Habe die mysql_error() Funktion eingefügt, aber es kommt die gleiche Fehlermeldung.
Irgendwie sehe ich den Wald vor Bäumen nicht. Was mache ich falsch???
PHP-Code:
<?php
// Verbindung zur Datenbank
include("../connect.inc.php");
$age_von = 25;
$age_bis = 35;
$result = mysql_query("
select,
id,
name,
familienstand,
DAYOFMONTH(gebtag) AS tag,
MONTH(gebtag) AS monat,
YEAR(gebtag) AS jahr,
CASE
When
TO_DAYS(CONCAT(YEAR(NOW()), '-', monat, '-', tag)) > TO_DAYS(NOW))
Then YEAR(NOW)) - jahr - 1
ELSE
YEAR(NOW)) - jahr
END
AS alter
GROUP BY
id
HAVING
alter BETWEEN $age_von AND $age_bis
ORDER BY
alter
")or (mysql_error());
// Ausgabe
while($data=mysql_fetch_array($result)) { // Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\Server\www\test.php on line 32
echo "NAME: " . $data['name'] . "<br>";
echo "ALTER: " . $data['alter'] . "<br>";
echo "FAMILIENSTAND: " . $data['familienstand'] . "<br><br>";
}
?>
|
03.10.2005, 21:56:02
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: SQL Abfrage
Du erhälst hier keine Fehlermeldung, weil du den Aufruf von die() vergessen hast. Der Fehler ist, dass du nach SELECT kein Komma setzen darfst.
|
03.10.2005, 23:40:16
|
Anfänger
|
|
Registriert seit: Sep 2005
Ort: Fürth
Beiträge: 23
|
|
AW: SQL Abfrage
hi xabbuh,
das Komma habe ich hier versehentlich eingegeben, in meiner Testumgebeung auf meinem Notebook war es richtig (ohne Komma), das die() habe ich tatsächlich übersehen.
Jetzt bekomme ich folgende Fehlermeldung:
"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 ') Then YEAR(NOW)) - jahr - 1 ELSE YEAR(NOW)) - jahr END ' at line 10"
Die Line 10 ist die Zeile wo "select" steht.
Kann es aber nicht nachvollziehen.
Was mich wundert ist, das die Variablen tag, monat, jahr und alter kein $ Vorzeichen haben. Werden die in der Select-Anweisung nicht benötigt?
|
04.10.2005, 08:28:35
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: SQL Abfrage
NOW() ist eine Funktion. Dort fehlt die öffnende runde Klammer.
|
04.10.2005, 10:36:05
|
Anfänger
|
|
Registriert seit: Sep 2005
Ort: Fürth
Beiträge: 23
|
|
AW: SQL Abfrage
hi xabbuh,
ich hoffe ich nerve nicht zu sehr, aber die ersten Schritte sind die mühsamsten.
Anbei nochmal den Quellcode mit aktueller Fehlermeldung.
PHP-Code:
<?php
// Verbindung zur Datenbank
include("../connect.inc.php");
$age_von = 25;
$age_bis = 35;
$result = mysql_query("
select
id,
name,
DAYOFMONTH(gebtag) AS tag,
MONTH(gebtag) AS monat,
YEAR(gebtag) AS jahr,
CASE
When
TO_DAYS(CONCAT(YEAR(NOW()), '-', monat, '-', tag)) > (TO_DAYS(NOW))
Then (YEAR(NOW)) - jahr - 1
ELSE
(YEAR(NOW)) - jahr
END
AS alter
GROUP BY
id
HAVING
alter BETWEEN $age_von AND $age_bis
ORDER BY
alter
") or die(mysql_error());
// Ausgabe
while($data=mysql_fetch_array($result)) {
echo "NAME: " . $data['name'] . "<br>";
echo "ALTER: " . $data['alter'] . "<br>";
echo "FAMILIENSTAND: " . $data['familienstand'] . "<br><br>";
}
?>
Fehlermeldung:
"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 'alter GROUP BY id HAVING alter BETWEEN 25 AND 35 ORDER BY a' at line 16"
Line 16 ist "Case"
Danke
Geändert von worker734 (04.10.2005 um 19:04:24 Uhr)
|
04.10.2005, 12:50:59
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: SQL Abfrage
Achja, alter ist ein reserviertes Wort. Um reservierte Worte in SQL-Queries zu nutzen, musst du diese mit Backticks (`) umschließen. Aus alter wird also `alter`.
|
04.10.2005, 13:06:54
|
Anfänger
|
|
Registriert seit: Sep 2005
Ort: Fürth
Beiträge: 23
|
|
AW: SQL Abfrage
Hi xabbuh,
geht irgendwie auch nicht.
PHP-Code:
HAVING
'alter' BETWEEN $age_von AND $age_bis
ORDER BY
'alter'
"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 'alter GROUP BY id HAVING 'alter' BETWEEN 25 AND 35 ORDER BY ' at line 15 "
habe auch anstelle von 'alter' eine andere Variblenbezeichnung genommen.
z.B.: valter
|
04.10.2005, 16:03:16
|
Junior Member
|
|
Registriert seit: Oct 2002
Ort: Titting
Alter: 39
Beiträge: 251
|
|
AW: SQL Abfrage
Versuch doch mal so:
PHP-Code:
$result = mysql_query("
select
damen_id,
damen_name,
DAYOFMONTH(gebtag) AS tag,
MONTH(gebtag) AS monat,
YEAR(gebtag) AS jahr,
CASE
When
TO_DAYS(CONCAT(YEAR(NOW()), '-', monat, '-', tag)) > (TO_DAYS(NOW()))
Then (YEAR(NOW())) - jahr - 1
ELSE
(YEAR(NOW())) - jahr
END
AS `alter`
GROUP BY
id
HAVING
`alter` BETWEEN ".$age_von." AND ".$age_bis."
ORDER BY
`alter`
") or die(mysql_error());
__________________
Affen benutzen oft Stöckchen als Hilfsmittel...
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:03:41 Uhr.
|