CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
06.03.2005, 02:02:02
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Whileschleifen Problem
Zitat:
Zitat von wolles
@Coding:
Gut zu wissen.(braucht man so was auch für Algorithmen ;)
Ich hoffe, daß die Leute auch irgendwann mal 100-150 Artikel bei mir in den Warenkorb legen und die bestellen:)
|
jo, je besser die performance des codes je tiefer kannst du mit deinem algorithmus gehen, es soll ja auch nicht all zulange dauern, das verschlüsseln.
war ja jetzt nicht auf die bestellung bezogen, eher allgemein :-)
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
08.03.2005, 19:58:15
|
Junior Member
|
|
Registriert seit: Aug 2004
Beiträge: 152
|
|
AW: Whileschleifen Problem
Hallo nochmal
ich habe jetzt folgenden php code:
PHP-Code:
<?php
$result = mysql_query("SELECT * FROM `produkt` WHERE motorrad='Aprilia'
ORDER BY artikel, motorrad, typ");
$i = 0;
while ($row = mysql_fetch_array($result)) {
echo htmlspecialchars($row['artikel']); echo ' ';
echo '<a href="../zeige_artikel.php?fid='.$row['pid'].'">';
echo htmlspecialchars($row['motorrad']); echo ' ';
echo htmlspecialchars($row['typ']); echo ' ';
echo '</a><br>';
if($row['artikel'] != $artikelold && $i > 0)
echo '<br>';
$artikelold = $row['artikel'];
$i++;
}
?>
Da gibt es jetzt aber folgendes Problem:
wenn ich sagen wir mal folgende Artikel von Aprilia habe:
artikel A, artikel B, artikel C.
Zu jedem dieser Artikel gibt es dann eben typenspeziefisch Datensaetze in der DB.
Dann bekomme ich folgende ausgabe:
artikel A Rs125
artikel A RS250
artikel B Rs125
artikel B Rs125 sport
artikel B RS250
artikel C Rs125
artikel C RS 250
Also dass der Zeilenumbruch um einen zu spaet erscheint. Ich habe jetzt die letzten Tage schon ein wenig mit dem Code rumgespielt, aber die das erhoffte ergebnis gehabt. Koennt ihr mir dabei bitte nochmal helfen?
Erwuenschtes Ergebnis:
artikel A Rs125
artikel A RS250
artikel B Rs125
artikel B Rs125 sport
artikel B RS250
artikel C Rs125
artikel C RS 250
Danke Sarah
|
08.03.2005, 20:44:57
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Whileschleifen Problem
hallo,
so geht's:
PHP-Code:
<?php
$result = mysql_query("SELECT * FROM `produkt` WHERE motorrad='Aprilia'
ORDER BY artikel, motorrad, typ");
$i = 0;
while ($row = mysql_fetch_array($result)) {
echo htmlspecialchars($row['artikel']) . ' ';
echo '<a href="../zeige_artikel.php?fid='.$row['pid'].'">';
echo htmlspecialchars($row['motorrad']) . ' ';
echo htmlspecialchars($row['typ']) . ' ';
echo '</a><br>';
if($row['artikel'] != $artikelold){
if($i > 0) echo '<br>';
$artikelold = $row['artikel'];
}
$i++;
}
?>
ach: und die drei echos am ende des ausgabe blocks waren auch nicht nötig, habe sie rausgenommen und zum string verknüpft.
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
08.03.2005, 22:33:53
|
Junior Member
|
|
Registriert seit: Aug 2004
Beiträge: 152
|
|
AW: Whileschleifen Problem
:-(
funzt leider immer noch nicht. Der gleiche Fehler ist weiterhin vorhanden.
Der Link ist gesetzt, damit ihr sehen koennt was da los ist. Hoffe das stoert nicht/ verletzt die Forenregeln nicht.
Kuss Sarah
|
08.03.2005, 22:57:17
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Whileschleifen Problem
please show uns mal den code, den du verwendest...
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
08.03.2005, 23:17:55
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Whileschleifen Problem
ahh, sorry. ich habe die änderung falsch eingebaut.
.oO(wie peinlich)
so ist es aber recht:
PHP-Code:
<?php
$result = mysql_query("SELECT * FROM `produkt` WHERE motorrad='Aprilia'
ORDER BY artikel, motorrad, typ");
$i = 0;
while($row = mysql_fetch_array($result)){
if($row['artikel'] != $artikelold){
if($i > 0) echo '<br>';
$artikelold = $row['artikel'];
}
echo htmlspecialchars($row['artikel']) . ' ';
echo '<a href="../zeige_artikel.php?fid='.$row['pid'].'">';
echo htmlspecialchars($row['motorrad']) . ' ';
echo htmlspecialchars($row['typ']) . ' ';
echo '</a><br>';
$i++;
}
?>
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
09.03.2005, 00:29:47
|
|
Junior Member
|
|
Registriert seit: Apr 2002
Ort: Belgique
Beiträge: 180
|
|
AW: Whileschleifen Problem
Zitat:
Zitat von |Coding
$i = 0;
while($row = mysql_fetch_array($result)){
if($row['artikel'] != $artikelold){
if($i > 0) echo '<br>';
$artikelold = $row['artikel'];
......
}
|
Ähm, vielleicht täusch ich mich, aber gibt's keine Fehlermeldung beim ersten Schleifendurchlauf, wenn $artikelold noch nicht definiert ist?
Müsste es nicht eher so aussehen:
PHP-Code:
<?php
$result = mysql_query("SELECT * FROM `produkt` WHERE motorrad='Aprilia'
ORDER BY artikel, motorrad, typ");
$i = 0;
while($row = mysql_fetch_array($result)){
if($i > 0){
if($row['artikel'] != $artikelold) echo '<br>';
$artikelold = $row['artikel'];
}
echo htmlspecialchars($row['artikel']) . ' ';
echo '<a href="../zeige_artikel.php?fid='.$row['pid'].'">';
echo htmlspecialchars($row['motorrad']) . ' ';
echo htmlspecialchars($row['typ']) . ' ';
echo '</a><br>';
$i++;
}
?>
__________________
Wolles
Warum klettern Menschen auf einen Berg?
..vor allem, weil er da ist, Spock!
|
09.03.2005, 00:46:03
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Whileschleifen Problem
wenn, dann höstens 'ne notice und auch nur mit error_reporting.
mit deinem code das selbe, abgesehen davon das er nicht das gewünschte ergebnis erziehlt.
einfach:
$artikelold = '';
vor die schleife und error_reporting hält den rand.
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
09.03.2005, 00:57:45
|
|
Junior Member
|
|
Registriert seit: Apr 2002
Ort: Belgique
Beiträge: 180
|
|
AW: Whileschleifen Problem
Hm, versteh nicht, warum er nicht das gleiche Ergebnis liefert.
Edit: ach so, Kommando zurück, bei mir wird im ersten Durchlauf nicht $artikelold zugewiesen.
Bitte untertänigst Gnade walten zu lassen:-)
__________________
Wolles
Warum klettern Menschen auf einen Berg?
..vor allem, weil er da ist, Spock!
Geändert von wolles (09.03.2005 um 01:01:46 Uhr)
|
09.03.2005, 01:12:04
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Whileschleifen Problem
weil bei deiner variante dieser teil:
PHP-Code:
//...
if($row['artikel'] != $artikelold) echo '<br>';
$artikelold = $row['artikel'];
//...
beim ersten durchlauf komplett übergangen wird.
insgesamt passiert das:
1. durchlauf: $row['artikel'], $row['pid'], $row['motorrad'] und $row['typ'] werden ausgegeben
2. durchlauf: $artikelold ist nicht deklariert, somit wird "<br>" ausgegeben.
3. durchlauf: $artikelold ist in durchlauf 2 deklariert und definiert worden. ab hier läuft alles wie es soll.
ergebis mit dem beispiel-array von Sarah19:
Code:
artikel A Rs125 // durchlauf 1
artikel A RS250 // durchlauf 2
artikel B Rs125 // durchlauf 3
artikel B Rs125 sport // durchlauf 4
artikel B RS250 // durchlauf 5
artikel C Rs125 // durchlauf 6
artikel C RS 250 // durchlauf 7
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:13:56 Uhr.
|