php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.11.2008, 17:18  
Neuer Benutzer
 
Registriert seit: 03.05.2006
Beiträge: 28
petja
Standard Problem mit einer Schleife?

Hallo,

Viel verstehe ich noch nicht in Sachen php. Steh bei vielen Dingen am Anfang. Ich versuche eine Schleife zu bauen. Doch es gelingt mir einfach nicht. Nach unzähligen Versuchen und recherchen im Netz hab ich nicht den richtigen Hinweis gefunden.
Mien Problem würde ich jetzt mal so beschreiben.

Ich habe einen internen Counter der sieht so aus:

<?php
for($count = 1; $count < $sid+1; $count++)
{
echo $count,", ";
}
?>

Ausgabe 1, 2, 3,

Funzt auch soweit. sid ist die Zeilennummer in der Datenbank. Die Schleife zählt also bis 3 weil im mom gerade 3 Zeilen [Datensätze] in der db sind. Schreib ich 4 Zeilen rein zählt es auch bis 4. Nun habe ich mir gedacht ich bau einfach die Abfrage in die Schleife und lasse dazu einfach den Namen ausgeben zum testen. Der name ist in der Spalte [u_name] in der db gespeichert. Einer von unzähligen versuchen sah so aus, hier mal mit while.

<?php
$count = 1;
while($count < $sid+1)
{ $abfrage2 = "SELECT * FROM `unterseiten` WHERE `sid`='$count'";
$ergebnis2 = mysql_query($abfrage2);
while($row = mysql_fetch_object($ergebnis2));
echo "$u_name<br>";
$count++;
}
?>

Die Ausgabe in diesem Fall ist

name drei
name drei
name drei

gewollt ist aber

name eins
name zwei
name drei

Ich hoffe ich konnte mein Problem einigermaßen erklären! Würde mich über einen Denkanstoß freuen.

ich habe die Boardsuche natürlich schon bemüht. Vielleicht suche ich ja na den falschen Begriffen.

Gruß Petja
petja ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.11.2008, 17:34  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Warum willst Du jeden einzelnen Datensatz mit einer eigenen SQL-Abfrage auslesen?

PHP-Code:
<?php
$mysql 
mysql_connect('..''..''..') or die(mysql_error());
mysql_select_db('..'$mysql) or die(mysql_error());

$sql "SELECT sid,u_name FROM `unterseiten` ORDER BY `sid` asc";
$result mysql_query($sql$mysql) or die(mysql_error());
while(
$row=mysql_fetch_array($resultMYSQL_ASSOC)) {
  echo 
$row['sid'], ' '$row['u_name'], "<br />\n";
}
?>
David ist offline  
Alt 25.11.2008, 17:55  
Neuer Benutzer
 
Registriert seit: 03.05.2006
Beiträge: 28
petja
Standard

Danke David für die Antwort. Ist ja ein völlig anderer Lösungsansatz. Er zeigt mir allerdings eine Warnung.
mysql_query(): supplied argument is not a valid MySQL-Link resource in blablabla site.php on line 71

und das ist diese Zeile
$result = mysql_query($sql, $mysql) or die(mysql_error());

Ich habe die ersten beiden Zeilen aus dem Antwort Code nicht mit verwendet da schon eine Verbindung zur Datenbank besteht. Oder müssen die beiden Zeilen unbedingt mit rein?

$mysql = mysql_connect('.localhost.', '.benutzer.', '.passwort.') or die(mysql_error());
mysql_select_db('.dbname.', $mysql) or die(mysql_error());

Ist doch so auch richtig mit den Platzhaltern?

Jedenfalls kam dann diese Warnung:
Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host '.localhost.' (3) in blablabla on line 68

Zeile 68 ist diese
$mysql = mysql_connect('.localhost.', '.benutzer.', '.passwort.') or die(mysql_error());

Gruß Petja
petja ist offline  
Alt 25.11.2008, 17:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Hier im Forum bitte [php] Tags verwenden!
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 25.11.2008, 18:12  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Das passt irgendwie nicht zusammen.
Mit or die(mysql_error()) bricht das Skript ab, wenn mysql_connect() fehl schlägt - da wird nicht nur eine Warnung ausgegeben.
Die Punkte gehören da natürlich nicht mit rein. Die sind in meinem Bispielskript nur Platzhalter für Deine Werte.
David ist offline  
Alt 25.11.2008, 18:14  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zuerst einmal zu deinem Ausgangscode: Ich bin nämlich etwas verwundert das der ÜBERHAUPT was ausgibt. mysql_fetch_object gibt nämlich, wie der Name schon vermuten lässt, ein Objekt zurück. Die Eigenschaften dieses Objektes entsprechen den Namen der Felder in der MySQL-Tabelle (wenn du nicht was was Objekte oder Eigenschaften von Objekten sind empfehle ich PHP: Klassen und Objekte (PHP 5) - Manual).
In jedem Fall: Du darfst nicht $u_name ausgeben sondern $row->u_name

Dann allerdings generell zu deinem Ansatz: Ich verstehe nicht ganz warum du überhaupt die erste Schleife eingebaut hast Diese Zeilen aus deinem Code:
PHP-Code:
$abfrage2 "SELECT * FROM `unterseiten` WHERE `sid`='$count'";
$ergebnis2 mysql_query($abfrage2);
while(
$row mysql_fetch_object($ergebnis2));
echo 
"$u_name<br>"//Hier müsste $row->u_name stehen 
machen folgendes: Sie schicken deine mysql-Anfrage ab und gehen JEDE ZEILE des Ergebnisses durch (durch die while-Schleife). Eine Schleife um diesen Code herum heißt im Endeffekt nur, dass du die Anfrage mehrfach ausführst und jedes ergebnis mehrfach durchgehst. Oder ist das so gewollt?

mfg
BlackWolf ist offline  
Alt 25.11.2008, 18:37  
Neuer Benutzer
 
Registriert seit: 03.05.2006
Beiträge: 28
petja
Standard Erledigt

Vielen Dank für die schnelle und unkomplizierte Hilfe. Funktioniert einwandfrei. Jetzt muß ich nur noch rausbekommen warum! Also weiterüben und probieren!

Gruß Petja und einen schönen Abend
petja ist offline  
Alt 25.11.2008, 18:40  
Neuer Benutzer
 
Registriert seit: 03.05.2006
Beiträge: 28
petja
Standard

Zitat:
Zitat von petja Beitrag anzeigen
Vielen Dank für die schnelle und unkomplizierte Hilfe. Funktioniert einwandfrei. Jetzt muß ich nur noch rausbekommen warum! Also weiterüben und probieren!

Gruß Petja und einen schönen Abend
Sorry BlackWolf Dein Beitrag hab ich glatt beim probieren und antworten überlesen. Gewollt war das natürlich nicht. Nur mein Wissenstand hatte nichts anderes zugelassen. Trag den Fehler wahrscheinlich an mehreren Stellen mit mir rum. David sein Code funzt jedenfalls. THX
petja ist offline  
Alt 25.11.2008, 18:52  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von petja Beitrag anzeigen
Jetzt muß ich nur noch rausbekommen warum!
Da das eine wirklich grundlegende SQL Abfrage ist, brauchst Du wohl ein gutes Einsteiger-Tutorial. Such Dir mal ein gut bewertetes aus dem Thread "Lerne Grundlagen" hier im Forum raus.
Was ORDER BY bewirkt, kannst Du unter SQL ORDER BY Keyword nachlesen.
David 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
Problem bei einer while Schleife Sini PHP Tipps 2008 5 22.11.2008 20:03
schleifen problem amsele1986 PHP Tipps 2008 3 21.06.2008 17:45
For schleife beenden Toby PHP Tipps 2008 32 15.10.2007 11:57
While schleife mit Datenbank in ein Dropdown Feld (Umlaut Problem) kintaro PHP Tipps 2008 6 28.08.2007 19:11
Warum wird die erste Schleife nur einmal durchlaufen ? PHP Tipps 2006 12 03.03.2006 20:04
Problem mit FOR Schleife PHP Tipps 2007 4 02.12.2005 13:18
[Erledigt] While schleife in while schleife = nur ein datensatz?! PHP Tipps 2005-2 9 28.10.2005 12:48
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
[Erledigt] Problem mit User/Group: nobody(99)/99 Server, Hosting und Workstations 3 09.07.2005 15:31
Schleife in Formular Auswertung DDogg PHP Tipps 2005 2 20.04.2005 15:44
IF ELSEIF ELSEIF ELSE mit While Schleife PHP Tipps 2005 9 04.03.2005 23:27
problem mit for schleife und str_replace PHP Tipps 2005 7 23.01.2005 23:51
Problem mit zwei variablen - löschen - MySQL PHP Tipps 2004 9 17.10.2004 20:57
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php unterseiten mit schleifen

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