php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.07.2005, 17:43  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard Seite 1/2/3..Code was haltet ihr davon?

Hi

Ich hab mir in den letzten Tagen einen "Seite 1/2/3.." Code zusammengebastelt.
Bei mir funktioniert es auch ganz gut, aber da ich ja noch php Anfänger bin, denke ich das der Code nicht gerade der beste sein wird und es auch nicht die beste Lösung ist :wink:

Hab am Anfang dieses Tutorial hier gelesen: http://php-info.org/ftopic109.html , nun ja nach mehreren Stunden hab ich immer noch nicht kapiert was da überhaupt passiert , da dort (nach meinem wissen) sehr viele Sachen stehen mit dem ich früher noch nie zu tun hatte und ich nichtmal von gehört habe.

Naja dan hab ich mir gedacht das es eine einfachere Lösung gibt und nun wollte ich euch fragen, was ihr vom Code haltet und was man daran verbessern könnte.

PHP-Code:
<?php
//bilder pro seite eingeben
$bilder_pro_seite='2';
//ende
$bilder_pro_seite_weniger_1=$bilder_pro_seite-'1';
//Link 'Seite x' erstellen und berechnen wieviele Links erzeugt werden müssen
$db=mysql_connect ("$host10","$dbname","$dbpw");
mysql_select_db("$dbname"$db) or die(mysql_error());
   
$sqlab  "select id from funpic";
   
$sqlab .= " where kategorie = '$kategorie'";

   
$res mysql_db_query("$dbname"$sqlab);
   
$num mysql_num_rows($res);
$bilder $num $bilder_pro_seite;
$s='0';
for (
$i='0'$i<$bilder$i++){
if (
$bilder '1'){
$k=$i+'1';
echo 
"<a href=\"$datei$s\">Seite $k</a>";
$s=$s+$bilder_pro_seite;
}
}
//ende

//bilder daten raushollen und ausgeben
   
$sqlab  "select id, dateiendung from funpic";
   
$sqlab .= " where kategorie = '$kategorie'";

   
$res mysql_db_query("$dbname"$sqlab);
   
$num mysql_num_rows($res);
   
$k='0';
   
$i='0'+$_GET['bilder'];
   
$pro_seite=$bilder_pro_seite_weniger_1+$_GET['bilder'];

   for (;
$i<$num&&$i<=$pro_seite$i++)
   {
      
$id mysql_result($res$i"id");
      
$dateiendung mysql_result($res$i"dateiendung");
      
    if (
$k<'4'){
        
$k++;
//bilder anzeigen und andere daten
      
}

      else {
        
$k='1';
//bilder anzeigen und andere daten
}
   }
      
mysql_close($db);
//ende
?>
Schonmal danke im Voraus für eure Kritik und Verbesserungsvorschläge :wink:
Matthiasnet ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.07.2005, 18:39  
Gast
 
Beiträge: n/a
Standard

Zwei Kritikpunkte

1. mysql_db_query ist veraltet, benutze mysql_select_db und mysql_query, siehe Doku
2. Der Quellcode könnte etwas leserlicher sein. Einrücken, hier und da Leerzeilen und Leerzeichen würden die Sache schon mal besser machen.

Gruß
phpfan
 
Alt 29.07.2005, 18:53  
Gast
 
Beiträge: n/a
Standard

Na dann mal los....

Konsequenter einrücken und strukturieren.
Kommentare auf Aussagekraft überprüfen ( //ende ...so so. Ende von was? Bis wann? )

Zitat:
$bilder_pro_seite_weniger_1=$bilder_pro_seite-'1';
-'1'? Warum erzeugst Du vorsetzlich eine Zeichenkette zum Rechnen mit Zahlen? $x - 1. Über das gesamte Skript verteilt werden Zahlen explizit als Zeichenketten angegeben. Warum?

Sprechende Variablennamen sind gut, aber man kann es auch übertreiben.
a) wird der Sinn in diesem Fall nicht wirklich klarer
b) benutzt Du den Wert nur ein einziges Mal; die Variable kannst Du Dir in diesem Fall auch sparen.

Zitat:
//Link 'Seite x' erstellen und berechnen wieviele Links erzeugt werden müssen
Das wäre evtl. die Beschreibung einer Funktion/Methode. Aber an der Stelle und in dieser Form als Kommentar eher verwirrend als hilfreich/strukturierend.

Zitat:
$sqlab = "select id from funpic";
$sqlab .= " where kategorie = '$kategorie'";
Zeichenkettenliterale dürfen bei php über mehrere Zeilen gehen.
PHP-Code:
<?php
$sqlab  
"
        select
            id
        from
            funpic
        where
            kategorie = '$kategorie'
    "
;
?>
Zitat:
$res = mysql_db_query("$dbname", $sqlab);
Was bewirkt "$dbname" und wo liegt der Vorteil gegenüber blub($variable)?

http://php.net/mysql_db_query
Zitat:
Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.
Nur zum Zählen der Datensätze reicht ein Count() in der sql-Abfrage. Zurückgeliefert wird nur ein Datensatz mit der Anzahl. mysql_query() überträgt alle Ergebnisdatensätze über das Netzwerk in den Speicher von php. Count() ist daher schneller und resourcensparender.

Ich bin im Moment bei weitem zu faul, das Skript inhaltlich zu begreifen. Vielleicht später...
 
Alt 29.07.2005, 19:38  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Seite 1/2/3..Code was haltet ihr davon?

Zitat:
Zitat von Matthiasnet
Hab am Anfang dieses Tutorial hier gelesen: http://php-info.org/ftopic109.html , nun ja nach mehreren Stunden hab ich immer noch nicht kapiert was da überhaupt passiert , da dort (nach meinem wissen) sehr viele Sachen stehen mit dem ich früher noch nie zu tun hatte und ich nichtmal von gehört habe.
Sorry, wenn ich das so sage .. aber das Tutorial ist echt für Dumme ...
imported_Ben ist offline  
Alt 29.07.2005, 20:29  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard

@phpfan
Danke, ich hab mysql_db_query überall durch mysql_query ersetzt.
Aber eins versteh ich immer noch nicht, was ist eigentlich so schlimm daran wenn man etwas veraltetes wie mysql_db_query verwendet? Letztendlich erfüllen die ja die gleichen Aufgaben. Ich kann mir eigentlich nur denken das ab einer bestimmten php version mysql_db_query nicht mehr funktiniert oder liegt das an etwas anderem?

zu b, werde danach auch mal den Quellcode lesserlicher gestalten und wie VolkerK auch schreibt die Kommentare "verbessern" und die Zeichenkettenliterale über mehreren Zeilen schreiben

@VolkerK
das //ende gehört immer zum vorher geschriebenen Kommentar :wink:
Aber ich denke mal wenn ich ne Weile nichts mehr damit zu tun habe und dan aufeinmal etwas verbessern/hinzufügen will, ist es sinvoller sinvolle Kommentare zu schreiben, befor ich alles vergesse

-'1'? Warum erzeugst Du vorsetzlich eine Zeichenkette zum Rechnen mit Zahlen? $x - 1. Über das gesamte Skript verteilt werden Zahlen explizit als Zeichenketten angegeben. Warum?

Hab ich eigentlich nur aus gewohntheit gemacht, hab es früher auch nie anders gemacht.
Wenn man $x - 1 könnte man auch wieder ein paar Zeilen sparen.


Was bewirkt "$dbname" und wo liegt der Vorteil gegenüber blub($variable)?

Naja ich glaube keiner . Das hab ich von einem Openbook über php oder so, da stand das auch überall so drin.


Nur zum Zählen der Datensätze reicht ein Count() in der sql-Abfrage. Zurückgeliefert wird nur ein Datensatz mit der Anzahl. mysql_query() überträgt alle Ergebnisdatensätze über das Netzwerk in den Speicher von php. Count() ist daher schneller und resourcensparender.

Ok, werd ich auch umändern.
Danke für die Verbesserungsvorschläge, die helfen mir auf jeden Fall weiter

@Ben
Naja, das Problem liegt bei dem "printf","is_numeric", die ganzen % Zeichen und return hab ich auch noch nie benutzt und das Php Handbuch das ihr hier ziemlich oft empfehlt ist mir meisten zu kompliziert erklärt.
Naja ich hab ja wenigstens eine alternative erschaffen
Matthiasnet ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CURL in Seite einloggen und einen Teil parsen Matt PHP Tipps 2008 8 03.09.2009 22:30
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
[Erledigt] Lesbarkeit von Code Off-Topic Diskussionen 6 14.07.2005 14:48
code aus db mit eval replacen chief-thomson PHP Tipps 2005-2 4 08.07.2005 15:33
PHP News in normale HTML Seite? PHP Tipps 2005-2 5 06.07.2005 19:45
Welche seite (Adresse) rief die aktuelle seite auf? PHP Tipps 2005-2 7 05.07.2005 15:02
[Erledigt] Login auf einer externen Seite per PHP ? PHP-Fortgeschrittene 9 03.07.2005 02:31
Seite wird nicht angezeigt, untersch. Fehler bei IE/FF/Safar PHP-Fortgeschrittene 19 31.05.2005 14:52
PHP Seite einbinden in PHP Seite PHP Tipps 2005 8 22.05.2005 19:55
Alle 60 Sec neue seite? PHP Tipps 2005 20 13.05.2005 15:27
[Erledigt] BB Code entfernen PHP Tipps 2005 2 25.04.2005 15:20
Location String in printer friendly Seite mitgeben PHP Tipps 2004-2 14 09.12.2004 17:27
php+Seite kann nicht angeziegt werden, Seite existiert aber Server, Hosting und Workstations 2 09.09.2004 08:21
"NEWS-SCRIPT" in eine Seite einbinden: Aber wie ? PHP Tipps 2004 2 03.07.2004 16:33
Werte auf andere Seite übergeben themonk PHP Tipps 2004 2 29.06.2004 21:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
was haltet ihr von sqlab, sprechende seitenadresse php

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.