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 |
10.09.2003, 14:54:26
|
|
Anfänger
|
|
Registriert seit: Jul 2003
Ort: Lüneburg
Beiträge: 53
|
|
Daten aus der DB lesen
Hallo,
steh irgendwie auf dem Schlauch!
Also hab eine Datenbank mit den Feldern:
Kuenstler
Titel
Homepage
Dateiname
Zeit
Zeit1
Zeit2
Zeit3
Die Verbindung zur DB steht.
Aber kann keine Daten auslesen.
Versuche es im Moment so:
Code:
$result = mysql_query("SELECT * FROM $db_table WHERE id = '2'");
Nur was muss ich machen, wenn ich z.B. den Wert aus der Spalte Kuenstler ausgeben möchte?
??
Danke
-Neo-
edit: Wenn ich echo $result; mache gibt er mir Resource id #2
aus. Was sollte mir das sagen?
Geändert von Neo2003 (10.09.2003 um 14:57:07 Uhr)
|
10.09.2003, 15:28:23
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi,
das kannst Du z.B. so machen
PHP-Code:
$result = mysql_query("SELECT * FROM $db_table WHERE id = '2'");
$Kuenstler = mysql_result($result, 0, "Kuenstler");
echo $Kuenstler;
//usw...
oder so...
PHP-Code:
$result = mysql_query("SELECT * FROM $db_table WHERE id = '2'");
while($row=mysql_fetch_array($result))
{
echo $row['Kuenstler']."<br>";
echo $row['Titel']."<br>";
//usw.
}
P.S.: Hat das mit den "verbleibenden Minuten" geklappt?
|
10.09.2003, 15:49:32
|
|
Anfänger
|
|
Registriert seit: Jul 2003
Ort: Lüneburg
Beiträge: 53
|
|
Hi,
ja super hab nu funzt das auch.
Da smit den verbleibenden Minuten hat auch geklappt!
Dankeschön!!!!!
Aber hab gleich die nächste Frage.
In meiner DB hab ich das Feld Zeit.
Darin steht die Zeit im Format 1500 für 15 Uhr.
Die aktuelle Uhrzeit lasse ich per PHP ermitteln und möchte jetzt den Eintrag aus der DB haben der z.b. 1600 am nächsten ist.
Wie muss die Abfrage lauten?
-Neo-
|
10.09.2003, 16:23:50
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi,
probier das mal aus
PHP-Code:
$jetzt = date("Hi");
mysql_query("SELECT * FROM $db_table WHERE Zeit > '".$jetzt."' ORDER BY Zeit ASC LIMIT 1");
Grüsse
chris17
|
10.09.2003, 16:30:52
|
|
Anfänger
|
|
Registriert seit: Jul 2003
Ort: Lüneburg
Beiträge: 53
|
|
Hi,
das klappt schon super!
Aber wie mache ich es das er nicht nur Zeit sondern auch Zeit1, Zeit2 und Zeit3 vergleicht?
Und davon den am nächsten vorkommenden ausspuckt?
-Neo-
|
10.09.2003, 16:39:24
|
|
Anfänger
|
|
Registriert seit: Jul 2003
Ort: Lüneburg
Beiträge: 53
|
|
Hier noch mal meine DB.
http://www.free-lancer.org/ff/db_aufbau.gif
So und wenn es jetzt 1645 ist soll er mir halt Band1 ausgeben weil bei Band1 Zeit2 am nächsten dran ist.
So eine Abfrage brauche ich.
Die Abfrage von eben macht das nur bei Zeit nicht bei allen.
Hoffe man kann den DB Aufbau erkennen;)
-Neo-
Geändert von Neo2003 (10.09.2003 um 17:12:15 Uhr)
|
10.09.2003, 17:55:42
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Funktionieren tut's...
PHP-Code:
$jetzt = "1645";
$res = mysql_query("SELECT * FROM kuenstler WHERE Zeit > '".$jetzt."' ORDER BY Zeit ASC LIMIT 1");
$zeit[] = @mysql_result($res, 0, "Zeit");
$res = mysql_query("SELECT * FROM kuenstler WHERE Zeit1 > '".$jetzt."' ORDER BY Zeit1 ASC LIMIT 1");
$zeit[] = @mysql_result($res, 0, "Zeit1");
$res = mysql_query("SELECT * FROM kuenstler WHERE Zeit2 > '".$jetzt."' ORDER BY Zeit2 ASC LIMIT 1");
$zeit[] = @mysql_result($res, 0, "Zeit2");
$res = mysql_query("SELECT * FROM kuenstler WHERE Zeit3 > '".$jetzt."' ORDER BY Zeit3 ASC LIMIT 1");
$zeit[] = @mysql_result($res, 0, "Zeit3");
print_r($zeit);//Testausgabe
for($i = 0; $i < count($zeit); $i++)
{
if($zeit[$i] == "")
{
unset($zeit[$i]);
}
}
$zeit = array_values($zeit);
echo min($zeit);
Ob's elegant ist? :-)
Ob man das in einem Query erledigen kann?
Geändert von chris17 (10.09.2003 um 17:58:32 Uhr)
|
11.09.2003, 10:39:21
|
|
Anfänger
|
|
Registriert seit: Jul 2003
Ort: Lüneburg
Beiträge: 53
|
|
Hi,
wenn ich das versuche bekomme ich immer
Array ( [0] => [1] => [2] => [3] => )
Ausgegeben.
Soll das so sein?
Wenn ja was muss ich damit machen um die einzelnen Werte des ensprechenden Eintrages auszugeben?
Wenn nein, was mache ich falsch?
-Neo-
|
11.09.2003, 11:04:15
|
Member
|
|
Registriert seit: Aug 2002
Beiträge: 775
|
|
dein aufbau der db ist schutte.
der bereich "zeit" ist immer "zeit" also gehört er in eine spalte.
eine weite möglichkeit wäre auch gleich das datum dazu zu speicher, damit nicht falsche datensätze ausgelesen werden.
also hier mein vorschlag
Code:
tabelle1:
id | kid | titel | timestamp
1 | 1 | test1 | 1064062800
2 | 2 | test2 | 1064064600
tabelle2:
kid | name
1 | Max Müller
2 | Max Schuster
abfrage:
select t2.name,t1.titel,from_unixtimestamp('%d.%m.%Y %H:%i',t1.timestamp) time from
tabelle1 t1 inner join tabelle2 t2 using(kid) where t1.timestamp > unix_timestamp(now()) limit 1;
|
11.09.2003, 11:09:11
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi,
Du machst nix falsch.
Wenn das dabei rauskommt, -> Array ( [0] => [1] => [2] => [3] => ), dann gibt's kein gültiges Ergebnis.
-> Obacht, ich habe vor die Querys das @-Zeichen geschrieben!
In Deinem Bsp. würde das eintreten, wenn es 19:00 Uhr wäre. Dann spielt ja, laut Zeitplan, keine Band mehr. Dann bietet sich an den frühesten Termin vom nächsten Tag auszugeben.
Array ( [0] => [1] => [2] => [3] => )
-> das Array sieht in "echt" so aus: $zeit = array("","","","");
Hat also 4 Indizes, das sind die Ergebnisse der 4 Querys.
print_r ist saupraktisch um Array zu Testzwecken ausgeben zu lassen.
Grüsse
chris17
edit: @MiH, immer wieder eine Freude Deine Querys zu sehen :-)
Geändert von chris17 (11.09.2003 um 11:19:27 Uhr)
|
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 21:56:36 Uhr.
|