#1 21. Juli 2008 Problem beim Ausgeben von $id im Link Hallo, unzwar hab ich ein Problem, da ich ja mich nich so ganz auskenne mit PHP aber schon etwas Programmiere, steh ich schon vorm ersten Problem. Unzwar, möchte ich das hier realisieren: 1. Die Ausgabe muss in einer Tabelle sein 2. Die Ausgabe muss mit der "id" (So heißt die Datenbank in MySQL) verlinkt sein z.B. "delete.php?del=33 (33 = $id) Code: PHP: <? php include 'mysql.php' ; $abfrage = "SELECT * FROM packs" ; $ergebnis = mysql_query ( $abfrage ); while( $row = mysql_fetch_object ( $ergebnis )) { ?> </div> <p align="center" class="Stil2"> </p> <p align="center" class="Stil2"> </p> <p align="center" class="Stil2"><? echo " $row -> id " ; ?> | <? echo " $row -> ueberschrift " ; ?> | <? echo " $row -> hoster " ; ?> | <? echo " $row -> genre " ; ?><br> <? echo " $row -> link " ; } ?><br> <br> <span class="Stil3"><a href="delete.php?id=<?php $id = $row -> id ; echo $id ; ?>">LÖSCHEN</a></span></p> Ich danke euch sehr wenn ihr mir bei meinem Problem helfen könnt + Multi-Zitat Zitieren
#2 21. Juli 2008 AW: Problem beim Ausgeben von $id im Link hi, du kanns objekte auch direkt ausgeben^^ PHP: echo $obj -> index ; und " " drumrum brauchst auch ned... zu deinem prob: mach ne html-tabelle und erstell in der while-schleife die zeilen? PHP: <table><tbody> <?php while( true ): ?> <tr><td>hallo</td></td>welt</td></tr> <?php break; endwhile; ?> </tbody></table> + Multi-Zitat Zitieren
#3 21. Juli 2008 AW: Problem beim Ausgeben von $id im Link hmm also wie mache ich das dann mit dem link? wenn ich es in der tabelle mache wie folgt kommt sowas raus: PHP: <table width="350" border="0" align="center"> <tr> <td class="Stil2">ID</td> <td class="Stil2"><? echo " $row -> id " ; ?></td> </tr> <tr> <td class="Stil2">Überschrift</td> <td class="Stil2"><? echo " $row -> ueberschrift " ; ?></td> </tr> <tr> <td class="Stil2">Hoster</td> <td class="Stil2"><? echo " $row -> hoster " ; ?></td> </tr> <tr> <td class="Stil2">Genre</td> <td class="Stil2"><? echo " $row -> genre " ; ?></td> </tr> <tr> <td class="Stil2">DownloadLink</td> <td class="Stil2"><? echo " $row -> link " ; } ?></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td colspan="3"> </td> </tr></table> + Multi-Zitat Zitieren
#4 21. Juli 2008 AW: Problem beim Ausgeben von $id im Link aus: PHP: <? echo " $row -> link " ; } ?> WIRD PHP: <?= $row -> link ; ?> <?= steht für <?php echo. Ist die Kurzform und das } war da falsch (glaube ich) Desweiteren rate ich dir, nicht mit mysql_fetch_object zu arbeiten! Objecte zu erzeugen brauch viel mehr ressourcen als eine Array. Aber auch hier solltest du auf die richtige Wahl achten, mysql_fetch_array speichert doppelt so viele Daten wie mysql_fetch_assoc! Denn bei mysql_fetch_array kannst du die Daten auch via $row[0] etc abrufen. Bei mysql_fetch_assoc jedoch nur mit den Spaltennamen, also hier zb $row['link']; Damit du auch gleich mal ein bisschen von Codeoptimierung Wind bekommst MfG + Multi-Zitat Zitieren
#5 21. Juli 2008 AW: Problem beim Ausgeben von $id im Link Aus Kompatibilitätsgründen solltest du jedoch PHP: <? php echo $row -> link ; // oder print. :-) ?> benutzen. + Multi-Zitat Zitieren
#6 21. Juli 2008 AW: Problem beim Ausgeben von $id im Link @Cydoc: Das '}' beendet die while Ich würd die Ausgabe dennoch weiterhin so gestalten: <?php echo $row->id; ?> Der Grund: Dieser Tag funktioniert so nur (also <?= ), wenn in der php.ini short_open_tag aktiviert ist. Und zu deinem Optimierungstipp: Ich rate jedem, mysql_fetch_arr5ay zu verwenden. Als zweiten Parameter kann man dann MYSQL_ASSOC übergeben, und man erhält auch so die Spaltennamen als Keys Ist wesentlich flexibler. Ansonsten zum Problem: Die while-Schleife wird noch vor der Ausgabe der id beendet, bzw erneut gestartet. Dann ist klar, warum es nicht geht €: So sollte es funzen: PHP: </div> <?php include 'mysql.php' ; $abfrage = "SELECT * FROM packs" ; $ergebnis = mysql_query ( $abfrage );while( $row = mysql_fetch_object ( $ergebnis )) { ?> <p align="center" class="Stil2"> </p><p align="center" class="Stil2"> </p><p align="center" class="Stil2"><?php echo " $row -> id " ; ?> | <?php echo " $row -> ueberschrift " ; ?> | <?php echo " $row -> hoster " ; ?> | <?php echo " $row -> genre " ; ?><br> <?php echo " $row -> link " ; ?><br><br><span class="Stil3"><a href="delete.php?id=<?php echo $row -> id ; ?>">LÖSCHEN</a></span></p> <?php } ?> Mfg + Multi-Zitat Zitieren
#7 21. Juli 2008 AW: Problem beim Ausgeben von $id im Link So zur Info: Haltet mich bloß nicht für dumm Ich weiß wohl, dass } das beendet, aber es ar, wie du auch dann sagtest, an einer ganz falschen Stelle. Da er nur einen Teilcode postete, habe ich das gesagt was ich sah und es ist richtig. Und natürlich, du kannst mysql_fetch_array mit der ASSOC Angabe machen, allerdings ist es dann genau dasselbe wie mysql_fetch_assoc und es spart wieder Code, aber wenn du gerne jedes mal die Angabe dazu machen willst, kein Problem. Wenn man die Indizies haben will, nimmt man halt wieder array.... Nagut, wenn man nicht weiß wie man das umstellt, dann sollte man von Anfang an alles die richtigen Leute machen lassen. Es warn halt nur Optimierungstipps. print zb würde ich nicht nutzten, du kannst ganz leicht selber testen, dass print in der Ausgabe langsamer ist als echo, wobei viele genau das andere denken. Tatsache ist, das echo schneller ist. + Multi-Zitat Zitieren
#8 21. Juli 2008 AW: Problem beim Ausgeben von $id im Link Wer fortgeschritten entwickelt, nutzt Klassen. Und das bisschen Code mehr ist mehr oder weniger scheiss egal. Da gehts selbst bei großen Projekten nicht um jede Nanosekunde. Und man kann den ASSOC ganz leicht auf default legen und dann bspw die Keys nur dann abrufen, wenn man sie braucht. Spart einen kompletten PHP-Befehl. Und ich weiß nicht, was schneller ist. <?php echo "blabla"; ?> oder <?="blabla";?> Ich denke ersteres, da echo als Sprachkonstrukt bereits so übergeben wird - im Gegensatz zu <?=, wo PHP erst noch prüfen muss, ob die entsprechende Einstellung aktiviert ist? Und zu print vs. echo. Laut einem Benchmark (dem hier), liegt print vor echo. Getestet wurde noch mit einer PHP4-Version. Und hier liegt anscheinend echo ganz leicht vor print: klick hier. Ihmo kann man print oder echo benutzen. Beides sind Sprachkonstrukte. Eigtl sowieso völlig egal =P + Multi-Zitat Zitieren
#9 22. Juli 2008 AW: Problem beim Ausgeben von $id im Link du redest hier von zeitangaben die du ned mal merken würdest wenn alles in zeitlupe laufen würde. die einzigen unterschiede zwischen echo und print sind, dass echo beliebige viele argumente entgegen nehmen kann und print immer 1 zurückgibt (deswegen a weng langamer, aber mächtiger). PHP: echo 'foo' , 'bar' , 'baz' ; bei print hingegen würde das so aussehen (normale verkettung via ".") PHP: print 'foo' . 'bar' . 'baz' ; wenn du also lieber ein "," anstatt einem "." schreibst, kannst echo benutzen, andernfalls kannst wählen was dir besser gefällt. die benchmarks sind im grunde hinfällig, weil seit php5 kein merkbarer unterschied mehr besteht. PHP: print - Manual <- kommentare lesen ps: php5.3 hat keine short-tags mehr, nur mal so nebenbei. + Multi-Zitat Zitieren