SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.08.2002, 12:46:56
Henningway Henningway ist offline
Anfänger
 
Registriert seit: Aug 2002
Beiträge: 11
Link?

Hi,

also ich habe da ein kleines Problem. Ich möchte gerne etwas aus meiner Datenbank auslesen und dieses ausgelesene (Titel) soll nun den eigentlichen Text, der hinter diesem Titel steht verlinken. Jener soll aber in einer anderen Tabelle stehn. Ich habe das so probiert, aber das klappt nicht:

<?
$abfrage = "SELECT title FROM Artikel ORDER BY timestamp DESC LIMIT 5";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "&nbsp;&nbsp;";
echo "<a href="artikel.php">$row->title</a>";
echo "<br>";
}
?>

Kann mir da jemand weiterhelfen?
Mit Zitat antworten
  #2  
Alt 02.08.2002, 14:52:08
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
was genau soll dabei nicht stimmen?
funktioniert der code hier nicht, wenn ja, sag uns bitte den fehler, weil ich sehe hier drinnen keinen.
wieso willst du die beschreibung zu dem artikel in einer anderen tabelle speichern, das ist nämlich eigentlich uneffizient, weil titel und beschreibung zusammengehören und deshalb nicht getrennt werden sollten, jedenfalls, wenn du auf diese art haben willst, dass du in artikel.php den entsprechenden beitrag siehst, musst du schon informationen anhängen, um welchen artikel es sich handelt (ich schätze es sind bücher, weil von titel gesprochen wird, richtig?)
also, deine lösung müsste so aussehen:

tabelle titel:
id (primärschlüssel, der eine eindeutige bezeichnung ist)
titel (titel)

tabelle beschreibung
id (primärschlüssel, id des titels und der beschreibung müssen ident sein!)
beschreibung (die beschreibung halt.

dann könntest du es so machen:

Code:
$out=mysql_query("select id,titel from titel order by id desc limit 0,5");
#(timestamp brauchst du nicht, wenn du ID als auto_increment hast)
while ($line=mysql_fetch_object($out))
{
print "<a href="artikel.php?id=$line->id">$line->titel</a><br>";
}
und artikel.php sieht so aus:

Code:
$id=$_GET["id"]
$out=mysql_query("select beschreibung from beschreibung where id='$id'");
sind natürlich nur codefragmente, datenbankverbindung musst du noch herstellen udn so, und ich würde titel und beschreibung wirklich in die selbe tabelle tun.
Mit Zitat antworten
  #3  
Alt 02.08.2002, 14:53:19
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
> echo "<a href="artikel.php">$row->title</a>";
Code:
echo '<a href="artikel.php">' . $row->title . '</a>';
Mit Zitat antworten
  #4  
Alt 02.08.2002, 18:52:49
Henningway Henningway ist offline
Anfänger
 
Registriert seit: Aug 2002
Beiträge: 11
@Progman Hey das geht super :). Aber kannst du mir auch erklären warum? Ich sehe da irgendwie nichts draus :(.

@Matt Sorry, hatte mich ein bisschen falsch ausgedrückt. Mit Tabelle meinte ich nicht die Tabelle in der Datenbank sondern, die HTML Tabellen. Da soll der ganze Text, der sich hinter dem Titel verbirgt, in eine andere Tabelle als der Link. Wie geht das. Ich kann ja mal eben beschreiben wie ich es bisher gemacht habe:

Ich habe 2 Tabellen. Die eine ist für die Rubrik, die andere für den Artikel selber. Artikel hat die Spalten "id", "title", "rubrik", "text", und "zeit". Damit kann ich dann recht schnell und einfach die Artikel erstellen. Nur wie kann ich die jetzt auch möglichst effizient anzeigen?? :)

Grüße,
Mit Zitat antworten
  #5  
Alt 02.08.2002, 20:23:06
Ben20
Guest
 
Beiträge: n/a
Hallo,

mit mysql_fetch_row($abfrage) liest Du die Werte der Abfrage in einen numerischen Array ein.

Wenn Du also

$abfrage = @mysql_query("SELECT title, datum, text FROM artikel...);

$array0 = @mysql_fetch_row($abfrage);

machst, hast Du ein Array mit den Werten

$array0[0] = Titel des Artikels
$array0[1] = Datum des Artikels
$array0[2] = Text des Artikels


Diese kannst Du dann per echo mit samt der Tabelle ausgeben lassen. Z.B. so:


echo "<table border="0">"
."<tr>"
."<td>$array0[0]<br>$array0[1]</td>"
."</tr>"
."<tr>"
."<td>$array0[2]</td>"
."</tr>"
."</table>";


Damit hast Du eine Tabelle mit Titel und Datum in der ersten Zelle und darunter den Text in der zweiten.

Natürlich geht das auch mit mysql_fetch_object. Die Abfrage mußt Du natürlich noch an Deine Datenbanktabelle anpassen.

Ich hoffe ich habe das getroffen, was Du suchst.
Mit Zitat antworten
  #6  
Alt 02.08.2002, 21:14:27
Henningway Henningway ist offline
Anfänger
 
Registriert seit: Aug 2002
Beiträge: 11
Hi,

Ben irgendwie kann ich dir nicht ganz folgen :(. Fehlt da nicht noch irgendwas? Oder kannst du das genauer erläutern, dass selbst ich dir folgen kann? :)

Wie erkennt er welcher Artikel im moment genommen wurde?

Geändert von Henningway (02.08.2002 um 21:21:51 Uhr)
Mit Zitat antworten
  #7  
Alt 02.08.2002, 22:21:22
Ben20
Guest
 
Beiträge: n/a
Um einen Artikel zu lesen klickt der User ja einen Link an.

Zum Beispiel denn da.

echo '<a href="artikel.php">' . $row->title . '</a>';


Wenn Du den jetzt änderst

echo '<a href="artikel.php?artikelid=' . $row->id .'">' . $row->title . '</a>';


kannst Du in artikel.php auf $artikelid zugreifen und somit die sql-Abfrage einschränken.

$abfrage = @mysql_query("SELECT title, datum, text FROM artikel WHERE artikelid = '$artikelid');

Damit bekommt er nur einen Artikel, nämlich den welchen er lesen will. Der Rest funktioniert wie gehabt.
Mit Zitat antworten
  #8  
Alt 04.08.2002, 00:28:05
Henningway Henningway ist offline
Anfänger
 
Registriert seit: Aug 2002
Beiträge: 11
Es funktioniert leider nicht Ben :(. Der Quellcode sieht so aus:

Code:
<?
      $abfrage = "SELECT title FROM Artikel ORDER BY timestamp DESC LIMIT 5";
      $ergebnis = mysql_query($abfrage);
      while($row = mysql_fetch_object($ergebnis))
       {
       echo "&nbsp;&nbsp;";
       echo '<a href="artikel.php?artikelid=' . $row->id .'">' . $row->title . '</a>';
       echo "<br>";
       }
      ?>	
    </td>
    <td height="600" width="610" background="back.jpg">
      <?
      $abfrage = @mysql_query("SELECT title, text FROM artikel WHERE artikelid = '$artikelid'); 
      while($row = mysql_fetch_object($ergebnis))
      {
      echo $row->text;
      }
      ?>
    </td>
    <td height="600" width="170" bgcolor="#5D86A1" background="reseite.jpg">&nbsp;</td> //HIER IST DER FEHLER?!
Aber er sagt das in der Zeile 55 ein parse error ist. Das müsste die oben gekennzeichnete Zeile mit "td height="600" ...." sein. Was ist daran aber falsch? Hä? Sind sonst noch Fehler oder hab ich etwas vergessen?

Grüße,
Henningway
Mit Zitat antworten
  #9  
Alt 04.08.2002, 00:54:28
Ben20
Guest
 
Beiträge: n/a
Also der von Dir gekennzeichneten Spalte kann kein Fehler sein, da es nicht mehr innerhalb von <? ?> liegt. Sprich das ist keine PHP Quelltext sondern reines HTML - ergo ignoriert PHP das völlig (bzw. schickts einfach so an den Browser) Allerdings ist da ein Fehler

$abfrage = @mysql_query("SELECT title, text FROM artikel WHERE artikelid = '$artikelid');

So ist es richtig

$abfrage = @mysql_query("SELECT title, text FROM artikel WHERE artikelid = '$artikelid'"); // noch ein " am Ende.
Mit Zitat antworten
  #10  
Alt 04.08.2002, 01:25:23
Henningway Henningway ist offline
Anfänger
 
Registriert seit: Aug 2002
Beiträge: 11
Stimmt da hast du wiedermal völlig recht. Aber das Problem ist jetzt das er in der Tabelle gar nicht den Text anzeigt, den er anzeigen sollte. Also er sollte ja den Text anzeigen, der zu der entsprechenden ID und eben TItel passt. Aber das macht er nicht. Ist einfach leer :(.
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:42:19 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt