Antworten auf deine Fragen:
Neues Thema erstellen

[mysql] Content aus der Datenbank auslesen und ausgeben

stroyer

Aktives Mitglied

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Allerdings wird so nicht direkt geprüft, ob die Zahl in einem zulässigen Bereich liegt.
 

Shran

Nicht mehr ganz neu hier

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Hat auch nicht wirklich geklappt^^
Ich halte erst mal an der jetzigen Lösung fest.
Momentan arbeite ich noch daran, wie ich prüfen kann ob die aufgerufene ID existiert wenn nein soll eine Fehlerseite kommen, naja bin guter Dinge^^ prüfen klappt nur noch die Ausgabe hat Probleme.
 

stroyer

Aktives Mitglied

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Wenn die ID nicht existiert, ist sie auch nicht in der Datenbank. Wenn du daher die Anzahl an Datensätze abrufst und diese 0 ist, gibst du die Fehlerseite aus, ansonsten lässt du alles beim alten.
 

Duddle

Posting-Frequenz: 14µHz

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Momentan arbeite ich noch daran, wie ich prüfen kann ob die aufgerufene ID existiert

Du rufst sie doch eh in der Datenbank ab. Wenn da kein Ergebnis zurückkommt, ist eben 404.

empfehle ich den Cast-Operator, weil:

(int) in der Ausführung schneller ist

Auch wenn ich mit deiner Quintessenz übereinstimme, so zeigt folgendes Testscript, dass 1* schneller zu sein scheint:
PHP:
<?php
$start = microtime(true);
for($i=0; $i<1000000; $i++) {
	$foobar = 'a';
	$foobar = (int)$foobar; //bzw. 1*$foobar
}
echo (microtime(true)-$start);
?>

Hier dauert bei mir nach mehreren Durchläufen die Variante (int)$foobar im Mittel ca. 1s. Die Variante 1*$foobar dauert ca. 0.85s, ist also gut 17% schneller.

Duddle
 

Shran

Nicht mehr ganz neu hier

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Derzeit mache ich es so:

PHP:
<?
$action = $_GET['action'];
$einlesen = mysql_query("SELECT ID FROM content WHERE ID='.intval($action).'");
if(mysql_num_rows($einlesen)==1) $yes = "1";
else $no = "1";
if($action == "0"){

 $sql = 'SELECT * from content WHERE id= 0';
 
$id_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");

while ($con = mysql_fetch_array($id_query)){

echo"<b><u>".$con["titel"]."
</u></b>";
echo$con["content"];
include "./includes/0.inc.php";  
}}


else if($yes =="1"){
  $action = $_GET['action'];
 $sql = 'SELECT * from content WHERE id='.intval($action).'';

$id_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");
while ($con = mysql_fetch_array($id_query)){

echo"<b><u>".$con["titel"]."
</u></b>";
echo$con["content"];
include "./includes/".intval($action['file']).".inc.php";  
}}


else if($no =="1"){
  $action = $_GET['action'];
 $sql = 'SELECT * from content WHERE id=9';

$id_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");
while ($con = mysql_fetch_array($id_query)){

echo"<b><u>".$con["titel"]."
</u></b>";
echo$con["content"];
include "./includes/9.inc.php";  
}}
?>

Mit yes und no prüfe ich ob die id vorhanden ist oder nicht.
Allerdings wird bei einer fehlerhaften ID, z.b. 23 nichts ausgegeben.
Nicht wie die gewünschte 9 ;)
die abfrage ob action 0 ist braucht man, wenn man die Seite betritt, sonst hat er ja keine Übergabe.(weiter oben sind action auch standardmäßig als 0 definiert genauso wie yes und no.)
 

splasch

Nicht mehr ganz neu hier

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Allternative gibst noch is_numeric.

Den Geschwindikeit unter schied wird kein Mensch spürbar feststellen können.
Von daher hast du freie auswahl welche Methode du einsetzen möchtest.

Kurze und eindeutige:
$a = (int)$_GET['a'];

Etwas mehr Schreib arbeit:

$a= is_numeric($_GET['a']);

Die nicht vorgesehne Mehtode die auf grund des Syntax Automatisch umwandelt.

$a= $_GET['a'] * 1;

Zum testen auf Ganze Zahlen selbe wie (int) nur andere Schreibweise

if(is_int ($_GET['a']))
{ $a= $_GET['a'];}

Mfg Splasch
 

stroyer

Aktives Mitglied

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Ich würde es gerade ein bisschen abändern:
PHP:
<?
$action = (int)$_GET["action"];
$einlesen = mysql_query("SELECT * FROM content WHERE ID=$action");
if(mysql_num_rows($einlesen)>0)
  {
    $con = mysql_fetch_array($einlesen);
  }
else
  {
    $con = mysql_fetch_array(mysql_query("SELECT * from content WHERE ID=9"));
  }
echo "<b><u>".$con["titel"]."</u></b>";
echo $con["content"];
include "includes/$action.inc.php";
?>
Das müsste eigentlich genügen.
 

Shran

Nicht mehr ganz neu hier

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Danke stroyer.
Hab das ganze aber so abändern müssen:
PHP:
<?
$action = (int)$_GET["action"];
$einlesen = mysql_query("SELECT * FROM content WHERE ID=$action");
if(mysql_num_rows($einlesen)>0)
  {
    $con = mysql_fetch_array($einlesen);
echo "<b><u>".$con["titel"]."</u></b>";
echo $con["content"];
include "includes/$action.inc.php";
  }
else
  {
    $con = mysql_fetch_array(mysql_query("SELECT * from content WHERE ID=9"));
echo "<b><u>".$con["titel"]."</u></b>";
echo $con["content"];
include "includes/9.inc.php";
  }

?>
Da wenn man z.b. Id 11 aufruft(die nicht exisitert) er auch 11.inc.php includen will und das gibts natürlich nicht ;) eventuell könnte man jetzt noch prüfen ob die Datei exisiert und wenn sie nicht exisiert gar nichts tun und wenn sie exisiert sie includen.
Und genau das werde ich jetzt machen ;)
Also nur eine Übergangslösung ist das was ich gepostet habe.
 

stroyer

Aktives Mitglied

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

Ich würde dann aber einfach auf folgendes abändern auf Grund der Leserlichkeit:
PHP:
 <?
$action = (int)$_GET["action"];
$einlesen = mysql_query("SELECT * FROM content WHERE ID=$action");
if(mysql_num_rows($einlesen)>0)
  {
    $con = mysql_fetch_array($einlesen);
  }
else
  {
    $action=9;
    $con = mysql_fetch_array(mysql_query("SELECT * from content WHERE ID=$action"));
  }
echo "<b><u>".$con["titel"]."</u></b>";
echo $con["content"];
if(file_exists("includes/$action.inc.php"))
  {
     include "includes/$action.inc.php";
  }
?>
 

Shran

Nicht mehr ganz neu hier

AW: [mysql] Content aus der Datenbank auslesen und ausgeben

ja hatte es eben auch noch mal so gemacht, dass ich action dann 9 zuweise, aber dennoch danke ;)

edit:
Nachher werd ich mal meinen anderen Versuch posten.
Ich benutze Datenbanken ja nicht weil sie so toll sind, sondern aufgrund des managements.
Bin noch dabei, ein System zu schaffen, wie ich die Daten in der DB verwalten kann.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.636
Beiträge
1.538.484
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben