Logo - MyWebsolution.de
User gesamt  :  2387865
User online  :  4
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

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.
Profil ansehen
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.
Profil ansehen
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
Profil ansehen
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
Profil ansehen
Seite: 1 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik