kostenloser Webspace werbefrei: lima-city


Auswahl einer ID aus einer MySql Tabelle

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    Hallo,
    in der fett geschriebenen Zeile ist ein Fehler, für den ich leider keine Lösung habe.

    <?php
    mysql_select_db("$db") or die ("Database doesn't exist");
    $result = mysql_query("SELECT id, titel, inhalt FROM newsscript ORDER BY id DESC");
    while($row = mysql_fetch_array($result))
    {
    [b] <option value="eintragen('nr1','$row['titel']');eintragen('nr2','$row['inhalt']'>'$row['id']'</option>[/b]
    }
    ?>


    Parse error: syntax error, unexpected '<' in ****/script.php on line 122


  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Vlt mal so:

    <?php
    mysql_select_db("$db") or die ("Database doesn't exist");
    $result = mysql_query("SELECT id, titel, inhalt FROM newsscript ORDER BY id DESC");
    while($row = mysql_fetch_array($result))
    {
     echo "[b] <option value="eintragen('nr1','$row['titel']');eintragen('nr2','$row['inhalt']'>'$row['id']'</option>[/b]";
    }
    ?>
  4. Um in der while-Schleife html-Code zu erzeugen, musst Du ihn entweder in einer Stringvariablen speichern oder direkt per echo ausgeben, also z.B. so (mit einzelnen echo-Statements):
    while($row = mysql_fetch_array($result)){
     echo "<option value=\"eintragen('nr1','$row[titel]');eintragen('nr2','$row[inhalt]\">'$row[id]'</option>[/b]\n";
    }
    oder (als kumuliernde Stringvariable):
    $txt='';
    while($row = mysql_fetch_array($result)){
     $txt.= "<option value=\"eintragen('nr1','$row[titel]');eintragen('nr2','$row[inhalt]\">'$row[id]'</option>[/b]\n";
    }
    echo $txt;

    Beachte auch die maskierten doppelten Quotes (\"), die im HTML-Code so stehen bleiben und eben nicht schon auf der PHP-Ebene interpretiert werden sollen!

    Beitrag zuletzt geändert: 18.7.2010 17:56:57 von cars-ten
  5. So viele Blinde hier, unglaublich! Leuts, schaut euch den Shit halt mal an! In PHP gibt es sowas, wie einen Verkettungsperator, welcher aus einem lustigen kleinen Punkt besteht. @TE: Mache überall, wo du mehrere Strings oder Variablen verbinden willst, einen Punkt hin, dann werden sie verbunden. Außerdem müssen die einfachen Anführungszeichen bei den Variablen weg, sonst wird dort nicht der Wert hin gesetzt, sondern der Name der Variable einschließlich des Dollarzeichens.
  6. Na, das ist ja ein netter Umgangston hier ...

    Wenn man innerhalb eines mit doppelten Quotes (") abgegrenzten Strings Variablen unterbringt, so braucht man diese darin definitiv NICHT mit dem Verkettungsoperator zu verknüpfen. Ich glaube schon, dass meine Lösung funktioniert, auch wenn ich meinerseits natürlich auch noch nicht alle Fehler aus dem Originalscript entfernt habe (<b> machen bei <option> keinen Sinn und auch den eigentlichen Inhalt (der Text zwischen <option> und </option>) noch in einfache Quotes zu stellen ('), ist auch überflüssig. Müsste aber trotzdem funktionieren, erzeugt allerdings in der Selektion später sichtbare '-Zeichen.

    Beitrag zuletzt geändert: 18.7.2010 17:52:19 von cars-ten
  7. cars-ten schrieb:
    Na, das ist ja ein netter Umgangston hier ...

    Wenn man innerhalb eines mit doppelten Quotes (") abgegrenzten Strings Variablen unterbringt, so braucht man diese darin definitiv NICHT mit dem Verkettungsoperator zu verknüpfen. Ich glaube schon, dass meine Lösung funktioniert, auch wenn ich meinerseits natürlich auch noch nicht alle Fehler aus dem Originalscript entfernt habe (<b> machen bei <option> keinen Sinn und auch den eigentlichen Inhalt (der Text zwischen <option> und </option>) noch in einfache Quotes zu stellen ('), ist auch überflüssig. Müsste aber trotzdem funktionieren, erzeugt allerdings in der Selektion später sichtbare '-Zeichen.


    Eben, trotzdem war es doch richtig dass es nur mit echo funktioniert oder?

    Ich habe bei meinem Post nämlich auch einfach nur ein echo davor gesetzt und drauf gehofft das der Thread-Ersteller den Rest dann selber richtig formatiert...

  8. Hi Alfr3d,
    ja, im Prinzip hast Du schon Recht. Mich nervt hier nur der Ton ein wenig. Es ist sehr leicht, einfach auf Fehler hinzuweisen und alle anderen als Deppen dastehen zu lassen. Diejeigen, die einige Aspekte korrigiert haben und - in der Schnelle - die übrigen noch nicht herausgeschmissen haben, werden dann auch in die gleiche Kategorie der Oberidioten geschoben.

    Es dauert eben ein klein wenig länger, eine ausgestestete und von allen Fehlern befreite Lösung zu präsentieren, als nur einmal kurz einen auf "dicke Hose" zu machen ... (und wieviele Gulden der schon hat!!!!)

    Beitrag zuletzt geändert: 18.7.2010 18:04:44 von cars-ten
  9. cars-ten schrieb:
    Hi Alfr3d,
    ja, im Prinzip hast Du schon Recht. Mich nervt hier nur der Ton ein wenig. Es ist sehr leicht, einfach auf Fehler hinzuweisen und alle anderen als Deppen dastehen zu lassen. Diejeigen, die einige Aspekte korrigiert haben und - in der Schnelle - die übrigen noch nicht herausgeschmissen haben, werden dann auch gleich in die gleiche Kategorie der Oberidioten geschoben.

    Es dauert eben ein klein wenig länger, eine ausgestestete und von allen Fehler befreite Lösung zu präsentieren, als nur einmal kurz einen auf "dicke Hose" zu machen ... (und wieviele Gulden der schon hat!!!!)


    /signed
  10. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    das [/b] habe ich ursprünglich zum markieren im forum hier gehabt aber egal.

    <?php
    mysql_select_db("$db") or die ("Database doesn't exist");
    $result = mysql_query("SELECT id, titel, inhalt FROM newsscript ORDER BY id DESC");
    while($row = mysql_fetch_array($result))
    {
    echo "<option value=\"eintragen('nr1','$row[titel]');eintragen('nr2','$row[inhalt]\">'$row[id]'</option>\n";
    }
    ?>


    Eigentlich geht alles bist auf das, dass der Titel und ein Teil des Inhalts bei der Auswahl stehen und nicht in den 2 vorgesehenen Input kästchen "nr1" und "nr2".


  11. Hmmm, nach dem Stand des PHP-Scripts sollten in den Auswahlmöglichkeiten der Select-Box lediglich die ID-Nummern der Datensätze angezeigt werden, während die Inhalte von der Spalten Titel und Inhalt im Value Attribut In Verbindung mit Deiner Javascript-Function "eintragen()" untergebracht sind. Ich nehme jedenfalls an, dass "eintragen()" eine JavaSript-function sein soll. Ich weiß noch nicht, wie Du sie aufrufen willst, denn allein dadurch, dass sie in einem Value-Attribut aufgeführt wird wird sie definitiv noch nicht ausgeführt. Dazu solltest Du vielleicht ein onclick-Attribut definieren.

    Also, nach Stand des PHP-Sripts sollte folgender HTML-Code erzeugt worden sein:
    <option value="eintragen('nr1','TITEL_aus_DB-TABELLE');eintragen('nr2','INHALT_aus_DB-Tabelle')">ID_aus_DB-TABELLE</option>


    Als Option angezeigt wird dann aber nur ID_aus_DB-TABELLE.

    Ich habe Deinen letzten Beitrag gerade noch einmal gelesen. Möchtest Du vielleicht statt einer Select Box (ich hatte bislang angenommen, dass der gesamte HTML-Code von einem <select name=... > und </select> eingeschlossen wurde) mehrere Input-Boxen (=einzeilige Texteingabefelder) erzeugen?!?!!!!

    In dem Fall sollte Dein Code eher wie folgt aussehen:
    while($row = mysql_fetch_array($result)) {
    echo "<input type='text' name='titel_$row[id]' value='$row[titel]' size=16> "
        ."<input type='text' name='inhalt_$row[id]' value='$row[inhalt]' size=60><br>\n";
    }



    Beitrag zuletzt geändert: 18.7.2010 19:08:18 von cars-ten
  12. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    vllt hilft dir das weiter:
    das ist mein ganzer code mit js und den 2 input feldern und der select box

    <script type="text/javascript">
    function ausfuellen()
    {
    var startthis = document.getElementById('optionsfeld').value
    eval(startthis);}
    function eintragen(id,wert)
    {
    document.getElementById(id).value=wert;
    }
    </script>
    
    <form action="newsscript.php" method="post">
    <select name="cvbmnjfj" onChange="ausfuellen();" id="optionsfeld">
    <option value="eintragen('nr1','');eintragen('nr2','')"> </option>
    
    
    <?php
    mysql_select_db("$db") or die ("Database doesn't exist");
    $result = mysql_query("SELECT id, titel, inhalt FROM newsscript ORDER BY id DESC");
    while($row = mysql_fetch_array($result))
    {
    echo "<option value=\"eintragen('nr1','$row[titel]');eintragen('nr2','$row[inhalt]'\">'$row[id]'</option>\n";
    }
    ?>
    
    
     <br>
    
    
    </select>
    <input type="Text" name="asdf" value="" id="nr1">    <br>
    <input type="Text" name="lol" value="" id="nr2">   <br>
    <input type="Submit" name="submitbutton" value="werte ändern">
    </form>
  13. Du musst in function ausfüllen() zunächst das Select-Feld selbst bestimmen mit
    var optionsfelder=document.getElementById('optionsfeld')

    Dann kannst Du mit
    var var opt_nr=optionsfelder.selectedIndex
    herausfinden, welcher Eintrag (welche Option) aktuell selektiert ist. Diesen kannst Du dann z. B. so weiterverarbeiten:
    eval(optionsfelder[opt_nr].value);

    Ich habe es nicht ausgetestet, aber so, der so ungefähr solltest Du zur Lösung kommen!

    ((Ich weiß, ich wiederhole mich, weil ich fast alle meine Beiträge zu JavaScript mit dieser Bemerkung beende, aber trotzdem:
    Schau Dir mal die JavaScript-Bibliothek jQuery an. Damit lassen sich Deine Operationen viel leichter nachvollziehbar und mit weniger Code umsetzen. Klar musst Du Dich an dieses Framework erst einmal gewöhnen, aber es ist ein sehr schlankes Paket und macht JavaScript-Programmierung insgesamt sooooo viel leichter, weil man sich wieder auf die eigentlichen Inhalte konzentrieren kann.))

    Beitrag zuletzt geändert: 18.7.2010 20:14:15 von cars-ten
  14. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    ich habe mit js nichts am hut, den code habe ich mir geben lassen weil ich darauf hingewiesen wurde, dass man nur js oder andere sprachen nutzen kann, für das was ich machen will, die ich noch nicht gelernt habe.

    vllt hast du lust ein paar deiner 42 048 000 minuten deines lebens (wenn du 80 wirst) zu opfern und mir den quellcode zu schreiben.


    €dit: (gelöscht)

    €dit2: so jetzt habe ich den übeltäter :) wenn ich einen link in den text einbaue bekomm ich den fehler, ansonsten nicht. hat irgendjemand eine idee wie ich das lösen kann?

    Beitrag zuletzt geändert: 21.7.2010 13:10:28 von portal715
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!