 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
11.09.2007, 17:00
|
#1
|
|
TP-Junior
Registriert seit: Sep 2007
|
Wie kommen die Daten in die Boxen?
Hallo Leute,
ich habe ein Problem. Ich habe mich jetzt mal in die Materie eingelesen zum PHP Paging und soweit so gut. Das Problem ist nicht, wie ich die Daten aus der Datenbank herauskriege, sondern vielmehr wie ich diese so anordne, wie ich das gerne hätte.
Kurz zur Webseite. Wir haben eine Webseite die aus 12 Boxen besteht, sprich eine Tabelle mit 4 Reihen und 3 Spalten. In jede dieser Zellen, soll eine php Datei included werden, bestehend aus einem Bild, kurzer Beschreibung und Link.
Mittels Mysql Datenbank kann ich diese php Dateien ja nummerieren oder mit Datum versehen und diese dann auslesen, richtig? Ich kann in die Datenbank also das Datum schreiben, eine ID Nummer eingeben die dann immer fortlaufend ist und den Dateinamen. Soweit so gut.
Ich habe auch schon nachgelesen wie ich die Datensätze sortiere und ausgebe, aber ich verstehe nicht, wie ich es mit PHP hinbekomme, das er mir immer 3 Datensätze nebeneinander einfügt und dann eine neue Zeile in der Tabelle beginnt und das dann 4-mal macht.
Optimal wäre dann natürlich ein Paging, das er dann eine neue Seite anfängt und dort die restlichen Dateien einfügt, aber soweit will ich noch gar nicht gehen.
Ich würde gerne einfach nur mal verstehen wollen, wie ich es hinbekomme, das die Datensätze nebeneinander stehen in den Zellen?
Alternativ: wäre es möglich die Daten aus der Datenbank in ein Array zu laden und in der php Datei dann den Befehl include "daten[1]"; ... etc. anzugeben? Das wäre ja schonmal ganz ok...
Mein Traum wäre natürlich, das ich nur eine php Datei hätte mit den 12 Zellen und ich via GET Variable einfach nur Themengebiet und Monat eingebe und er aus der Datenbank dann einfach z.B. alle Daten mit dem Thema News aus dem Monat Juli ausgibt und zwar jeweils 12 Boxen und dann eine neue Seite erstellt, wobei die aktuellsten Daten immer auf Seite 1 wären.
Habt ihr da irgendwie eine Hilfe parat, wie ich das am besten angehen könnte? Ich will das ganze aber auch letztlich verstehen lernen, so das ich in Zukunft auch aufrüsten kann und mehrere Suchparameter etc. eingeben kann.
|
|
|
11.09.2007, 17:29
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Die Datensätze aus der DB kannst Du ja auch als Array behandeln.
Die Anzahl der zu holenden Datensätze kann man ja recht bequem via LIMIT regeln.
Wie das mit der Tabelle geht, sollte folgendes zeigen.
PHP-Code:
<?php $numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
echo "<table>"; echo "<tr>"; for($i = 1; $i <= count($numbers); $i++){ echo "<td>".$numbers[$i-1]."</td>"; if($i % 3 == 0) echo "</tr><tr>"; } echo "</tr>"; echo "</table>"; ?>
|
|
|
11.09.2007, 17:29
|
#3
|
|
TP-Supporter
Registriert seit: Feb 2005
|
Beispiel (ausm Kopf):
PHP-Code:
for($i=1;$i<=12;$i++) {
echo $i;
if($i%3) {
echo '<br>';
}
}
Das ist das Prinzip (oder hab ich mich verzettelt?) Musst du jetzt nurnoch übertragen.
Edit: Da war wohl jemand schneller *G*
|
|
|
11.09.2007, 18:33
|
#4
|
|
TP-Junior
Registriert seit: Sep 2007
|
Cool! DANKE!
Jetzt habe ich allerdings schon wieder die nächste Frage.
Anstatt der Zahlen im Array geben wir mal php Dateien (also meine BOXES).
Wie include ich diese Arrays?
PHP-Code:
<?php
$numbers = array("box_01.php", "box_02.php", "box_03.php", "box_04.php", box_05.php, box_06.php, box_07.php, box_08.php, box_09.php, box_10.php, box_11.php, box_12.php);
echo "<table>";
echo "<tr>";
for($i = 1; $i <= count($numbers); $i++){
echo "<td>" include (.$numbers[$i-1].); "</td>";
if($i % 3 == 0) echo "</tr><tr>";
}
echo "</tr>";
echo "</table>";
?>
Das ergibt immer diesen Fehler:
Parse error: parse error, unexpected T_INCLUDE, expecting ',' or ';' in test.php on line 7
|
|
|
11.09.2007, 18:35
|
#5
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Wenn schon, dann so
echo "<td>".include($numbers[$i-1])."</td>";
|
|
|
11.09.2007, 19:07
|
#6
|
|
TP-Junior
Registriert seit: Sep 2007
|
Leider macht er da nichts sondern sagt dann
Warning: main(box_01.php</td>) [function.main]: failed to open stream: No such file or directory in /home/w/dseverse/public_html/en/test.php on line 7
Warning: main() [function.include]: Failed opening 'box_01.php</td>' for inclusion (include_path='.:/usr/share/php') in /home/w/dseverse/public_html/en/test.php on line 7
|
|
|
11.09.2007, 19:16
|
#7
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Na dann halt so
PHP-Code:
for($i = 1; $i <= count($numbers); $i++){ echo "<td>"; include($numbers[$i-1]); echo "</td>"; if($i % 3 == 0) echo "</tr><tr>"; }
|
|
|
11.09.2007, 19:22
|
#8
|
|
TP-Junior
Registriert seit: Sep 2007
|
DANKE DANKE DANKE!!!
Das geht jetzt. Wieder was gelernt.
Gruss,
Denis
|
|
|
12.09.2007, 14:34
|
#9
|
|
TP-Junior
Registriert seit: Sep 2007
|
Sorry, ich schon wieder, aber irgendwie raff ich das alles nicht.
Also ich habe es jetzt geschafft meine Daten aus der Datenbank zu lesen, zu ordnen und in ein Array zu stecken.
Dann wird das Array so wie ihr mir geholfen habt ausgegeben. Soweit so gut. An ein Paging möchte ich jetzt gar nicht denken, das wäre mir zu kompliziert, obwohl es die Sache auf lange Sicht vereinfachen würde.
Ich hätte jetzt eigentlich nur noch gerne einen poppeligen Seitenlink der sich dynamisch verändert, sprich aktuelle Seite +1.
Ich hatte mir gedacht ich nehme einfach eine GET Variable in die URL auf, also ?page=1 und gebe dann per echo eine die Linkzeile aus, wo ich einfach diesen GET Befehl mit page+1 eintrage. Also $_GET['page+1']
Doch, egal was auch immer ich mache, ich bekomme unexpected . oder ; oder / oder oder oder
Würde mir bitte jemand dabei helfen können? Imgrunde will ich nur die aktuelle Seitenzahl erkennen und entweder eine vor oder eine zurück gehen können. Am liebsten wäre mir sogar, wenn ich die GET Variable in eine normale stecken könnte und die normale Variable dann einfach immer +1 ist und den Dateinamen in meinem Link somit immer +1 macht.
Ich brauche einfach ein neues PHP Buch. Habe schon eines gekauft, aber das ist Megamüll. Erklärt mir ständig nur Sachen wie Datenbanken. Jemand einen guten Typ, was auch Praxisorientiert an solche Kleinigkeiten herangeht? Ich will nämlich ja gar nicht große Datenbanken etc bauen, sondern nur die Firmennews etwas einfacher darstellen... 
|
|
|
12.09.2007, 14:53
|
#10
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Versuch es doch einfach mal mit $_GET['page']+1
Das was Du da schreibst ist eine Var, die es nicht gibt. 
|
|
|
13.09.2007, 14:11
|
#11
|
|
TP-Junior
Registriert seit: Sep 2007
|
Vielen Dank! Habe jetzt auch mein einfaches Navigationsskript eingebaut und kann damit nun blättern. Habe noch eine if Abfrage rein gemacht, damit er nicht Werte kleiner als 1 annimmt.
Jetzt habe ich das nächste Problem. *g* Das ist aber auch sowas von blöd. Eigentlich habe ich ja schon alle meine für den Anfang gesetzte Ziele geschafft, aber jetzt hat mich der Perfektionismus gepackt  .
Ich übergebe ja per $_GET den Namen der Tabelle aus welcher ich die Newsdaten herausziehen möchte. Das Problem ist, das wenn ich keine Variable angebe, ich natürlich einen blöden Fehler bekomme, weil meine
while Schleife versucht ins Array zu schreiben, aber da ist leider nichts zum schreiben.
Ich habe schon die Befehle mysql_num_rows etc. probiert, komme aber nicht weiter.
Was muss ich den genau tun und mit welchem Befehl sollte man die Verarbeitung des Skripts stoppen wenn keine Variable übergeben wurde?
Und wie genau funktioniert das mit dem isset? Bei mir hat das keinen Effekt 
|
|
|
13.09.2007, 15:08
|
#12
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
mysql_num_rows kann ja auch nur funktionieren, wenn eine entsprechende DB angegeben ist.
Zu Befehl isset(), den Befehl empty() solltest Dir dann aber gleich mitanschauen.
Pack die DB Anfrage, wie die while Schleife in eine if Abfrage, die kontrolliert, ob überhaupt eine Var übergeben ist.
if(!empty($_GET['tabellenname']){
// DB Abfrage, whileschleife
...
}
else echo "Keine Tabelle gewählt";
Oder lege eine Standardtabelle fest, die immer dann verwendet wird, wenn keine Tab angegeben ist.
if(empty($_GET['tabellenname']) $tabelle = "meineStandardTabelle";
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:00 Uhr.
|
 |