|
|
User gesamt
|
:
|
2378502
|
User online
|
:
|
1
|
|
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
|
|
|
|
MyWebsolution.de Foren » PHP und MYSQL » Funktionen mit mysql Daten
Seite:
|
1
|
Posts pro Seite: 5
10
20
|
Autor
|
Thread
|
27.05.2008 23:06 Uhr
|
Funktionen mit mysql Daten
|
Andi
|
User
|
|
registriert
|
02.04.2008
|
wohnt in
|
Schweiz
|
Beiträge
|
2
|
|
Hallo zusammen
Zuerst möchte ich sagen, dass ihr hier was nettes aufgebaut habt. Bei Problemen hilft mir diese Seite oft weiter.
Doch momentan steh ich ein bisschen auf dem Schlauch...
Mein Problem:
Ich habe unter anderem die Funktion "Splitter" geschrieben, die nach X Zeichen einen Leerschlag einfügt.
Sie funktioniert auch einwandfrei, doch wie verbinde ich die Funktion mit meinem News-Script, welche Daten aus eine mysql-Datenbank abfragt.
Wenn ich eine Variable $text mit gewissem Inhalt einfüge, klappt die Funktion. Doch auf die News kann ich sie nicht korrekt anwenden.
Ich habs zwar hingekriegt, dass die Beiträge gefiltert werden, aber es wird immer nur der Beitrag mit ID 1 ausgegeben.
Hab im Netz was von "mysql_fetch_object" gefunden, aber kom damit nicht klar. Keine Ahnung ob das der richtige Weg ist.
Zur Sicherheit hier noch mein News Script, ohne Funktion:
(Ist vllt. ein bisschen unübersichtlich. Aber für gewöhnlich beginn ich mit PHP, dann mit dem Design).
PHP:
<?php
// News ermitteln
$getnews = mysql_query("SELECT * FROM news ORDER BY zeit DESC");
// Tabellenstruktur laden
echo "
<table border=0 cellspacing=1 cellpadding=1 width='100%'> <tr valign=centery> <td width=100%>";
// News auflisten
while ($news = mysql_fetch_array($getnews))
{
echo nl2br("
<table style='border:1px solid white' cellspacing=0 cellpadding=0 width='100%'>
<tr valign=center>
<td width='100%' height=50>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr valign=center>
<td>
<span class='titel_news'>$news[titel]</span>
</td>
<td align=right>
<span class='default'>$news[zeit]</span>
</td>
</tr>
</table>
<span class='default'>Von: $news[autor]</span>
</td>
</tr>
</table>
<table style='border:1px solid white' cellspacing=0 cellpadding=0 width='100%'>
<tr valign=center>
<td width=100% height=50>
<span class='default'> $news[nachricht]");
}
// Tabelle wieder schliessen
echo' </td> </tr> </table>';
?>
Zusätzlich noch eine kleine Frage. Mit "nl2br" vor eine Ausgabe kann man die Zeilenumbrüche mitausgeben. Wenn ich meinen Code im Editor (Dreamweaver) einrücke, dann wird das ebenfalls als Zeilenumbruch angesehen. Kann man das irgendwie verhindern, oder ist das normal? Der Code wird mit der Zeit sehr unübersichtlich.
Und jedesmal ein neues "echo" beginne, ist auch doof...
Vielen Dank für eure Bemühungen und liebe Grüsse
Andi
Dieser Beitrag wurde am 27.05.2008 um 23:10:08 Uhr von Andi zum 2. Mal editiert.
|
|
|
28.05.2008 09:42 Uhr
|
|
splasch
|
Forenposter
|
|
registriert
|
21.04.2008
|
wohnt in
|
|
Beiträge
|
67
|
|
Zitat: Mit "nl2br" vor eine Ausgabe kann man die Zeilenumbrüche mitausgeben. Wenn ich meinen Code im Editor (Dreamweaver) einrücke, dann wird das ebenfalls als Zeilenumbruch angesehen. Kann man das irgendwie verhindern, oder ist das normal?
Ist Logisch nl2br macht ja auch nix anderes als dir Zeillenumbrüche in eine Hmtl komformes Fromat zu Wandeln sprich <br>
Wenn du die Zeillenumbrüche selbst setzen willst dann lass nl2br weg und setz überall wo bei der Html Ausgabe ein Umbruch statt finden soll ein <br> rein.
Übrings mußte nicht alles mit echo ausgeben es reicht auch die php Anweisung zu beenden und wieder zu öffnen sprich (<? php anweisung ?> html ausgabe <? phpanweisung ?> text ausgabe) unsw.
Um deine Funktion zu nutzen zu können mußt du Sie in die While schleife aufrufen sprich bei der Text ausgabe.
PHP:
<?
while ($news = mysql_fetch_array($getnews))
{
echo nl2br("
<table style='border:1px solid white' cellspacing=0 cellpadding=0 width='100%'>
<tr valign=center>
<td width='100%' height=50>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr valign=center>
<td>
<span class='titel_news'>".Splitter($news[titel])."</span>
</td>
<td align=right>
<span class='default'>$news[zeit]</span>
</td>
</tr>
</table>
<span class='default'>Von: ".Splitter($news[autor])."</span>
</td>
</tr>
</table>
<table style='border:1px solid white' cellspacing=0 cellpadding=0 width='100%'>
<tr valign=center>
<td width=100% height=50>
<span class='default'> ".Splitter($news[nachricht])." ");
}
?>
Dieser Beitrag wurde am 28.05.2008 um 09:47:54 Uhr von splasch zum 4. Mal editiert.
|
|
|
28.05.2008 21:01 Uhr
|
Vielen Dank
|
Andi
|
User
|
|
registriert
|
02.04.2008
|
wohnt in
|
Schweiz
|
Beiträge
|
2
|
|
Hi splasch, vielen Dank für Deine Antwort.
Die Lösung ist eigentlich logisch, aber typisch für mich, dass ich viel zu tief suche, um ein Problem zu lösen.
Jetzt funktioniert es super, vielen Dank nochmal.
Zitat:Übrings mußte nicht alles mit echo ausgeben es reicht auch die php Anweisung zu beenden und wieder zu öffnen sprich (<? php anweisung ?> html ausgabe <? phpanweisung ?> text ausgabe) unsw.
Ich habe damit gemeint, dass man den Echo-Tag wieder schliessen muss. Aber vor einer Ausgabe mit Zeilenumbrüche ist das eigentlich kein Problem
Eine kleine Frage hätte ich noch: Da ich ca. 5 solcher Funktionen habe und diese alle über den Text laufen lassen möchte, wie mache ich das am besten?
Hab auf anderen Seiten gesehen, dass man via IF die Rückgabewerte, also Return, auf TRUE überprüfen soll. Doch das scheint mir nicht gearde eine gute Lösung... Gibt es da was anderes??
Lg Andi
|
|
|
29.05.2008 11:25 Uhr
|
|
splasch
|
Forenposter
|
|
registriert
|
21.04.2008
|
wohnt in
|
|
Beiträge
|
67
|
|
Ich kenn deine Funktionen nicht aber wenst 5 hast und immer alle 5 über den Text laufen lassen willst. Dann würde ich die 5 Funktionen einfach zusammen fassen so das im Grunde dann nur 1 Funktion hast die alles macht.
Mfg Splasch
|
|
|
Seite:
|
1
|
|
|
Powered by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
Designed by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
|
|
|
|
|