php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.02.2008, 11:12  
7Style
Gast
 
Beiträge: n/a
Standard OOP - Datenbank Abfrage ...

Hallo,

ich versuche OOP zu lernen.
Ich habe eine Klasse geschrieben womit ich eine abrafe machen will.
aber es werden nicht alle datensätze aus datenbank angezeigt. Ich würde gern wissen wo ich fehler mache, es kann sein das mein Code ganz blöd ausschaut.

#Hier Meine Klasse :

PHP-Code:
  class SqlQuery {
    
# Abfrage
    
public $query;
    private 
$num;
    private 
$q;
    
# Fehler
    
private $error;
    
# Anzahl der Datensätze
    
public function sqlNum () {
      
$this->= @mysql_query($this->query);
      
$this->num = @mysql_num_rows($this->q);
      return 
$this->num;
    } 
    
# Query 
    
public function querySql () {
      
$r = @mysql_query($this->query);
        
$daten mysql_fetch_assoc($r);
        return 
$daten;
    } 
# Und so wird es aufgerufen :
PHP-Code:
$seSql = new SqlQuery();
  
$seSql->query 'SELECT * FROM selma';
  
$num =  $seSql->sqlNum();
  
$r      =  $seSql->querySql();
  echo 
'<h4> Selma News Einträge </h4>';
   
$daten $seSql->querySql();
   
$i 0;
  while (
$i $num) {
      echo 
$daten['Titel'] . '<br>';
      
$i++;  
  } 
So wird es nur der letzte Datensatz angezeigt.

Geändert von 7Style (11.02.2008 um 11:14 Uhr).
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.02.2008, 09:45  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Hi,

dein Problem liegt nicht bei OOP sondern daran das du mysql_fetch_assoc nur einmal ausführst und damit auch nur einen Datensatz bekommst. Du solltest die vielleicht mal anschauen wie man mysql_fetch_assoc benutzt.

Gruß
CyCap
cycap ist offline  
Alt 13.02.2008, 12:30  
7Style
Gast
 
Beiträge: n/a
Standard

Danke für deine Antwort,

ich weiss wie man mysql_fetch_assoc benutz,

Wenn ich sie ganz normal in einem Schleife ausführen lasse funtioniert wunderbar :

Beispiel :
PHP-Code:
    for($i$i $row $i++) {
    
$daten mysql_fetch_assoc($r)
    echo 
$daten['name'];
    } 
so sehe ich alle namen ...

aber wenn ich im klasse eine schleife laufen lasse, dann sehe ich 'NUR' die letzt datensatz.
 
Alt 13.02.2008, 12:58  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Genau das hab ich ja gesagt, wo ist deine Schleife im Beispiel?
cycap ist offline  
Alt 13.02.2008, 13:16  
7Style
Gast
 
Beiträge: n/a
Standard

in meiner Klasse habe ich schleife wieder rausgenommen weil es nicht funktioniert hat, Ich sehe zwar wieviel datensätze im Array sind,
aber ich kann nur den ersten (ohne schleife) oder den letzten Datensatz (mit schleife) ausgeben.

Im klasse habe ich mit While-schleife die mysql_fetch_assoc ausführen lassen, somit hatte ich alle datensätze im array,
aber im eigentlichen Code ... Egal was ich mache bekomme ich nur einen einzigen datensatz zu sehen !
 
Alt 13.02.2008, 13:28  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Irrtum, du siehst nicht wieviele Datensätze im Array sind, sondern wieviel Datensätze deine Abfrage ausspuckt. Du hast 2 Möglichkeiten:

Entweder du machst für das mysql_fetch_assoc eine eigene Methode und rufst diese Methode in deinem Code in einer schleife aus oder du machst die Schleife an der Stelle wo jetzt dein mysql_fetch_assoc ist. Bei der zweiten Möglichkeit musst du aber für jeden Datensatz einen Speicherplatz schaffen. Würdest du eine schleife um deine jetziges $daten = mysql_fetch_assoc(..); machen würdest du $daten ja jedes mal überschreiben und hast dadurch nur den letzten Datensatz. Schreibst du allerdings in die Schleife $daten[] = mysql_fetch_assoc(...); so wird bei jedem Schleifendurchgang ein neuer Speicherplatz angelegt. Dein Ergebnis würde dann so aussehen:

$daten = array mit allen Datensätzen
$daten[0] = array mit erstem datensatz
$daten[1] = array mit zweiten datensatz
cycap 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
if abfrage aus datenbank Dragan PHP Tipps 2008 12 17.06.2008 07:19
[Erledigt] Datenbank abfrage Potterfans PHP Tipps 2008 4 12.06.2008 22:37
Abfrage aus Datenbank mit Tabellen und Ausgabe in index.php PHP Tipps 2005-2 4 23.10.2005 11:04
Datenbank abfrage mal gehts mal nicht themonk PHP Tipps 2005-2 8 04.10.2005 15:34
Abfrage ob Eingabe mit Datenbank übereinstimmt!! PHP Tipps 2005-2 1 03.10.2005 15:37
datenbank abfrage PHP Tipps 2005-2 1 21.08.2005 17:33
datenbank abfrage findet eintrag nicht PHP Tipps 2005-2 3 11.08.2005 19:52
datenbank Abfrage in Var schreiben web2 PHP Tipps 2005-2 3 22.07.2005 12:59
Abfrage einer Datenbank PHP Tipps 2005 18 15.05.2005 13:15
[Erledigt] MYSQL Abfrage (mit Optimierter Datenbank) -&gt; PhP Datenbanken 2 02.03.2005 18:50
Abfrage von SQL Datenbank geht nicht PHP Tipps 2004-2 3 15.11.2004 21:29
Datenbank Abfrage mit Unterseiten pro Eintrag PHP Tipps 2004 6 14.10.2004 16:05
[Erledigt] Login - User datenbank abfrage Datenbanken 7 18.09.2004 20:17
Datenbank abfrage als Link ausgeben! stefan-miti PHP Tipps 2004 2 06.09.2004 23:12
Hilfe bzgl. Datenbank abfrage PHP Tipps 2004 5 24.06.2004 18:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php oop datenbank, oop datenbank, php oop datenbankabfrage, php datenbank oop, php oop datenbankverbindung, oop php datenbank, datenbank oop, php datenbankverbindung oop, oop datenbankverbindung, objektorientierte programmierung datenbanken, oop php datenbankabfrage, oop datenbank php, php oop datenbank abfrage, php oop datenbank ausgabe, objektorientierte programmierung datenbank, oop-datenbank, php oop datenbankabfragen, oop php datenbankverbindung, oop datenbank verbindung, datenbank php oop

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