php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.01.2012, 21:01  
Neuer Benutzer
 
Registriert seit: 14.01.2012
Beiträge: 2
PHP-Kenntnisse:
Anfänger
testphp befindet sich auf einem aufstrebenden Ast
Standard Functionsaufruf aus einem anderen PHP Script

Hallo,

ich versuche folgenden Quellcode, der ursprünglich in einem php Script stand aus redundanzgründen aufzuteilen.

Aufrufendes Skript:

PHP-Code:
<?php
require 'dbConnection.inc';
require 
"returnResultOfSqlQuery.inc";

$id $_POST['bId'];

$sql_query "SELECT c.ID, c.Blog, u.Username, c.Date, c.Comment FROM Comments c, User u WHERE c.Blog =  $id and u.ID = c.User;";

// Executes the sql Query and returns the result in Json format
getResult($sql_query);

?>
Eingebundenes Skript
PHP-Code:
<?php

function getResult($sql_query){
    
//Gets the result from a sql Query, that is devinde in a different file
$sql_res mysql_query($sql_query$db_link) or die ("MySQL-Error: " mysql_error());
 
while(
$zeile[] = mysql_fetch_row($sql_res))
{
    
    
}
mysql_close($db_link);

echo 
json_encode($zeile);
}
?>
Das Ergebnis ist keine Fehlermeldung, aber auch keine Ausgabe der Daten auf dem Bildschirm.

Es wird der Ursprüngliche Blog (hat nichts mit dem Aufruf zu tun) angezeigt und die Kommentare dazu erscheinen nicht.

In der Datenbank sind Kommentare zu diesem Blog vorhanden.

Wo liegt der Fehler bei der Einbindung der Funktion?

Viele Grüße
testphp ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.01.2012, 21:12  
jnv
Benutzer
 
Registriert seit: 21.07.2010
Beiträge: 37
PHP-Kenntnisse:
Anfänger
jnv befindet sich auf einem aufstrebenden Ast
Standard

Bin kein mySQL-Spezi, aber kann das an dem Semikolon im Query liegen?
__________________
#m { f : g }
jnv ist offline   Mit Zitat antworten
Alt 25.01.2012, 22:16  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
kann das an dem Semikolon im Query liegen?
Ist auch meine Ansicht. Lass es uns wissen, wenn es denoch nicht funktioniert.

Hinweis:
Code:
...WHERE c.Blog =  $id and u.ID = c.User;...
Solu ist offline   Mit Zitat antworten
Alt 26.01.2012, 04:12  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von testphp Beitrag anzeigen
Eingebundenes Skript
PHP-Code:
<?php
function getResult($sql_query){
    
//Gets the result from a sql Query, that is devinde in a different file
$sql_res mysql_query($sql_query$db_link) or die ("MySQL-Error: " mysql_error());
...
Das Ergebnis ist keine Fehlermeldung, aber auch keine Ausgabe der Daten auf dem Bildschirm.
Na mindestens eine Warnung wegen der in der Funktion nichtexistierenden Variablen $db_link müßte es schon geben. Da ich diese steinalte Art der Programmierung nicht mehr benutze, kann ich nicht genau sagen, ob PHP bei fehlender Ressource den Query überhaupt abschickt. Vielleicht stirbt das Script an dieser Stelle, weil nix = false = null ist. Und warum PHP nicht meckert, liegt mit Sicherheit an der Config, die hier auch keiner kennt.

Zitat:
Es wird der Ursprüngliche Blog (hat nichts mit dem Aufruf zu tun) angezeigt und die Kommentare dazu erscheinen nicht.

In der Datenbank sind Kommentare zu diesem Blog vorhanden.
1. Die Datenbank kennt hier keiner.
2. demzufolge ist die Einschätzung, ob Deine SQL Abfrage überhaupt ein Ergebnis haben kann, unmöglich

Zitat:
Zitat von jnv Beitrag anzeigen
Bin kein mySQL-Spezi, aber kann das an dem Semikolon im Query liegen?
Die MySQL Clients, die sowas angemeckert haben, kriegt man heute nur noch im Museum.

Geändert von meikel (26.01.2012 um 04:14 Uhr). Grund: 2. Antwort
  Mit Zitat antworten
Alt 26.01.2012, 06:37  
Benutzer
 
Registriert seit: 06.08.2008
Beiträge: 43
kratzbaum ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Folgende Anmerkungen:
  1. Ich weise mal auf den Unterschied zwischen require und include hin. Wird die Datei nicht gefunden, schmiert das Script bei "require" ab, bei include gibt es nur eine Warnung mit einer entsprechenden Meldung. Während der Entwicklung solltest "include" benutzen.
  2. Es ist besser, die eingebundene Datei auf ".php" enden zu lassen - sonst kann jeder User sie sich anzeigen lassen. Fatal, wenn z.B. Passwörter (z.B. für die DB) drin stehen.
  3. Wenn eine Datei aus demselben Verzeichnis wie das Script includiert werden soll, ist es sicherer, den Dateinamen mit "./" beginnen zu lassen. Also z.B require './dbConnection.inc.php';
  4. Du sollstest die Variable $db_link mit an die Funktion übergeben. Also function getResult($sql_query, $db_link). Das ist meiner Meinung nach die Ursache für Dein Problem.
kratzbaum ist offline   Mit Zitat antworten
Alt 26.01.2012, 07:43  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Zusätzlich zu dem, was kratzbaum angemerkt hat:
Zitat:
PHP-Code:
while($zeile[] = mysql_fetch_row($sql_res)) 
Das hier ist auch nicht das, was du willst. Die letzte Zeile deines Ergebnisses wär immer false, da du im while-loop falsch zuweist.

PHP-Code:
$result = array();
while (
$row mysql_fetch_object($sql_res)) {
    
$result[] = $row;
}
return 
$result
Eine Funktion sollte genau nur eine Aufgabe haben. Deine kümmert sich aktuell um den mysql-fetch, encoded als json und gibt auch noch aus.
Deine Funktion sollte nur das Ergebnis-Array zurückgeben.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 26.01.2012, 08:42  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Das Ergebnis ist keine Fehlermeldung, aber auch keine Ausgabe der Daten auf dem Bildschirm.
Um die Hinweise der Kollegen nachvollziehen zu können schalte zuerst mal das Error-Reporting ein:
PHP-Code:
error_reporting( -);
ini_set'display_errors'true ); 
...an den Anfang Deines Scriptes
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 26.01.2012, 10:19  
meikel
Gast
 
Beiträge: n/a
Standard

Code:
error_display = On ; PHP führt sonst je nach log_errors und error_log heimlich Tagebuch
log_errors = Off ; sonst steht der Mecker im Logfile
error_log = ; muß leer sein
error_reporting = 15 ; mindestens
  Mit Zitat antworten
Alt 26.01.2012, 12:01  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Manual
PHP-Code:
// Report all PHP errors
error_reporting(-1); 
Hat bei mir bisher auch immer gereicht...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 26.01.2012, 19:41  
Neuer Benutzer
 
Registriert seit: 14.01.2012
Beiträge: 2
PHP-Kenntnisse:
Anfänger
testphp befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

danke für eure Hilfe. Es lag daran, dass ich $db_link nicht übergeben hab.

Viele Grüße

Geändert von testphp (26.01.2012 um 21:51 Uhr).
testphp ist offline   Mit Zitat antworten
Antwort


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
Datei von einem Script im anderen einlesen robin1503 PHP Einsteiger 7 28.09.2011 06:21
Premature end of script headers: index.php im Zusammenhang mit Performanceverlust Asipak Server, Hosting und Workstations 10 29.10.2010 14:13
Scriptsuche Kommentar Script HipHopFreak Scriptbörse 3 26.08.2010 12:55
Firefox startet Script bei Timeout wieder neu Wolla PHP Tipps 2009 2 18.05.2009 18:07
php script mit html script verbinden Bimbo-01 PHP Tipps 2009 2 21.02.2009 14:11
gleiches script triggern mit und ohne Variablenübergabe steve_2000 PHP Tipps 2008 2 04.12.2008 17:34
Upload Script bleibt einfach stehen SniperWolf PHP Tipps 2008 4 19.09.2008 19:39
Diverses aus meinem Apache Logs robo47 Server, Hosting und Workstations 5 25.05.2007 22:45
Script beendet sich ohne Fehlermeldung Zahl PHP Tipps 2006 6 04.06.2006 20:41
passwort script problem PHP Tipps 2006 8 15.02.2006 10:30
Suche Script zum Abfragen von Inhalten einer anderen Seite Beitragsarchiv 7 26.09.2005 19:21
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
PHP Script -> ? refresh anderen Frame PHP Tipps 2004 1 26.09.2004 17:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php ausgabe aus anderem php, php code in einem anderen php script aufrufen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:38 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