Seite 1 von 2
Neue SQL Tabelle und Ausgabe
Verfasst: Mi 27. Apr 2005, 13:40
von baumpaul
Hallo,
ich habe eine neue SQL Tabelle namens con_werbung erstellt. Darin gibt es 2 für die Ausgabe relevante Spalten namens headline und text.
Nun möchte ich diese einfach in einem Array ausgeben.
Ich habe die Tabelle schon in der cfg_sql.inc.php bekannt gegeben.
Wie muss die Ausgabe des Moduls denn ausschauen wenn ich die Daten einfach nur so (als Array) ausgeben möchte?
Code: Alles auswählen
<p>$headline 1 <br />
$text 1</p>
<p>$headline 2<br />
$text 2</p>
Ich versehe nicht was alles an SQL Befehlen in die Ausgabe muss?
Kann mir vielleicht jemand schnell so eine Ausgabemodul bauen? Dann wüsste ich auch mal was alles rein muss.
Danke
Verfasst: Mi 27. Apr 2005, 14:07
von baumpaul
Hier mal mein bisheriger Code, allerdings wird nur der erste Datenbankeintrag angezeigt.
<?php
$where = " WHERE aktiv=1";
//Zählen der Datensätze
$sql = "SELECT headline, text, link, target FROM " .$cfgTab_badmintonarea.$where. " ORDER by score";
$db->query($sql);
$db->next_record();
echo "<table border=0 cellpadding=0 cellspacing=1 width=100%>";
echo "<tr><td>Badminton-Area</td></tr>";
// Auslesen des Ergebnisse pro Reihe und Generierung der Seite
while ($db->next_record()) {
echo "<tr><td>";
echo "<a href=\"".$db->f("link")."\" target=\"".$db->f("target")."\">".$db->f("headline")."</a><br />";
echo $db->f("text");
echo "</td></tr>";
}
echo "</table>";
?>
Verfasst: Mi 27. Apr 2005, 15:25
von tono
Wieviele Zeilen sind denn in der Datenbank? Für mich sieht das so aus als würde gerade die erste Zeile nicht ausgegeben aber alle anderen. Wenn Du nur 2 Zeilen hast könnte das der Fehler sein.
Mit $db->next_record() auserhalb der while-Schleife rufts Du den ersten Datensatz auf, der wird aber nicht ausgegeben, denn mit while($db->next_record()) ruftst Du schon den 2. auf.
Versuch mal den 1. $db->next_record() auszukommentieren.
Verfasst: Mi 27. Apr 2005, 16:01
von Gast
tono hat geschrieben:Wieviele Zeilen sind denn in der Datenbank? Für mich sieht das so aus als würde gerade die erste Zeile nicht ausgegeben aber alle anderen. Wenn Du nur 2 Zeilen hast könnte das der Fehler sein.
Mit $db->next_record() auserhalb der while-Schleife rufts Du den ersten Datensatz auf, der wird aber nicht ausgegeben, denn mit while($db->next_record()) ruftst Du schon den 2. auf.
Versuch mal den 1. $db->next_record() auszukommentieren.
Damit hast völlig Recht. Oft ist die Lösung so einfach

Verfasst: Mi 27. Apr 2005, 18:17
von baumpaul
Jetzt habe ich es fertig und stehe vor einem neuen problem.
Ich habe für in der SQL-Tabelle auch einen Click zähler vorgesehen.
Wie stelle man es an, wenn man auf einen Link klickt, die SQL-Tabelle geupdatet wird und man auf den Ziellink weitergeleitet wird?
Gruß - PhB
Verfasst: Mi 27. Apr 2005, 19:07
von baumpaul
Hier wieder mein bisheriger Code den ich bis jetzt zusammengestöpselt habe. Es geht nur nichtg
Dies ist kein Modul sondern die Datei die folgendermaßen aufgerufen wird:
http://www.ec-bayreuth.de/hits.php?id=1
Die Variable id wird also in die Datei übergeben.
Code: Alles auswählen
<?php
include ("config.php");
include ($contenido_path . "includes/config.php");
include ($cfg["path"]["contenido"].$cfg["path"]["includes"] . "cfg_sql.inc.php");
include ($cfg["path"]["contenido"].$cfg["path"]["includes"] . "functions.general.php");
$id=$_REQUEST["id"];
$sql = "SELECT id, link FROM con_badmintonarea WHERE id=" .$id;
$db->query($sql);
$db->next_record();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Elefanten-Club Bayreuth - Weiterleitung - Bitte warten.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="0;URL=<? echo $db->f("link"); ?>">
</head>
<body>
</body>
</html>
Verfasst: Mi 27. Apr 2005, 19:29
von emergence
du hast was vergessen
nach
fehlt das
sonst wird dir $db->f("link"); nie einen wert liefern...
Verfasst: Mi 27. Apr 2005, 22:09
von baumpaul
das habe ich eingefügt, allerding funktioniert es immer noch nicht.
Rufe ich eigentlich ein Array auf? Das brauche ich eigentlich nicht.
Verfasst: Do 28. Apr 2005, 09:02
von emergence
baumpaul hat geschrieben:das habe ich eingefügt, allerding funktioniert es immer noch nicht
schau ins errorlog.txt
vermutlich muss die db klasse noch initialisiert werden....
$db = Db_Contenido();
Verfasst: Do 28. Apr 2005, 09:38
von baumpaul
emergence hat geschrieben:vermutlich muss die db klasse noch initialisiert werden....
$db = Db_Contenido();
In das Errorlog wird nichts geschrieben. Vielleicht weil das kein Modul ist?
Wenn ich $db = Db_Contenido(); einfüge, kommt nicht ein mal mehr die echo $sql; ausgabe des select befehls.
Verfasst: Do 28. Apr 2005, 10:06
von emergence
baumpaul hat geschrieben:Vielleicht weil das kein Modul ist?
sobald die contenido/includes/config.php eingebunden wird, müsste etwas mitprotokoliert werden... (ab der 4.5.2alpha wäre es die startup.php)
Verfasst: Do 28. Apr 2005, 10:37
von baumpaul
emergence hat geschrieben:baumpaul hat geschrieben:Vielleicht weil das kein Modul ist?
sobald die contenido/includes/config.php eingebunden wird, müsste etwas mitprotokoliert werden... (ab der 4.5.2alpha wäre es die startup.php)
Ich habe noch ein mal nachgeschaut. Aber die ist leer.
Was mach $db = Db_Contenido(); eigentlich genau?
Ich habe das gefühl ich bin mit der Datenbank überhaupt nicht verbunden. Wie kann ich denn das testen?
Verfasst: Do 28. Apr 2005, 11:09
von emergence
baumpaul hat geschrieben:Ich habe noch ein mal nachgeschaut. Aber die ist leer.
was ist leer ?
baumpaul hat geschrieben:Was mach $db = Db_Contenido(); eigentlich genau?
ein db objekt erzeugen...
baumpaul hat geschrieben:Ich habe das gefühl ich bin mit der Datenbank überhaupt nicht verbunden. Wie kann ich denn das testen?
folgendes funktioniert bei mir: (im cms/ ordner positioniert)
test.php
Code: Alles auswählen
<?php
include ("config.php");
include ($contenido_path . "includes/config.php");
include ($cfg["path"]["contenido"].$cfg["path"]["includes"] . "cfg_sql.inc.php");
include ($cfg["path"]["contenido"].$cfg["path"]["includes"] . "functions.general.php");
$db = new DB_Contenido();
$sql = "SELECT * FROM con_actions";
$db->query($sql);
while ($db->next_record()) {
echo "actions: ".$db->f("name")."<br>";
}
echo "<pre>";
print_r($db->metadata("con_actions"));
echo "</pre>";
?>
macht nichts anderes wie alle felder der tabelle con_actions zu selektieren...
von jeder zeile das feld name ausgeben...
und schlussendlich die tabellen metadaten anzeigen...
Verfasst: Do 28. Apr 2005, 11:40
von baumpaul
Jetzt bin ich echt verwirrt, da bei mir überhaupt nichts ausgegeben wird.
Seht selbst:
http://www.ec-bayreuth.de/text.php
Verfasst: Do 28. Apr 2005, 11:57
von emergence
hmm... ganz verstehen tue ich es aber nicht...
die datei befindet sich ja im selben verzeichniss wie die front_content.php
ich hab den header teil etwas geändert, so wie es in der 4.4.4 in der front_content.php vorhanden ist...
hast du was an der front_content.php am beginn verändert ?
Code: Alles auswählen
<?php
include_once ("config.php");
include_once ($contenido_path . "includes/config.php");
cInclude("includes", "cfg_sql.inc.php");
cInclude("includes", "functions.general.php");
$db = new DB_Contenido();
$sql = "SELECT * FROM con_actions";
$db->query($sql);
while ($db->next_record()) {
echo "actions: ".$db->f("name")."<br>";
}
echo "<pre>";
print_r($db->metadata("con_actions"));
echo "</pre>";
?>