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!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
20.12.2007, 14:44:32
|
|
AW: Klassenliste erstellen
<subjektiv>
Iiiihhh... PDO
</subjektiv>
Geändert von rambi (20.12.2007 um 14:44:44 Uhr)
|
20.12.2007, 15:00:15
|
Anfänger
|
|
Registriert seit: Dec 2007
Beiträge: 14
|
|
AW: Klassenliste erstellen
Jetzt steh ich wieder an.
Ich möchte das Ergebnis in Tabellenform bringen. Nur mit den Zeilen und Spalten, das krieg ich nicht hin.
Falls sich jemand erbarmt, ich wäre sehr glücklich über einen Vorschlag.
|
20.12.2007, 15:33:26
|
Anfänger
|
|
Registriert seit: Dec 2007
Beiträge: 14
|
|
AW: Klassenliste erstellen
jetzt steh ich wieder an. :( Ich möchte das Ergebnis in Tabellenform bringen, komm aber mit den Spalten und Zeilen nicht klar.
Falls sich jemand meiner erbarmt, wäre ich ihm sehr dankbar.
|
20.12.2007, 15:48:10
|
Junior Member
|
|
Registriert seit: Dec 2007
Beiträge: 151
|
|
AW: Klassenliste erstellen
Hab da mal was kleines zusammengepfriemelt, hoffe das funzt. Ist 'n mix aus meinem code und der von def, hoffe das passo so zusammen. Habe keine Klassenliste, drum konnt'ichs nicht testen :-)
PHP-Code:
// Verbindung zum Mysql Server herstellen
$verbindung = mysql_connect("xxx", "xxx", "xxx");
// wenn mysql_connect fehl schlägt, liefert es false zurück
// also: wenn !$verbindung, dann Verbindung fehlgeschlagen
if (!$verbindung) {
echo 'Verbindung zum Mysql Server ist fehlgeschlagen. ' . mysql_error();
exit ();
}
// Datenbank auswählen
$dbselect = mysql_select_db('xxx', $verbindung);
// mysql_select_db liefert false, wenn die Datenbank nicht gewählt werden kann
if (!$dbselect) {
echo 'Datenbank konnte nicht ausgewählt werden. ' . mysql_error($verbindung);
exit ();
}
// SQL Anfrage an den Mysql Server schicken
$sql = "SELECT name, klasse FROM jos_users ORDER BY klasse";
$res = mysql_query($sql, $verbindung);
// mysql_query liefert false, wenn ein Fehler aufgetreten ist.
if (!$res) {
echo 'Fehler bei der SQL Anfrage. ' . mysql_error($verbindung);
exit ();
}
$aktuelle_klasse = null;
// Alle Datensätze abarbeiten, einen nach dem anderen
$int_sql_rowcounts = @ mysql_num_rows($res);
$int_sql_colcounts = @ mysql_num_fields($res);
//
// Datensätze anzeigen
//
if ($int_sql_rowcounts > 0) {
debug('Datensätze anzeigen');
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
// wenn sich die Klasse geändert hat
if ($aktuelle_klasse !== $row['klasse']) {
// neue KLasse ausgeben
if ($aktuelle_klasse == null) {
echo '</table>' . "\n";
}
echo '<table class="standardtable">' . "\n";
echo ' <tr class="titelzeile">' . "\n";
echo ' <td colspan="' . $int_sql_colcounts . '" class="tabletitel titelschrift">' . $row['klasse'];
echo ' </tr>' . "\n";
echo ' <tr class="tablesubtitel">' . "\n";
debug('Spalten anzeigen');
for ($int_temp_counter = 0; $int_temp_counter < $int_sql_colcounts; $int_temp_counter++) {
//
// Spaltentitel anzeigen
//
echo ' <td>' . mysql_field_name($res, $int_temp_counter) . '</td>' . "\n";
}
echo ' </tr>' . "\n";
// und als aktuelle Klasse speichern
$aktuelle_klasse = $row['klasse'];
}
debug('Zeilen ausgeben');
$int_temp_counter2 = 0;
while ($int_sql_resultarray = mysql_fetch_array($res)) {
//
// Jede Zeile ausgeben
//
$int_temp_counter2++;
echo ' <tr';
if ($int_temp_counter2 % 2 == 0) {
echo ' class="markrows"';
}
echo '>' . "\n";
for ($int_temp_counter = 0; $int_temp_counter < $int_sql_colcounts; $int_temp_counter++) {
echo ' <td>' . $int_sql_resultarray[$int_temp_counter] . '</td>' . "\n";
}
echo ' </tr>' . "\n";
}
}
echo '</table>' . "\n";
} else {
debug('Keine Daten');
echo '<table class="standardtable">' . "\n";
echo ' <tr>' . "\n";
echo ' <td class="titelschrift blauschrift">' . "\n";
echo ' Keine Daten!';
echo ' </td>' . "\n";
echo ' </tr>' . "\n";
echo '</table>' . "\n";
}
|
20.12.2007, 16:35:00
|
Senior Member
|
|
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 36
Beiträge: 1.476
|
|
AW: Klassenliste erstellen
Im Fehlerfall? Dieser Fehlerfall dürfte doch eigentlich schon beim ersten Versuch von mysql_connect() bekannt sein, sollte das nicht funktionieren macht der MSQL-Server eine Pause, ansonsten steht die Verbindung und dann wird auch nicht irgendeine andere Aufgebaut (nehme ich mal an :P)
Aber jo, ich empfinde das einfach als zusätzlichen Schreibaufwand...
PDO kenn ich leider zuwenig um da wirklich wa dazu sagen zu können :P
__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!
Betatester gesucht:
Skiclub Gams / CEVI Grabs
|
20.12.2007, 18:20:51
|
Senior Member
|
|
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
|
|
AW: Klassenliste erstellen
Zitat:
Zitat von Opendix
ansonsten steht die Verbindung und dann wird auch nicht irgendeine andere Aufgebaut (nehme ich mal an :P)
|
Die Verbindung kann aber auch abbrechen, zum Beispiel mit einer CR_SERVER_GONE_ERROR Meldung.
Mein letztes Beispiel mit pdo umgesetzt kann so aussehen
PHP-Code:
<?php $pdo = new PDO('mysql:host=localhost;db=meineDatenbank', 'user', 'password'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $aktuelle_klasse = null; foreach( $pdo->query('SELECT name, klasse FROM jos_users ORDER BY klasse') as $row ) { if ( $aktuelle_klasse!==$row['klasse'] ) { echo '== ' . $row['klasse'] . " ==<br />\n"; $aktuelle_klasse = $row['klasse']; } echo ' # ' . $row['name'] . "<br />\n"; } ?>
Durch PDO::ERRMODE_EXCEPTION kann ich es mir ersparen, an jeder Ecke und Funktion und Schleifen usw eine Fehlerroutine zu schreiben. Die kommt nur da hin, wo der Fehler wirklich interessant ist.
Prepared statements sind schön schnell und named paramters sparen Aufrufe von escape/quote_string(). pdo ist keine dicke, lahme Datenbankabstraktion sondern eine schnelles, kleines Interface für verschiedene Datenbanken.
So, Ende der Kurzwerbung.
p.s.: Und jetzt bitte keine Diskussion um "aber meine eigene nur für mich selbst geschrieben Datenbankklasse ist viel besser" anfangen ;-)
__________________
Wat der Bauer nich kennt, dit frisster nich.
Geändert von defabricator (20.12.2007 um 18:21:58 Uhr)
|
20.12.2007, 19:31:15
|
Anfänger
|
|
Registriert seit: Dec 2007
Beiträge: 14
|
|
AW: Klassenliste erstellen
Danke tumasch für die Mühe, aber es funktioniert nicht:
Die Fehlermeldung:
"Fatal error: Call to undefined function debug() in C:\Programme\... on line 41"
Line 41:
PHP-Code:
debug('Datensätze anzeigen');
Viell. ist ja was falsch, bei diesem Code blicke ich jedoch leider nicht mehr durch ;)
|
20.12.2007, 19:38:45
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Klassenliste erstellen
Zitat:
Zitat von mrmoechen
...
PHP-Code:
debug('Datensätze anzeigen');
...
|
Kommentiere die Zeilen mit der Funktion Debug() erstmal und versuche es erneut.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
20.12.2007, 20:08:53
|
Anfänger
|
|
Registriert seit: Dec 2007
Beiträge: 14
|
|
AW: Klassenliste erstellen
Ich habe jetzt alle drei debug-Funktionen kommentiert, dann gibt er folgendes aus (es sind 2 Spalten, nur weiß ich nicht, wie das darzustellen ist):
4a
name klasse
Johannes 5a
Simon 5a
Josef 5a
Moritz 5b
name und klasse sind ja wahrscheinlich spaltentitel??
Er gibt also nur einmal den spaltentitel aus, und vom Schüler der 4a keinen namen.
Naja, viell. kennt sich jemand aus.
Danke nochmal für eure Geduld.
|
20.12.2007, 20:20:54
|
Senior Member
|
|
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
|
|
AW: Klassenliste erstellen
Zitat:
Zitat von mrmoechen
Viell. ist ja was falsch, bei diesem Code blicke ich jedoch leider nicht mehr durch ;)
|
Dann birngt Dir das nichts. Arbeite den Code erstmal durch, so dass Du möglich viel davon verstehst und dann frag nach den restelichen Teilen.
__________________
Wat der Bauer nich kennt, dit frisster nich.
|
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 22:12:35 Uhr.
|