php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-11-2009, 17:48
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Question Tabelleninahlt auslesen, per klick aufrufbar [MySQL]

Hallo leute,

ich habe ein kleines Problem ^^ Ich will aus einer Datenbank (Testsql1) Die Tabelle (benutzerdaten) auslesen lassen, diese daten sollen jedoch ID wiese eingeteillt werden und dann in einer PHP Datei per klick anzeigbar sein ( nach dem Hide prinzip)
In der Tabelle gibt es die Felder Userdaten, config usw.
Man könnte auch sagen das Ganze soll zeilenweise ausgelesen werden...

Also es sollte dynamisch alle zeilen ausgeben (wenn neu zeilen/Ids da sind solten diese auch erscheinen) und dann sollte da nen Link / Button sein, auf den man klickt und z.b. die Infos von ID 1 bekommt

Währe cool wenn jm. hilft

mfg
Restless

Geändert von Restless (23-11-2009 um 18:34 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 23-11-2009, 18:23
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Nein, das mit dem Forum ist so korrekt. Hast du denn schon eigene Ansätze dazu?

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 23-11-2009, 18:33
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Standard

ich sag mal jain ^^ (eher nein)

Also das hier ist das Script....


Code:
<!-- Javascript -->
        <script type="text/javascript">
            function showHideLayer(id){
                e = document.getElementById(id);
                if(e.style.display=="block"){
                    e.style.display = "none";
                } else {
                    e.style.display = "block";
                }
            }
        </script>

PHP-Code:
<?php
$dbverbindung 
mysql_connect ($host$username$password);
$dbanfrage "SELECT * from $usertabelle";
$result mysql_db_query ($dbname$dbanfrage$dbverbindung);
 while (
$ausgabe mysql_fetch_array ($result))
 {
 print 
(
"   
    <!-- Link zum Anzeigen/Verstecken -->
    <a href='alternativerLink' onclick='showHideLayer('meinLayer');return(false)'>Anzeigen/Verstecken</a>
    <div id='meinLayer' style='display:none;'>
    <table>
             <tr>
                <td>Benutzername: $ausgabe[Nickname]</td>
            </tr>
            <tr>
                <td>K&uuml;rzel: $ausgabe[kurz]</td>
            </tr>
            <tr>
                <td>Slots: $ausgabe[Straße]</td>
            </tr>
            <tr>
                <td>Ort: $ausgabe[Ort]</td>
            </tr>
    </table>
    </div>
    <br>"
    
);
 }
mysql_close ($dbverbindung)
?>
Es funktionier so eher halb / bis gar nicht ^^ er versteckt es zwar und man kann es im Quelltext auch sehen aber wenn man klickt kommt man immer nur zum Link (indem falle alternativLink) nur fällt mir immo nicht ein was ich da sonst nehmen sollte ... # oder index.php funktionieren nicht ^^
Mit Zitat antworten
  #4 (permalink)  
Alt 23-11-2009, 18:57
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

dein onclick-Attribut ist ungültig, weil du darin dieselben (einfachen) Anführungszeichen verwendest, wie für den Attributwert selbst. Ansonsten ist als href-Attribut "#" die erste Wahl.

Gruß,

Amica
Mit Zitat antworten
  #5 (permalink)  
Alt 23-11-2009, 19:04
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Das kann so nicht funktionieren. Jeder "Layer" muss über eine eindeutige ID verfügen. Und das mit dem Link ist auch falsch. Du musst so in der Art vorgehen:
PHP-Code:
while ($ausgabe mysql_fetch_array ($result))
{
  echo 
'<a href="javascript:;" onclick="showHideLayer(\'meinLayer'.$ausgabe['id'].'\');">Anzeigen/Verstecken</a>
  <div id="meinLayer'
.$ausgabe['id'].'" style="display:none;">
    ...
  </div>'
;

Und informieren dich bitte über Zeichenkettenverknüpfungen, da kannst du schon einige Fehler vermeiden.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 23-11-2009, 19:07
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Ansonsten ist als href-Attribut "#" die erste Wahl.
Nicht bei langen Listen, da man sonst immer wieder nach oben springt.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 23-11-2009, 19:08
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<a href='alternativerLink' onclick='showHideLayer(\"meinLayer\");return(false)'>Anzeigen/Verstecken</a
Jut Fehler behoben ^^
nun aber ein weiteres Problem ... wenn ich jetzt 2 Einträge in der MySQL Datenbank habe (Test1 und test2) dann kann ich auf bei Buttuns klicken, aber es wird immer nur Test1 angezeigt .... im Quellcode ist es aber richtig ... woran liegts und wenn es nen statisches Problem ist wie bekomme ich es dynamisch hin?

thx schonmal für die vorherige Hilfe
Mit Zitat antworten
  #8 (permalink)  
Alt 23-11-2009, 19:10
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Siehe meine beiden letzten Posts.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 23-11-2009, 19:28
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Du kannst auch das Start-Tag des div direkt nach das End-Tag des a schreiben:

HTML-Code:
...</a><div ...
Dann kannst du showHideLayer direkt mit this.nextSibling aufrufen und brauchst darin auch nicht erst mit getElementById arbeiten (das ist nämlich teuer).

Mal als einfaches Beispiel, wie ich sowas immer mache:

HTML-Code:
...
<script type="text/javascript">/*<![CDATA[*/
	function toggleBlock (pNode) {
		pNode.nextSibling.style.display
			= pNode.nextSibling.style.display == 'block'
				? 'none'
				: 'block';
		pNode.firstChild.nodeValue
			= pNode.firstChild.nodeValue == 'show'
				? 'hide'
				: 'show';
	}
/*]]>*/</script>
...
<ul>
	<li>
		<a href="#" onclick="toggleBlock(this); return false">show</a><ul>
			<li>
				...
			</li>
			...
		</ul>
	</li>
	...
</ul>
...
Mit Zitat antworten
  #10 (permalink)  
Alt 23-11-2009, 19:41
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Dann kannst du showHideLayer direkt mit this.nextSibling aufrufen und brauchst darin auch nicht erst mit getElementById arbeiten (das ist nämlich teuer).
Du weißt aber, dass Zeilenumbrüche in den einzelnen Browsern unterschiedlich interpretiert werden? Und du hier keine entsprechende Abfrage gemacht hast? Schließlich könnte der Code ja auch so aussehen:
PHP-Code:
<a href="#" onclick="toggleBlock(this); return false">show</a>
  <
ul>
    <
li>
      ...
    </
li>
  </
ul
Und warum ist getElementById teurer als nextSibling? Außerdem springt man bei einem #-Link immer wieder nach oben, was bei langen Listen nicht so prickelnd ist.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite

Geändert von Kropff (23-11-2009 um 19:44 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 23-11-2009, 19:44
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Kropff Beitrag anzeigen
Du weißt aber, dass Zeilenumbrüche in den einzelnen Browsern unterschiedlich interpretiert werden?
Deswegen soll der Block auch direkt nach dem Element mit dem onclick notiert werden, weil dann kein Zeilenumbruch mehr dazwischen ist.

Zitat:
Zitat von Kropff Beitrag anzeigen
Und warum ist getElementById teurer als nextSibling?
Warum das so ist, kann ich nicht mit Gewissheit sagen. Dass es so ist, hab ich mal mit entsprechenden Tests rausgefunden.
Mit Zitat antworten
  #12 (permalink)  
Alt 23-11-2009, 19:48
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Deswegen soll der Block auch direkt nach dem Element mit dem onclick notiert werden, weil dann kein Zeilenumbruch mehr dazwischen ist.
Das kann aber keiner garantieren. Da muss nur ein Ordnungsfanatiker wie ich in den Templates aufräumen, dann ist hängen im Schacht. Darum sollte man imho immer mit nodeType vorher prüfen.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #13 (permalink)  
Alt 23-11-2009, 20:01
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Na dann musst du das halt prüfen, hier der Code für die, die es noch nicht wissen:

Code:
var nextNode = pNode.nextSibling;
while (nextNode.nodeType != 1) {
    nextNode = nextNode.nextSibling;
}
// mach was mit nextNode
Übrigens haben andere auch die Erfahrung gemacht, dass getElementById teuer ist. Hier mal ein Exzerpt von http://www.mail-archive.com/jquery-e...msg09056.html:

Zitat:
There are fast methods and slow methods:
Fast
- parentNode
- nextSibling
- ownerDocument
- firstChild
Slow
- previousSibling
- getElementById
- lastChild

The getElemenByTagName has a paradox. It returns the list of elements very quickly. However, access to elements from that list is very slow. It feels as if it were returning a proxy of sorts.

In a large tree it's faster to collect a hash of all element ids than use getElementById.

Geändert von AmicaNoctis (23-11-2009 um 20:09 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 23-11-2009, 20:04
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Standard

ok ok ^^ passt ja schon halbwegs xD
habe jetzt das einfach auch mal das von AmicaNoctis probiert und habs soweit Fast komplett hinbekommen
Das einzigste was mich stört ist nur noch das es am anfang geöfnet ist ...
Das müsste doch i-wie einstellbar sein ... Und das mit dem immer nach oben springen habe ich wie Kropff bei dem alten script mit javascript:; gelöst ... hier mal der neue Auszug:


Code:
<script type="text/javascript">/*<![CDATA[*/
    function toggleBlock (pNode) {
        pNode.nextSibling.style.display
            = pNode.nextSibling.style.display == 'none'
                ? 'block'
                : 'none';
        pNode.firstChild.nodeValue
            = pNode.firstChild.nodeValue == 'show'
                ? 'Hide'
                : 'show';
    }
/*]]>*/</script>
PHP-Code:
<?php
$dbverbindung 
mysql_connect ($host$username$password);
$dbanfrage "SELECT * from $usertabelle";
$result mysql_db_query ($dbname$dbanfrage$dbverbindung);
 while (
$ausgabe mysql_fetch_array ($result))
 {
 print 
(
"<a href='javascript:;' onclick='toggleBlock(this); return false'>Hide</a><ul>
    <table>
             <tr>
                <td>Benutzername: $ausgabe[Nickname]</td>
            </tr>
            <tr>
                <td>K&uuml;rzel: $ausgabe[kurz]</td>
            </tr>
            <tr>
                <td>Slots: $ausgabe[Straße]</td>
            </tr>
            <tr>
                <td>Ort: $ausgabe[Ort]</td>
            </tr>
    </table>
    </ul>
    <br>"
    
);
 }
mysql_close ($dbverbindung)
?>
Mit Zitat antworten
  #15 (permalink)  
Alt 23-11-2009, 20:06
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Restless Beitrag anzeigen
Das einzigste was mich stört ist nur noch das es am anfang geöfnet ist ...
Das mach ich mit CSS. Hab ich vergessen zu erwähnen, sorry.

Edit: Das mit dem ul war nur ein Beispiel. In deinem Falle würdest du das durch table ersetzen: ...</a><table>...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL auslesen. Everdream PHP Developer Forum 5 12-08-2007 17:51
[Script] Script, was den Code von PHP-Dateien übers Web aufrufbar macht ? shock Apps und PHP Script Gesuche 2 26-03-2006 00:55
Mysql auslesen ayin PHP Developer Forum 6 25-07-2005 13:04
Adresse im Browser einfach aufrufbar ?? DreamX PHP Developer Forum 2 30-11-2004 11:40
Auslesen aus MySQL Benny-one PHP Developer Forum 1 06-05-2002 09:29

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:02 Uhr.