Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

MySql Abfrage

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 14.02.2010, 01:12

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

w3news
PostRank 8
PostRank 8
Beiträge: 938
Registriert: 10.10.2006, 23:17
Wohnort: Berlin

Beitrag von w3news » 14.02.2010, 01:22

Versteh ich nicht, solltest vielleicht die ganze Abfrage posten.

Abfrage:

Code: Alles auswählen

$sql=("SELCECT * FROM db WHERE id=$id");
$row = mysql_fetch_assoc($sql);
und so dann ausgeben:

Code: Alles auswählen

$row[Text1]

Code: Alles auswählen

$row[Text2]

Code: Alles auswählen

$row[Text3]
MfG Lars

News, Tarife und Mobilfunk: w3news.de
Mobile Datenflatrates

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 14.02.2010, 01:26

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 ?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


w3news
PostRank 8
PostRank 8
Beiträge: 938
Registriert: 10.10.2006, 23:17
Wohnort: Berlin

Beitrag von w3news » 14.02.2010, 01:43

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

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 14.02.2010, 03:30

Code: Alles auswählen

  $query  = " SELECT *";
  $query .= " FROM CSVArtikelSubmit";
  $query .= " WHERE id".$_GET['id'];
  $result = mysql_query($query) 
            or die&#40;'<hr>'.$query.'<hr>'.mysql_error&#40;&#41;&#41;;
  if &#40; $line = mysql_fetch_array&#40;$result, MYSQL_ASSOC&#41;&#41;
  &#123;
    $unterseitenspalte = 'Text'.$_GET&#91;'seite'&#93;;
    $content .= nl2br&#40; $line&#91;$unterseitenspalte&#93; &#41;;
  &#125;
oder

Code: Alles auswählen

  $query  = " SELECT `Text" . $_GET&#91;'seite'&#93; ."`";
  $query .= " FROM CSVArtikelSubmit";
  $query .= " WHERE id".$_GET&#91;'id'&#93;;
  $result = mysql_query&#40;$query&#41; 
            or die&#40;'<hr>'.$query.'<hr>'.mysql_error&#40;&#41;&#41;;
  if &#40; $line = mysql_fetch_array&#40;$result, MYSQL_ASSOC&#41;&#41;
  &#123;
    $unterseitenspalte = 'Text'.$_GET&#91;'seite'&#93;;
    $content .= nl2br&#40; $line&#91;$unterseitenspalte&#93; &#41;;
  &#125;
eventuell

Code: Alles auswählen

  $query  = " SELECT `Text" . $_GET&#91;'seite'&#93; ."` AS ausgabetext";
  $query .= " FROM CSVArtikelSubmit";
  $query .= " WHERE id".$_GET&#91;'id'&#93;;
  $result = mysql_query&#40;$query&#41; 
            or die&#40;'<hr>'.$query.'<hr>'.mysql_error&#40;&#41;&#41;;
  if &#40; $line = mysql_fetch_array&#40;$result, MYSQL_ASSOC&#41;&#41;
  &#123;
    $content .= nl2br&#40; $line&#91;'ausgabetext'&#93; &#41;;
  &#125;
"AS" benutze ich immer als

$query = " SELECT COUNT(id) AS c ";
Ice Man hat 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

Anonymous

Beitrag von Anonymous » 14.02.2010, 03:33

Ice Man hat 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...

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 14.02.2010, 12:31

@ 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 ;)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag