• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Schleife mit Datenbank zugriff?

Fr3ddy

Mitglied
Hi,
ich bin gerade bei meinem ersten PHP Projekt.
In meine DB habe ich eine Tabelle namens "projekte", in dieser Tabelle gibt es dann verschiedene Spalten: Name, Logo und Name des Kunden.
Jetzt möchte ich auf der Kundenseite bei jedem einzelnen Kunden auflisten, was er für Projekte gemacht hat.

Wie schreibe ich jetzt die "for schleife", dass sie in der Tabelle "projekte" in der Spalte "Name des Kunden", alle Projekte ausgibt zu einem Speziellen Kunden?

LG & Danke
 
Werbung:
Du baust eine Verbindung zur Datenbank auf. Holst dir aus der Tabelle die entsprechenden Informationen und gibst Sie in der for-Schleife aus. Diese iteriert solange bis der Zähler gleich der Anzahl der Kunden ist.
 
Die habe ich:
$result= $this->Database->prepare("SELECT * FROM projekte WHERE kunde=?")->execute($pName);
echo $result->name;

Nehme ich da eine for oder while schleife und woher erfahre ich, wieviel mal der Kunde in der Spalte vorkommt?
 
Werbung:
Optional ist dein Datenbankschema so aufgebaut, das ein Kunde eindeutig identifizierbar ist bspw. durch eine eindeutige Identifikationsnummer (PRIMARY KEY). Dadurch kannst du auch in Erfahrung bringen wie oft ein Kunde irgendeine Beziehung zu etwas hat.

Btw. "SELECT *" ist ganz böse. ;)
 
Ich habe diese Spalten in meiner Projekte Tabelle zur verfügen von meinem CMS:
id, pid, tstamp, sorting, name, logo, kunde

Wieso ist "Select *" böse, habe ich so aus dem Contao wiki.
 
Du hast keine Übersicht welche Daten wirklich benötigt werden. Unteranderem werden evtl. unnötige Daten mit geladen. Außerdem können Änderungen am Schema unverhersehbare Fehler auslösen.

Von deinem CMS oder benutzt du Contao?
 
Werbung:
Selektiere wirklich nur die Spalten, die du wirklich benöigst und ausgeben / verarbeiten möchtest.
 
Ah ok, so meinst du das, gut Danke.

Wie fange ich nun mit der Schleife bin da gerade total überfragt?
 
Werbung:
Werbung:
Ich weis gerade nicht, mit was ich anfange, wie eine norlame for Schleife funktioniert weis ich ja aber wie ich die Datenbank da mit einbeziehe, wie ich errechne wieviel mal in der Salte es den Kunden gibt und den dazu gehörigen Projektnamen ausgebe.
 
Nur mal so als Tipp: wenn man mit PHP anfängt, sollte man nicht gleich an einem CMS rumschrauben wollen, sondern erst mal die Grundlagen lernen.

Wie man Daten aus einer DB in einer Schleife ausgibt, findest du mehrfach in der Doku, siehe auch Link von threadi
 
Werbung:
Ist ja nicht verkehrt, aber nicht gleich mit einem CMS anfangen. Das ist ungefähr so, als wenn ein Medizin-Student im ersten Semester eine OP am offenen Herzen ausführen will. :D
 
Verdammt, ich brauche das bis Morgen, wo kann man sich denn für sowas einen PHP Programierer mal Mieten?
 
Werbung:
Die habe ich:
$result= $this->Database->prepare("SELECT * FROM projekte WHERE kunde=?")->execute($pName);
echo $result->name;

Nehme ich da eine for oder while schleife und woher erfahre ich, wieviel mal der Kunde in der Spalte vorkommt?

Also schwer ist es nun nicht die Schleife zu bauen. Hast du denn schon mal geschaut ob dein SQL überhaupt Ergebnisse liefert? Um dir alle Ergebnisse einmal anzeigen zu lassen, kannst du folgendes verwenden

PHP:
// Ausgabe der Ergebnisse
echo "<pre>";
print_r($result->fetchAllAssoc());
echo "</pre>";

// DIe Anzahl der Ergebnisse
echo "<pre>";
print_r($result->numRows);
echo "</pre>";

// und die Schleife
while($result->next())
{
    echo $result->name; // Oder irgendein anderer Spaltenname
}

Und Contao hat zwar auch überall das Sternchen drin, obwohl jetzt in der 4er Version wo Contao ja etwas auf Symfony 2 aufbaut, weiß ich das gar net, aber am besten nicht nachmachen sondern so wie die anderen schon geschrieben haben, die Felder benennen als ein Sternchen zu benutzen.
 
Zurück
Oben