|
|
Ice Man

: 04.06.2003 : 2323
|
| : 14.02.2010, 01:12 : MySql Abfrage |
|
|
Hi, zu später Stunde mal eine Frage
Ich hab auf meiner Seite etwas längere Texte.
Bei bestimmten Themen sind die unterteilt in seite 1 - X.
Bisher hab ich jede Seite extra angelegt und befüllt.
Das ist ja kein Problem.
Aber ich will das nun alles automatisieren.
So muss ich bei einer änderung nicht alle manuell erstellten Seiten anpassen, sondern nur eine.
Nun mein Problem.
Der Text liegt in der DB aufbau wie folgt
ID | Text1 | Text2 | Text3
Also wenn Thema 1 aufgerufen wird, soll alles aus Zeile 1 geholt werden.
Das ist kein Problem.
Aber wie mach ich das bei den diversen Unterseiten ?
so gehts normal ".$daten['Text1']."
Aber wenn ich unterseite 2 Aufrufe müsste die Abfrage dann so lauten
".$daten['Text2"]."
Ich habs schon so probiert
".$daten['Text$u_id']." oder ".$daten['Text[$u_id]']."
die $u_id steht für die entsprechende Unterseite
Jemand zu später Stunde ne Idee, wie ich die Abfrage variabel mache ?
Je nach unterseite das Passende Tabellefeld der Zeile 1.
THX |
|
| Nach oben |
|
 |
w3news


: 10.10.2006 : 939 : Berlin
|
| : 14.02.2010, 01:22 : MySql Abfrage |
|
|
Versteh ich nicht, solltest vielleicht die ganze Abfrage posten.
Abfrage:
| Code: |
$sql=("SELCECT * FROM db WHERE id=$id");
$row = mysql_fetch_assoc($sql); |
und so dann ausgeben:
MfG Lars
News, Tarife und Mobilfunk: w3news.de
Mobile Datenflatrates |
|
| Nach oben |
|
 |
Ice Man

: 04.06.2003 : 2323
|
| : 14.02.2010, 01:26 : MySql Abfrage |
|
|
es soll ja über .htaccess immer auf die gleiche Datei weitergeleitet werden.
z.B.
thema1-s1.html
thema1-s2.html
thema1-s3.html
Je nachdem welche Unterseite aufgerufen wird (1-3 z.B)
soll die Abfrage denn zelle 1 oder zelle 2 oder zelle 3 ausspucken.
So wie oben würde es ja nicht gehen.
Wenn ich $row[Text1] nehme, kommt ja immer Text1 auch bei Unterseite 2
Deswegen muss sich die Abfrage immer anpassen.
Eine If Abfrage wollte ich mir sparen
if ($unterseite =1)
{ $text = $row[Text1].....
Bei 8 Unterseiten wären das 8 If Klammern, das muss doch auch einfacher gehen oder ? |
|
| Nach oben |
|
 |
w3news


: 10.10.2006 : 939 : Berlin
|
| : 14.02.2010, 01:43 : MySql Abfrage |
|
|
Hmm, vielleicht in ein Array laden und dann ausgeben, je nachdem welche Seite aufgerufen wurde?
MfG Lars
News, Tarife und Mobilfunk: w3news.de
Mobile Datenflatrates |
|
| Nach oben |
|
 |
800XE


: 02.12.2004 : 5121 : XENEVU
|
| : 14.02.2010, 03:30 : MySql Abfrage |
|
|
| Code: |
$query = " SELECT *";
$query .= " FROM CSVArtikelSubmit";
$query .= " WHERE id".$_GET['id'];
$result = mysql_query($query)
or die('<hr>'.$query.'<hr>'.mysql_error());
if ( $line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$unterseitenspalte = 'Text'.$_GET['seite'];
$content .= nl2br( $line[$unterseitenspalte] );
}
|
oder
| Code: |
$query = " SELECT `Text" . $_GET['seite'] ."`";
$query .= " FROM CSVArtikelSubmit";
$query .= " WHERE id".$_GET['id'];
$result = mysql_query($query)
or die('<hr>'.$query.'<hr>'.mysql_error());
if ( $line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$unterseitenspalte = 'Text'.$_GET['seite'];
$content .= nl2br( $line[$unterseitenspalte] );
}
|
eventuell
| Code: |
$query = " SELECT `Text" . $_GET['seite'] ."` AS ausgabetext";
$query .= " FROM CSVArtikelSubmit";
$query .= " WHERE id".$_GET['id'];
$result = mysql_query($query)
or die('<hr>'.$query.'<hr>'.mysql_error());
if ( $line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$content .= nl2br( $line['ausgabetext'] );
}
|
"AS" benutze ich immer als
$query = " SELECT COUNT(id) AS c ";
| Ice Man hat Folgendes geschrieben: |
es soll ja über .htaccess immer auf die gleiche Datei weitergeleitet werden.
z.B.
thema1-s1.html
thema1-s2.html
thema1-s3.html
|
Das sind aber 3 Dateien und nicht 1 Datei(en)
bzw URLs
vielleicht sind diese unterschieldlichen URLs ja eine DBzeile
aber URLs=Dateien sind es 3 und nicht 1
Wenn du innerhalb einer URLs(=Datei) Unterschiedliche Daten liefern willst, dann via Ajax oder via PostRequest ...
(POST .. so funktioniert meine Druckerseite, Post auf die selbe URL, durch den PostParameter erkennt das CMS das ein "minimalTemplate" nur für den COntent ohne Navi und so genutzt werden soll)
... alternativ
Der PageView wird gespeichert
und wenn die selte Seite(=URL) nochmals abgerufen wird dann wird "Seite2" dieser Seite ... bzw "Seite3" dieser Seite .... ausgegeben
aber nur ... /Affilitiv/ ... innovativ |
|
| Nach oben |
|
 |
net(t)worker Gast
|
| : 14.02.2010, 03:33 : Re: MySql Abfrage |
|
|
| Ice Man hat Folgendes geschrieben: |
Nun mein Problem.
Der Text liegt in der DB aufbau wie folgt
ID | Text1 | Text2 | Text3
|
jo... haste schon richtig erkannt... da liegt dein Problem...
falsche Tabellenstruktur...
2 tabellen brauchst du...
eine in der du die "globalen" Dinge für jeden Artikel ablegst und eine in der du für jede Unterseite 1 Datensatz mit den Infos für die 1 Unterseite ablegst...
Alternativ kannste auch den text jeweils mit speziellen markierungen auf einzelne unterseiten verteilen und beim rewrite eben ein paging berücksichtigen und das ganze dann über PHP auseinanderfummeln...
RewriteRule ^artikel_([0-9]+)\.html$ artikel.php?artikel=$1&page=1 [L]
RewriteRule ^artikel_([0-9]+)_([0-9]+)\.html artikel.php?artikel=$1&page=$2 [L]
und das wars... mehr sag ich dazu nich... |
|
| Nach oben |
|
 |
Ice Man

: 04.06.2003 : 2323
|
| : 14.02.2010, 12:31 : MySql Abfrage |
|
|
@ 800XE
tausend dank, damit gings
@ net(t)worker
danke für den Hinweis, aber ich wollte extra 2 Tabellen vermeiden.
Aber nun gehts ja, kann ich erstmal weiter basteln  |
|
| Nach oben |
|
 |