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 07-08-2015, 00:15
WIle-E-Coyote
 Registrierter Benutzer
Links : Onlinestatus : WIle-E-Coyote ist offline
Registriert seit: Aug 2015
Beiträge: 3
WIle-E-Coyote befindet sich auf einem aufstrebenden Ast
Standard Link aus Datenbank per php einpflegen

Ein Hallo ins Forum,

ich habe folgendes Problem und komme nicht auf die Lösung: Ich habe ein Script erstellt, was Daten aus der Datenbank liest und eine Tabelle im Web anzeigt.

Das Datenfeld "Beschreibung" ist nicht immer belegt, aber wenn habe ich ein Modul gebaut, was beim Klick auf den Namen der Liste dann geladen wird und die Beschreibung wird hineingeladen.

Hier das Skript:

PHP-Code:
<?php
//UTF-8
//Autor: Uwe Hennig
header("Content-Type: text/html; charset=utf-8"); 

$db JFactory::getDBO();




$abfrage "SELECT * FROM " $db->getPrefix() . $jumi[0];


$ergebnis mysql_query($abfrage);
if ( ! 
$ergebnis )
{
  die(
'Ungültige Abfrage: ' mysql_error());
}

$biografie "";


echo 
"<div class=\"row\"><div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">";
echo 
"<table class=\"kriegsopfer\">";
echo 
"<thead><tr>";
echo 
"<th>Nachname</th><th>Vorname</th><th>geboren am</th><th>geboren wo</th><th>gestorben am</th><th>gestorben wo</th><th>Angehörigkeit</th><th>Grab</th>";
echo 
"</tr></thead><tbody>";

 
while (
$zeile mysql_fetch_array$ergebnisMYSQL_ASSOC))
{
  echo 
"<tr>";
  if (isset(
$zeile['beschreibung'])) {
     echo 
"<td><a href=\"#"$zeile['id'] . "Beschreibung\" data-toggle=\"modal\">"$zeile['nachname'] . "</a></td>";


$biografie.="<div class=\"modal fade\" id="$zeile['id'] . "Beschreibung role=\"dialog\"><div class=\"modal-dialog\"><div class=\"modal-content\"><div class=\"modal-header\"><h2>"$zeile['vorname'] . " "$zeile['nachname'] . "</h2></div><div class=\"modal-body\"><p>"$zeile['beschreibung'] . "</p></div><div class=\"modal-footer\"><a class=\"btn btn-default\" data-dismiss=\"modal\">Schließen</a></div></div></div></div>";


     } 

else {
          echo 
"<td>"$zeile['nachname'] . "</td>";}

 
  echo 
"<td>"$zeile['vorname'] . "</td>";
//  echo "<td style=\"text-align: right;\">". $zeile['geboren_am'] . "</td>";
  
echo "<td>"$zeile['geboren_am'] . "</td>";
  echo 
"<td>"$zeile['geboren_wo'] . "</td>";
  echo 
"<td>"$zeile['gestorben_am'] . "</td>";
  echo 
"<td>"$zeile['gestorben_wo'] . "</td>";
  echo 
"<td>"$zeile['staatsangehoerigkeit'] . "</td>";
  echo 
"<td>"$zeile['grab'] . "</td>";

  echo 
"</tr>";
}
echo 
"</tbody></table><hr /></div></div>";

echo 
$biografie;





mysql_free_result$ergebnis );

?>

So nun will ich das ausbauen, das eine Prüfung der $zeile('beschreibung') erfolgen soll, ob sich darin ein Link befindet. Wenn ja, soll dieser mit dem Namen verlinkt werden, statts dem Modul.

Ich habe schon stundenlang drüber geschaut finde den Fehler aber nicht. Es wird wieder nur ein kleines Semikolon oder eine Klammer sein aber wo?


PHP-Code:
<?php
//UTF-8
header("Content-Type: text/html; charset=utf-8"); 

$db JFactory::getDBO();




$abfrage "SELECT * FROM " $db->getPrefix() . $jumi[0];


$ergebnis mysql_query($abfrage);
if ( ! 
$ergebnis )
{
  die(
'Ungültige Abfrage: ' mysql_error());
}

$biografie "";
$suche "";


echo 
"<div class=\"row\"><div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">";
echo 
"<table class=\"kriegsopfer\">";
echo 
"<thead><tr>";
echo 
"<th>Nachname</th><th>Vorname</th><th>geboren am</th><th>geboren wo</th><th>gestorben am</th><th>gestorben wo</th><th>Staats-<br>angehörigkeit</th>";
echo 
"</tr></thead><tbody>";

 
while (
$zeile mysql_fetch_array$ergebnisMYSQL_ASSOC))
{
  echo 
"<tr>";
  
// wenn beschreibung existiert
  
if (isset($zeile['beschreibung'])); 
  
//  dann wird Variable geladen und kontrolliert, ob beschreibung NICHT mit Text "NULL" gefüllt ist
  
if ($zeile['beschreibung']!="NULL");


    
$findmich 'http://';
      
$suche stripos($zeile['beschreibung'], $findmich);
  
//wenn es kein Link ist...
          
if ($suche === false);
           {
            echo 
"<td><a href=\"#"$zeile['id'] . "Beschreibung\" data-toggle=\"modal\">"$zeile['nachname'] . "</a></td>";
    
$biografie.="<div class=\"modal fade\" id="$zeile['id'] . "Beschreibung role=\"dialog\"><div class=\"modal-dialog\"><div class=\"modal-content\"><div class=\"modal-header\"><h2>"$zeile['vorname'] . " "$zeile['nachname'] . "</h2></div><div class=\"modal-body\"><p>"$zeile['beschreibung'] . "</p></div><div class=\"modal-footer\"><a class=\"btn btn-default\" data-dismiss=\"modal\">Schließen</a></div></div></div></div>";
           }
  
//wenn es ein Link ist...
           
else {
           
$link $zeile['beschreibung'];
           echo 
"<td><a href=\"" $link "Beschreibung\">" $zeile['nachname'] . "</a></td>";
//           echo "<td><a href=\\" . $zeile['beschreibung'] "\"" . $zeile['id'] . "Beschreibung>" . $zeile['nachname'] . "</a></td>";

//       echo "<td><a href=\"#". $beschreibung . $zeile['id'] . "Beschreibung\" >". $zeile['nachname'] . "</a></td>";    
           
}
       


    else {
          echo 
"<td>"$zeile['nachname'] . "</td>";}

 
  echo 
"<td>"$zeile['vorname'] . "</td>";
//  echo "<td style=\"text-align: right;\">". $zeile['geboren_am'] . "</td>";
  
echo "<td>"$zeile['geboren_am'] . "</td>";
  echo 
"<td>"$zeile['geboren_wo'] . "</td>";
  echo 
"<td>"$zeile['gestorben_am'] . "</td>";
  echo 
"<td>"$zeile['gestorben_wo'] . "</td>";
  echo 
"<td>"$zeile['staatsangehoerigkeit'] . "</td>";


  echo 
"</tr>";
}
echo 
"</tbody></table><hr /></div></div>";

echo 
$biografie;





mysql_free_result$ergebnis );

?>

Danke für Eure Hilfe
Mit Zitat antworten
  #2 (permalink)  
Alt 07-08-2015, 15:05
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von WIle-E-Coyote Beitrag anzeigen
Es wird wieder nur ein kleines Semikolon oder eine Klammer sein aber wo?
Bei eingschaltetem Error-Reporting werden Dir diese Fehler angzeigt

Gruss WW
Mit Zitat antworten
  #3 (permalink)  
Alt 09-08-2015, 18:36
WIle-E-Coyote
 Registrierter Benutzer
Links : Onlinestatus : WIle-E-Coyote ist offline
Registriert seit: Aug 2015
Beiträge: 3
WIle-E-Coyote befindet sich auf einem aufstrebenden Ast
Standard

Hallo Wasser_Wanderer,

und ich hatte mich schon gewundert, das der errorlog nichts ausspuckt. Ich hatte wohl mal die PHP Fehler rausgenommen und ("E_ALL ^ E_STRIC") gesetzt.

Jetzt schlägt er wieder an und zeigt mir ein unexpected else in Zeile 48. Dann muß ich die if-schleife noch einmal durchgehen und schauen wos da hängt.


Gruß
WE Coyote
Mit Zitat antworten
  #4 (permalink)  
Alt 10-08-2015, 16:57
Benutzerbild von mermshaus mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 451
mermshaus wird schon bald berühmt werden
Standard

Tipps/Anmerkungen:

Arbeite mit $db aus $db = JFactory::getDBO() und starte nicht daran vorbei Abfragen über die (veraltete) mysql-Erweiterung. (Die mysql-Funktionen sind veraltet, nutze mysqli oder PDO. PHP: Choosing an API - Manual) Aber wie gesagt: $db ist bereits ein Objekt mit dem du DB-Queries ausführen kannst. Das ist auch genau dazu gedacht. Da musst du dir nicht selbst am Framework vorbei was zusammenstricken.

Zitat:
PHP-Code:
die('Ungültige Abfrage: ' mysql_error()); 
Stell sicher, dass alle Dateien deines Projekts im passenden Zeichensatz (das ist nahezu immer UTF-8) kodiert sind. Dann treten derlei Probleme mit kaputten Umlauten und dergleichen nicht auf. Weiterführend: UTF-8 - PHP Forum: phpforum.de

Hier…

PHP-Code:
echo "<div class=\"row\"><div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">";
echo 
"<table class=\"kriegsopfer\">";
echo 
"<thead><tr>";
echo 
"<th>Nachname</th><th>Vorname</th><th>geboren am</th><th>geboren wo</th><th>gestorben am</th><th>gestorben wo</th><th>Angehörigkeit</th><th>Grab</th>";
echo 
"</tr></thead><tbody>"
…könntest du geschickter mit Strings in einfachen Anführungszeichen arbeiten (das spart das Escaping von Anführungszeichen im String) oder auch einfach den PHP-Bereich verlassen und den HTML-Code als HTML schreiben. Dabei hilft das EVA-Prinzip EVA Prinzip - PHP Forum: phpforum.de.

Dir fehlt durchgängig das Escaping beim Eintragen von PHP-Variablen in den HTML-Code (→ htmlspecialchars). Siehe dazu auch: PHP/Anwendung und Praxis/Kontextwechsel ? SELFHTML-Wiki, PHP/Anwendung und Praxis/Kontextwechsel/erkennen und behandeln ? SELFHTML-Wiki und für die sinnvollste Anwendung von htmlspecialchars https://nikic.github.io/2012/01/28/h...n-PHP-5-4.html.
Mit Zitat antworten
  #5 (permalink)  
Alt 11-08-2015, 11:59
WIle-E-Coyote
 Registrierter Benutzer
Links : Onlinestatus : WIle-E-Coyote ist offline
Registriert seit: Aug 2015
Beiträge: 3
WIle-E-Coyote befindet sich auf einem aufstrebenden Ast
Standard

Hallo mermhaus,

danke für Deine Hinweise. Ich hatte in der Zwischenzeit die IF-Schleifen komplett neu geschrieben und jetzt läuft es. Ich werde Deine Hinweise durcharbeiten und mein PHP-Srikt dahingehend noch einmal ändern.

Danke noch mal für die Hinweie und die Links dazu.

Gruß
WE Coyote
Mit Zitat antworten
  #6 (permalink)  
Alt 11-08-2015, 21:56
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.604
h3ll befindet sich auf einem aufstrebenden Ast
Standard

if-schleife.de

Sorry
Mit Zitat antworten
  #7 (permalink)  
Alt 12-08-2015, 23:45
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Ach komm jetzt! Wir haben Hochsommer. Bei der derzeitigen Hitze muss man die Ifs doch auch mal schleifen lassen können!
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
Link aus Datenbank generieren Darson PHP Developer Forum 22 30-10-2007 23:35
[Funktion] Bestimmte Zeile per Link aus Datei löschen !!! firstlord18 PHP Developer Forum 17 27-11-2004 15:49
Link aus datenbank lesen basti87 PHP Developer Forum 4 20-08-2004 09:28
Link per Zufall aus Datenbank auslesen!!!! BenBay PHP Developer Forum 5 03-03-2003 22:30
Per Link die Datenbank aktualisieren ! Darius SQL / Datenbanken 13 14-11-2001 10:22

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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:13 Uhr.