Beiträge von SinnlosS

    Nutze momentan zum ersten mal Smarty, eigentlich ganz nette Sache, jetzt habe ich aber ein kleines Problem.
    Ich habe eine section durch die geloopt wird, wird auch durchlaufen, aber die Werte in der Section werden nicht belegt.

    Der Template-Bereich:

    Übermittelt wird halte per

    PHP
    $tpl->assign('auftraege',$auftraege);

    print_r-Ausgabe von $auftraege:

    Der section-Bereich im Template wird einmal durchlaufen, es wird also eine Zeile eingefügt. Aber die Zellen bleiben alle leer.


    Habe mich an dem section Beispiel weiter unten orientiert auf http://www.smarty.net/crashcourse.php
    Ich kann da beim besten Willen keinen Unterschied zu meinem Code feststellen.


    Hat jemand eine Idee wo das Problem liegen könnte?

    Naja, in vielen Foren sind Links zu anderen Foren nicht gerne gesehen, daher hatte ich die per PM geschickt.

    Von mir aus aber hier nochmal, wenn es nicht erwünscht ist müsste ein Mod die dann rauseditieren.

    Erstmal was motivierendes zum Thema "Wollen Frauen angesprochen werden":
    http://www.deindatedoktor.de/forum/schatztr…gesprochen.html

    Ansonsten sind diese beiden Foren generell sehr gut und informativ:
    http://www.deindatedoktor.de/forum
    http://www.pickupforum.de

    Für Interessierte empfehle ich vor allem erstmal die "Schatztruhen" (auf beiden Seiten Unter-Foren in denen qualitativ besonders hochwertige Beiträge gesammelt werden).
    In den normalen Diskussions-/Fragenbereichen posten leider auch viele Leute die nicht wirklich Ahnung haben was sie schreiben und es ist da für Neulinge schwer zu selektieren welche Tipps brauchbar sind und welche nicht.

    Falls das hier noch aktuell ist (vermutlich schon) und du nochmal reinschaust, ich habe dir mal eine PM mit ein paar nützlichen Links geschickt.
    Schüchternheit im Umgang mit Frauen ist weiß Gott kein Einzelfall, kann man aber problemlos loswerden wenn man seinen Arsch hochkriegt.

    Versuch mal deine eröffnendes <form>-tag nicht gleich wieder zu schließen. Der / vor dem schließenden > gehört nur in html-tags die nicht nochmal extra geschlossen werden, wie br, img o.ä. (und auch dann nicht immer).

    Ok hat sich erledigt, so funktioniert es jetzt einwandfrei:

    Code
    function go(a) {
      d=document.getElementById('menu_punkte').scrollLeft;
      self.location.href=a+d;
    }
    HTML
    <a href='index.php?c=kontakt&p=' onclick='go(this.href);return false;'><img src='./menu/20-kontakt.jpg' border='0' alt=''></a>


    Edit: Btw, diese optionale Präfix-Auswahl beim Erstellen eines neuen Themas macht aber irgendwie auch nicht viel Sinn, wenn man sie nur beim erstellen eines neuen Themas wählen kann, und nicht beim Editieren. Man erstellt ja in der Regel keine Threads wenn man das Problem zu dem Zeitpunkt bereits gelöst hat. ^^

    Ich habe eine Seite mit einem horizontal scrollbaren Menu.
    Es sind immer nur 7 Links im sichtbaren Bereich, insgesamt sind es 20 Links.
    Jetzt möchte ich natürlich, dass, wenn ein Besucher nach dem scrollen einen Link aus dem nicht-sichtbaren Bereich klickt, auf der neugeladenen Seite das Menu wieder an die vorherige Stelle springen.
    Das springen an die Stelle ist auch kein Thema mit einem onload-Aufruf dieser Funktion:

    Code
    function menuPosi(posi) {
        document.getElementById('menu_punkte').scrollLeft=posi;
    }

    Leider kriege ich es noch nicht hin, dass beim klicken eines Links die aktuelle scrollLeft-Position des Menus übergeben wird.

    Versucht habe ich es zuletzt folgendermaßen:

    HTML
    <a href='index.php?c=kontakt&p=' id='aMenu' onclick='self.location.href=this.href+documentGetElementById(\'menu_punkte\').scrollLeft;return false;'><img src='./menu/20-kontakt.jpg' border='0' alt='Kontakt'></a>

    Hat vielleicht jemand eine Anregung für mich wie das funktionieren könnte?

    So funktioniert das dann auch. Kann aber sein, dass es auch ne fertige php-funktion gibt die genau das macht, fällt mir aber grad keine ein.

    Du hättest dir auch mal $zeit ausgeben lassen sollen, dann hättest du gesehen, dass die Sekunden durchaus stimmen, und dass dein "Problem" nur in der date()-Funktion liegen kann.
    Diese startet die Zeitangaben eben nicht bei 00:00:00 sondern bei 01:00:00.
    Damit kommt deine Uhrzeit 01:10:24 heraus.

    Mir fällt grad spontan keine alternative Funktion ein die genau das macht was du möchtest, obwohl ich fast wetten würde, dass es eine gibt.
    Du kannst aber hier auch einfach tricksen indem du $zeit noch zusätzlich um 82800 erhöhst (=23 Stunden). Damit kriegst du dann deine Zeit ab 00:00:00 ausgegeben, in deinem Beispiel also 00:10:24.
    Das funktioniert aber auch nur bei Zeiten <24 Stunden, ab da fängts dann wieder bei 0 an.

    Also einfach die Zeile hier in deinem Script anpassen:

    PHP
    $zeit = ($stunde + $minute + $sekunde) * $menge + 82800;

    Ich bevorzuge es mittlerweile, Verarbeitungen von Useraktionen, seien es nun Links oder Formulare, in einer Extra-Datei zu verarbeiten und nach der Verarbeitung auf die Ursprungsseite zurückzuleiten.
    Zum einen hält es, gerade bei umfangreichen Projekten/Einzelseiten den Code sehr viel übersichtlicher und strukturierter, zum anderen werden beim refreshen der Seite die Aktionen nicht erneut ausgeführt, bzw man bekommt bei POST-Formularen keinen nervigen Dialog ob man die Daten erneut senden möchte.

    Ich generiere immer zu Beginn den kompletten dynamischen Content der Seite mit php und speicher die verschiedenen Bereich in Variablen. Erst wenn der komplette php-Code durchlaufen ist kommt die erste HTML-Ausgabe, da werden dann im HTML-Gerüst an den entsprechenden Stellen mit PHP die Variablen mit dem dynamisch generierten Content ausgegeben.

    @ Bandit: Ich denke mal er meint, dass beim ersten Seitenaufruf keine Fehlermeldung kommt, sondern erst wenn gevotet wird. Das passt ja auch. Beim ersten Seitenaufruf werden die if-/elseif-Bedingungen nicht erfüllt und der Parser stolpert noch nicht über $top bzw. $flop. Das passiert erst wenn gevotet wird.

    @ Walerik: Wenn du das ohne Reload machen willst mußt du Ajax verwenden.


    meist du damit das alle spalten nutzlos geldan werden wenn ja ...
    ... soll das dann so umgesetzt werde?

    PHP
    SELECT id FROM musik WHERE id=$top


    Naja, die Abfrage macht keinen Sinn, sie kann dir ja nur ein bereits bekanntes Ergebnis liefern, nämlich $top.

    Hast du dir den von mir geposteten Link durchgelesen?
    Du sollst halt statt * immer nur genau die Felder angeben, die du auch benötigst, die also im weiteren Verlauf des Scripts verarbeitet werden.
    Auch wenn du wirklich alle Felder brauchst. Es kann ja immer mal passieren, dass eine Tabelle erweitert wird und du das Feld dann nicht benötigst.
    Und grade wenn man, wie du hier, mit numerischem Index im Ergebnis-Array arbeitet, statt mit den Spaltennamen, sollte man auf keinen Fall SELECT * schreiben, da die Reihenfolge in der die Spalten zurückgegeben werden nicht sicher ist.


    wenn ich die if-anweisungen vor die schleife setze wie in dem code den du bearbeitet hast
    bekomme ich das problem das nach einem vote der erste datensatz sein name ändert und
    nur die id des bewerteten datensatzes als namen ausgibt.


    Das liegt daran, dass du in deinen if-Bedingungen $row überschreibst. Wozu die SELECT-Abfrage in den if-Bedingungen überhaupt dient habe ich aus deinem Script nicht erkennen würden, so wie du es hier gepostet hast können die SELECT-Abfragen aus den if-/elseif-Bedingungen gelöscht werden, da die Ergebnisse nie verwendet werden.

    Hier mal dein Script noch etwas überarbeitet und kommentiert.

    Edit: Die Debug-Anleitung von Bandit solltest du auf jedenfall beherzigen und dir angewöhnen, damit kann wenn sie vernünftig und korrekt angewendet wird 95% aller Probleme selbst lösen. Und dabei lernt man dann auch am meisten. :)

    Bin grad erst nachhause gekommen von der Arbeit, noch Termine gehabt und grad saumüde, ich gehe morgen mal genauer auf die Punkte ein.

    Falls du das heut noch liest könntest du mal die Tabellenstruktur von `musik` posten, und die SELECT-Abfrage für die die while-Schleife durchlaufen wird (die Abfrage deren Ergebnis du in $rs speicherst, wo du die Datensätze in der while-Bedingung abholst). Und falls die Abfrage auf eine andere Tabelle geht noch die entsprechende Tabellenstruktur.

    Dann kann ich dir vielleicht noch paar nützliche Tipps geben.

    Ja die if-Anweisung muss vor der Schleife stehen.
    Beachte bitte die von mir ergänzten Kommentare.

    "Warum soll ich nicht SELECT * schreiben?"
    http://www.php-faq.de/q-sql-select.html

    Bist du sicher, dass vote um 2 erhöht wird? Nach deinem Code hier kann das eigentlich nicht sein. Es sei denn du hast die if-Anweisung dafür zweimal in deinem Code stehen, oder sie steht in einer Schleife die zweimal durchlaufen wird.
    Oder hast du vielleicht die Seite refresht? Dann wird das natürlich auch zweimal ausgeführt.

    Check das bitte mal oder poste den kompletten Code.
    Mit den beiden if-Anweisungen die du gepostet hast wird das nur 1x um 1 erhöht.

    Hast du schonmal mit einer Testausgabe probiert ob das Script überhaupt in die if-Bedingung springt?
    Nach dem was du hier postest beruht dein Script auf der veralteten Einstellung register_globals. Das ist ganz ganz schlecht, da es eine ziemlich Sicherheitslücke darstellt. Aus diesem Grund ist das mittlerweile bei den meisten Hostern auch standardmäßig deaktiviert.

    Register_globals auf on bedeutet, dass du auf alle Variablen aus den globalen Arrays $_GET, $_POST, $_SESSION auch nur über den Key zugreifen kannst.
    In deinem Beispiel übergibst du die zu bewertende ID mit ?top=".$row['id']

    Diese Variable kann mit register_globals aktiviert dann auch auf der aufgerufenen Seite mit $top angesprochen werden.
    Wenn bei dir aber register_globals deaktiviert ist, was ich mal hoffe, dann kannst du die Variable nur noch über $_GET['top'] ansprechen. $top ist dann nicht gesetzt, es wird nie in die if-Bedingung gesprungen und es kann auch nicht upgedated werden.

    Dann noch:
    vote = vote + '1'
    Wenn du da rechnest ist vote wohl ein INT-Feld. Also die ' ' weglassen, bin grad nicht sicher ob das auch noch eine Fehlerursache ist, aber es ist definitiv unsauber.
    Schreib:
    vote = vote + 1
    und
    vote_ges = Vote_ges + 1

    Zitat


    So also erstmal ist gesagt les die werte aus, dann speicherst du sie in variabeln, Weil so funktioniert der Update nicht.

    Was soll da nicht funktionieren? Wenn er int-Werte einfach erhöhen will macht er es genau richtig (abgesehen von den ' '). Die Werte vorher auszulesen, mit php zu erhöhen und dann wieder einzutragen wäre völlig umständlich, unnötig und viel langsamer. Sollte er auf gar keinen Fall machen!