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 04-10-2007, 11:10
Postaria
 Registrierter Benutzer
Links : Onlinestatus : Postaria ist offline
Registriert seit: Mar 2004
Beiträge: 100
Postaria ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem mit SQL auslesen

Hallo Gemeinde ,
irgendwie kriege ich nicht das hin was ich will,
zumindest will ich eventuell auch zu viel ??

ich möchte gerne in einer php datei eine sql abfrage machen und die
ausgelesenen Ergebnisse anzeigen lassen.
Nun das kriege ich gebacken jedoch möchte ich dann wenn eine bestimmte Aktion passiert,
das er dann auf eine funktion in einer anderen datei zugreift die ebenfalls aus der Datenbank eine Abfrage startet und ausgibt.
Das Problem vor welchem ich stehe ist irgend wie das er die Abfrage in der Funktion zwar startet,
jedoch ständig nur das erste Resultat ausgibbt...

meine Scripts sehen im Folgenden so aus :

anzeige.php

PHP-Code:
if (!$_GET['o']) $o="filename";
else 
$o=$_GET['o'];
$sql="SELECT * FROM files WHERE active='1' ORDER BY ".$o;
$res=send_sql($db,$sql);
//......
// Jetzt kommt die ausgabe der Daten mittels while schleife
// 
//......
// Das ist nun der zugriff auf die Classe mit
// ebenfalls einer SQL Abfrage
require_once("class_filelist.php");
$filess = new files();

echo 
$filess->filepreview($file,$zelle); 
class_filelist.php

PHP-Code:

class files{

 function 
filepreview($id,$zeile){

  
  
$sql="SELECT * FROM files WHERE ID=$id";
  
$res=send_sql($db,$sql);
  
$result=mysql_fetch_array($res,MYSQL_ASSOC);

// jetzt wird das result array an eine variable übergeben und 
// die einzelnen punkte ausgelesen

$tabellekopf="$result[Filename]";

echo  
$tabellekopf;
}

Die Ausgabe funktioniert zwar jedoch wird aus mir unwissenden Gründen immer nur das erste Resultat der funktions abfrage ausgegeben.

Hoffe es ist verständlich was ich vorhabe und ihr könnt mir ne hilfestellung geben wo ich anfangen sollte zu suchen

Ach ja : beide sql abfragen greifen auf die selbe tabelle zu (???)
Mit Zitat antworten
  #2 (permalink)  
Alt 04-10-2007, 11:54
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aus deinem Code geht nicht hervor, woher die Parameter für die Funktion ($file, $zelle) kommen. Ausserdem wird fetch_assoc() in der Funktion nur einmal aufgerufen, ergo erhälst du das erste Resultat. Wenn du nicht SELECT * FROM schreiben würdest, sähe man vielleicht etwas von der Tabellenstruktur.

Und
PHP-Code:
$tabellekopf="$result[Filename]"
muss
PHP-Code:
$tabellekopf $result["Filename"]; 
heissen
__________________
Gruss
H2O
Mit Zitat antworten
  #3 (permalink)  
Alt 04-10-2007, 12:03
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Ausserdem wird fetch_assoc() in der Funktion nur einmal aufgerufen, ergo erhälst du das erste Resultat.
Wieviele Resultate sollte denn die Abfrage bringen wenn als Bedingung explizit die ID angegeben wird? . Ausser natürlich ID ist nicht das wofür ich es halte also nicht UNIQUE...
Zitat:
muss
PHP:--------------------------------------------------------------------------------
$tabellekopf = $result["Filename"];

--------------------------------------------------------------------------------
heissen
Würde sagen 'sollte' weil PHP Vars in Strings mit " sehr wohl findet und ersetzt. Die erste Möglichkeit müsste auch funzen.
Und wenn schon dann würde ich dann
PHP-Code:
$tabellekopf $result['Filename']; 
Gruss

tobi
empfehlen
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #4 (permalink)  
Alt 04-10-2007, 12:17
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von jahlives

Würde sagen 'sollte' weil PHP Vars in Strings mit " sehr wohl findet und ersetzt. Die erste Möglichkeit müsste auch funzen.
Und wenn schon dann würde ich dann
PHP-Code:
$tabellekopf $result['Filename']; 
empfehlen
Ich auch, es ging mir aber auch nur darum, auf die fehlenden Anführungszeichen beim Index hinzuweisen
__________________
Gruss
H2O
Mit Zitat antworten
  #5 (permalink)  
Alt 04-10-2007, 13:03
Postaria
 Registrierter Benutzer
Links : Onlinestatus : Postaria ist offline
Registriert seit: Mar 2004
Beiträge: 100
Postaria ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmm ... ich habe in meinen Scriptbeispielen natürlich sehr viel abgespeckt

Kompletter Code von class_filelist.php ist
PHP-Code:
<?php
// Klasse Filelist
//  $rechtwert=4;
// require_once("login.inc.php");


class files{

 function 
filepreview($id,$zeile){

  
  
$sql="SELECT * FROM files WHERE ID=$id";
  
$res=send_sql($db,$sql);
  
$result=mysql_fetch_array($res,MYSQL_ASSOC);
  
$zeile $_GET[zeile];
  
  
  
$tabellekopf="
  
  <table bgcolor='dddddd' width='300' class='filetabelle'>
    <tr class='filetabellehead'>
      <td colspan='2' align='center'>$text[details]</td>
    </tr>
    <tr>
      <td colspan='2' align='center'><img src='.."
.$result[PathToThumbnail]."'></td>
    </tr>
    <tr>
      <td>$text[dateiname]</td>
      <td>$result[Filename]</td>
    </tr>
    <tr>
      <td>$text[dateigroesse] KB</td>
      <td>$result[FileSize]</td>
    </tr>
    <tr>
      <td>$text[mimetyp]</td>
      <td>$result[Mime]</td>
    </tr>
    <tr>
      <td>$text[dauer] Sek</td>
      <td>$result[Duration]</td>
    </tr>
    <tr>
      <td>$text[aufloesung] Pixel</td>
      <td>$result[Resolution]</td>
    </tr>
    <tr>
      <td>$text[datum]</td>
      <td>$result[UploadDate]</td>
    </tr>
  </table>"
;
  echo  
$tabellekopf;
  
print_r($res);
  }
}
?>
wenn ich die '' setze kommt folgende Fehlermeldung



Zitat:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in
C:\xampp\htdocs\CDS\bin\class_filelist.php on line 22
Mit Zitat antworten
  #6 (permalink)  
Alt 04-10-2007, 17:40
Postaria
 Registrierter Benutzer
Links : Onlinestatus : Postaria ist offline
Registriert seit: Mar 2004
Beiträge: 100
Postaria ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hat denn keiner einen Lösungsansatz ?
Mit Zitat antworten
  #7 (permalink)  
Alt 04-10-2007, 17:44
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.833
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Wurde doch schon genannt.

Du rufst doch auch nur einen Datensatz auf...

WHILE
__________________
gruss Chris

Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Mit Zitat antworten
  #8 (permalink)  
Alt 04-10-2007, 17:47
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$result[PathToThumbnail
schau dir das mal genau an und informier dich bitte über zeichenketten

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 04-10-2007, 17:51
Postaria
 Registrierter Benutzer
Links : Onlinestatus : Postaria ist offline
Registriert seit: Mar 2004
Beiträge: 100
Postaria ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmm ja eben nicht
die ausgabe soll mir ja in der anzeige.php einmal alle datensätze anzeigen und dann soll er auf eine Klasse zugreifen.
in der Klasse wird die ID abgefangen ein Datensatz "Sollte generiert werden" in eine Variable geschrieben und dann zurückgegeben werden an anzeige.php
diese Variable "sollte" dann gleich rechts neben den Datensätzen ausgegeben werden.

die Ausgabe funktioniert ja einwandfrei jedoch wird mir nicht die gewünschte ID angezeigt sondern nur die erste ID.
PHP-Code:
$result['PathToThumbnail']
//oder
$result[PathToThumbnail
wird dennoch angezeigt.

Geändert von Postaria (04-10-2007 um 18:04 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 04-10-2007, 18:10
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Kropff
informier dich bitte über zeichenketten
und über PHP-Variablen in HTML-Code. Wenn dein error_reporting() höher eingestellt wäre, müsstest du eigentlich jede Menge Fehlermeldungen erhalten.

Weiter Fragen:
- Warum machst du eine Klasse, die als einziges Member eine Funktion und sonst gar nichts enthält? Da würde die Funktion allein ja völlig genügen und von der brauchst du dann auch keine Instanz zu erstellen
- Was ist send_sql()für eine Funktion
- SELECT * FROM für ein einziges Attribut??

[edit]
Soeben habe ich gesehen, dass du ja zweimal die gleiche Abfrage abschickst. Wozu denn?, du hast die Id ja schon bei der ersten erhalten
__________________
Gruss
H2O

Geändert von H2O (04-10-2007 um 18:15 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 04-10-2007, 18:10
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.833
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Zitat:
hmm ja eben nicht
Ja eben doch.

Zitat:
$result=mysql_fetch_array($res,MYSQL_ASSOC);
= 1 Datensatz
__________________
gruss Chris

Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Mit Zitat antworten
  #12 (permalink)  
Alt 04-10-2007, 18:36
Postaria
 Registrierter Benutzer
Links : Onlinestatus : Postaria ist offline
Registriert seit: Mar 2004
Beiträge: 100
Postaria ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@hhcm ->
in der funktion soll ja auch nur ein Datensatz ausgelsesen werden

da kommen bald wenn ich das hier geschafft habe noch andere funktionen in die Klasse deswegen habe ich gleich die Klasse benutzt.
PHP-Code:
class files{

 function 
filepreview($id,$zeile){

  
  
$sql="SELECT * FROM files WHERE ID=$id";
  
$res=send_sql($db,$sql);
  
$result=mysql_fetch_array($res,MYSQL_ASSOC);

// jetzt wird das result array an eine variable übergeben und 
// die einzelnen punkte ausgelesen

$tabellekopf="$result[Filename]";

echo  
$tabellekopf;
}

Ich hatte in meinem ersten Beitrag gekürzt weil ich dachte wäre eventuell nicht so ganz interresant ich poste das hier nochmal

das ist die anzeige.php
hier liest er alle Daten aus der Tabelle und zeigt diese an
PHP-Code:

$sql
="SELECT * FROM files WHERE active='1' ";
$res=send_sql($db,$sql);

while (
$result=mysql_fetch_array($res,MYSQL_ASSOC)) {

echo 
"<a href='$PHP_SELF?id=$result[ID]&zeile=$i'>$i</a>

$i= $i+1;
}
$file=$_GET['id'];
$zelle=$_GET['zeile'];

for ($j=1;$j<=$i;$j++){

if ($zelle == $j){

include("
class_filelist.php");
$filess = new files();

echo $filess->filepreview($file,$zelle); 
//echo filepreview($file,$zelle);
}else{
echo "
&nbsp;";
}
echo "
</td></tr>"; 


Mit Zitat antworten
  #13 (permalink)  
Alt 04-10-2007, 19:17
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.833
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Und dieses Forum hier zeigt dir nicht schon anhand des Syntaxhighlightnings wo dein Problem liegt? Oder ist

PHP-Code:
// DAS
echo "<a href='$PHP_SELF?id=$result[ID]&zeile=$i'>$i</a> 
auch gekürzt? Da fehlt nämlich was..

error_reporting steht auf E_ALL ?

display_errors in der php.ini auf 1?
__________________
gruss Chris

Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Mit Zitat antworten
  #14 (permalink)  
Alt 04-10-2007, 21:36
Postaria
 Registrierter Benutzer
Links : Onlinestatus : Postaria ist offline
Registriert seit: Mar 2004
Beiträge: 100
Postaria ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nein weder Fehlermeldung noch fehlerhafte übergabe !
die übergabe funktioniert jedoch ist das problem irgendwie das er die abfrage in der Klasse/funktion nicht richtig handelt...

Denn wenn ich echo $id in der classe benutze gibt er mir die richtige id raus aber irgendwie macht er die Abfrage nicht in der Klasse bzw. kann mit
PHP-Code:

 $sql
="SELECT * FROM files WHERE ID=$id";
  
$res=send_sql($db,$sql);
  
$result=mysql_fetch_array($res,MYSQL_ASSOC); 
nicht anfangen
bzw. kann er innerhalb der klasse mit $db nichts anfangen anscheinend
(laut E_ALL)
nichts destotrotz ist aber $db auf global gesetzt.
in anzeige.php kann er ja auch mit $db nichts anfangen macht jedoch die ausgabe.
Mit Zitat antworten
  #15 (permalink)  
Alt 05-10-2007, 09:46
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe den Eindruck, dass du erstens die Antworten gar nicht liest und zweitens uns nicht den Code zeigst, den du wirklich verwendest. Von nicht gezeigten Fehlermeldungen ganz zu schweigen.

- Wie hhcm schon gesagt hat, kann der letzte von dir gezeigte Code gar nicht funktionieren, weil der von Anfang an mit Syntaxfehlern abbricht.
- Die Indizes der assoziativen Arrays sind immer noch keine Strings
- Woher die Funktion send_sql() kommt, und was sie macht wissen wir immer noch nicht
- Warum frägst du in der Klasse nochmals Daten ab, die du vorher schon hast
- Die Struktur der Tabelle ist ebenso unbekannt
- usw.

Und bitte rücke deinen Code ein
Du willst ja Hilfe haben, aber wenn du uns die nötigen Informationen vorenthälst wird daraus wohl nichts. Und vielleicht sagst du uns auch mal verständlich, was überhaupt beim Ganzen rauskommen soll.
__________________
Gruss
H2O
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:50 Uhr.