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 02-04-2006, 13:48
el_espiritu
 Junior Member
Links : Onlinestatus : el_espiritu ist offline
Registriert seit: May 2003
Beiträge: 170
el_espiritu ist zur Zeit noch ein unbeschriebenes Blatt
Standard Schleife mit Zähler - keine Funktion

Hallo Leute!

Habe ein kleines (und wahrscheinlich total dummes) Problem mit meiner Schleife. Aber ich steh wohl momentan auf dem Schlauch:

PHP-Code:
<?php    $abfrage mysql_query("SELECT platten.platten_id FROM platten INNER JOIN platten_band_zuordnung ON platten.platten_id=platten_band_zuordnung.platten_id
                                    WHERE band_id = $b_id;"
);
            
$data mysql_fetch_array($abfrage);
            
$abfrage1 mysql_query("SELECT * from platten where platten_id = $data[0];");
            
$i=1;
            while (
$data1 mysql_fetch_array($abfrage1)) // Schleife für Ausgabe der Datensätze
            
{
            echo 
" <tr align=\"center\"> "// Ausgabe der Datensätze, pro Datensatz eine Reihe
            
echo " <td align=\"center\" width=\"170\">" $data1[$i]. "</td>";
            echo 
" </tr> ";
            
$i=$i+1;
            }
    
?>
Die MySQL Abfrage stimmt, hab ich überprüft. Alle Daten aus der Tabelle sind vorhanden, aber die Ausgabe mit Hilfe des Zählers klappt nicht. Er springt immer wieder zurück auf die 1 und ich versteh nicht wieso
Mit Zitat antworten
  #2 (permalink)  
Alt 02-04-2006, 13:51
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Setz mal
PHP-Code:
var_dump($data1); 
in die while-Schleife ein!
Mit Zitat antworten
  #3 (permalink)  
Alt 02-04-2006, 15:37
Alrik
 Member
Links : Onlinestatus : Alrik ist offline
Registriert seit: Jan 2006
Beiträge: 304
Alrik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

Ich glaube, dass deine Zählvariable keinen Sinn macht.

Im ersten Durchlauf gibst du vom Array(1. Datensatz) den zweiten Wert aus, im zweiten Durchlauf gibts du vom 2. Datensatz den dritten Wert aus usw.

Du benötigst entweder eine Schleife in der Schleife, die die einzelnen Array Elemente anspricht, oder du lässt dir einfach den festen Wert aus dem Array ausgeben (welches mit 0 und nicht mit 1 anfängt).

Gruß Thomas
Mit Zitat antworten
  #4 (permalink)  
Alt 02-04-2006, 18:55
icecream
 Registrierter Benutzer
Links : Onlinestatus : icecream ist offline
Registriert seit: Jan 2005
Ort: Regensburg
Beiträge: 282
icecream ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Warum schreibst du nicht statt
$i = $i + 1;
das hier:

$i++;
?

Gruß
icecream
Mit Zitat antworten
  #5 (permalink)  
Alt 02-04-2006, 19:24
el_espiritu
 Junior Member
Links : Onlinestatus : el_espiritu ist offline
Registriert seit: May 2003
Beiträge: 170
el_espiritu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also ich hab doch ein Array mit den Felder 0,1,2,3,4, usw.
So, jetzt will ich in der Schleife diese Felder nacheinander, pro Zeile 1 Wert, ausgeben. (Das Array fängt mit 0 an aber der Wert hat keine Bedeutung, deswegen fang ich bei Feld 1 an)

Ich versteh nicht so ganz warum es nicht klappt, die Zählvariable wird mit 1 initalisiert und am Ende der Schleife um 1 erhöht. Demnach müsste sie doch wenn es wieder in die Schleife geht um 1 höher sein oder?
Mit Zitat antworten
  #6 (permalink)  
Alt 02-04-2006, 20:07
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. brich den code um!
2. alrik hat recht, die benutzung von einem zähler ist an dieser stelle totaler unfug. du hast in $data1 immer einen aktuellen datensatz. die werte dieses arrays sind die _spalten_ - und es macht bei einer spalte keinen sinn irgendwas zu zählen. nimm an dieser stelle $data1[0] und schau dir an, was rauskommt.
3.
Zitat:
Er springt immer wieder zurück auf die 1 [...]
was soll das bedeuten?
4. icecream: jacke wie hose.
Mit Zitat antworten
  #7 (permalink)  
Alt 02-04-2006, 20:12
el_espiritu
 Junior Member
Links : Onlinestatus : el_espiritu ist offline
Registriert seit: May 2003
Beiträge: 170
el_espiritu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Eija wenn ich auf $data1[0] stelle bekomme ich den ersten Wert des Arrays angezeigt. Nämlich die ID der Platte (Primärschlüssel), in diesem Falle "1". Und das war's. Nix mehr sonst.
Mit Zitat antworten
  #8 (permalink)  
Alt 02-04-2006, 20:13
icecream
 Registrierter Benutzer
Links : Onlinestatus : icecream ist offline
Registriert seit: Jan 2005
Ort: Regensburg
Beiträge: 282
icecream ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
4. icecream: jacke wie hose.
Schon klar, sieht aber schöner und übersichtlicher (meiner Meinung nach) aus .

Gruß
icecream
Mit Zitat antworten
  #9 (permalink)  
Alt 02-04-2006, 20:15
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

brich den code um!

und
PHP-Code:
echo $data[0] . $data[1]; 
etc. liefert etwa nicht das gewünschte?
Mit Zitat antworten
  #10 (permalink)  
Alt 02-04-2006, 23:34
el_espiritu
 Junior Member
Links : Onlinestatus : el_espiritu ist offline
Registriert seit: May 2003
Beiträge: 170
el_espiritu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von penizillin
brich den code um!
Was bedeuted das? Wie bricht man einen Code um? Sorry.
Zitat:
Original geschrieben von penizillin

und
PHP-Code:
echo $data[0] . $data[1]; 
etc. liefert etwa nicht das gewünschte?
Doch natürlich, dann hätte ich selbstverständlich alle Datensätze. Aber die Tabelle ist nicht immer gleich gefüllt, d.h. die Anzahl der Datensätze variiert. Demnach brauche ich ja die Schleife die mir automatisch alle Datensätze der Tabelle ausgeben soll, so lange bis ich alle angezeigt bekommen. Vielleicht ist es jetzt verständlicher
Mit Zitat antworten
  #11 (permalink)  
Alt 02-04-2006, 23:40
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von el_espiritu
Was bedeuted das? Wie bricht man einen Code um?
RTFR
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #12 (permalink)  
Alt 03-04-2006, 00:18
Alrik
 Member
Links : Onlinestatus : Alrik ist offline
Registriert seit: Jan 2006
Beiträge: 304
Alrik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nabönd,

Dann Lass doch in deiner while Schleife noch eine foreach Schleife laufen.

Gruß Thomas
Mit Zitat antworten
  #13 (permalink)  
Alt 03-04-2006, 00:43
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Hast anscheinend eine falsche Vorstellung, was dein $data1 angeht.

Dein SELECT liefert eine unbestimmte Anzahl Datensätze. Mit mysql_fetch_array() nimmst du dir einen davon.

In der While-Schleife wird $data1 also immer wieder neu belegt und zwar beim ersten Durchlauf mit dem ersten Datensatz, beim 2. Durchlauf mit dem zweiten ...
und beim letzten Durchlauf mit dem letzten Datensatz. Danach liefert mysql_fetch_array() nur false zurück und deswegen bricht die Schleife ab.

Wenn du dir in der Schleife $data1 mal ausgeben läßt (var_dump()), erkennst du dessen Struktur: Es ist ein einzeiliges Array mit so vielen Elementen, wie dein SELECT Spalten zurückliefert.
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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:11 Uhr.