php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.07.2008, 17:53  
Neuer Benutzer
 
Registriert seit: 16.07.2008
Beiträge: 18
RedDragon befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] If in einer While schleifen

Hi,

irgendwie hab ich n denkfehler.
Ich hab eine While-schleife:
PHP-Code:
while ($zeile mysql_fetch_assoc($ergebnis)) {
echo 
$id=$zeile['id']." ";
echo 
$geschlecht=$zeile['geschlecht']." ";
echo 
$vorname=$zeile['vorname']." ";

Die stellt die 3 Drei Spalten Zeile für Zeile einer DB da.
Nun möchte ich, dass sobald ein bestimmter vorname auftaucht, er das melden soll.
Deshalb dachte ich, ich bau da eine If-Anweisung rein:
PHP-Code:
while ($zeile mysql_fetch_assoc($ergebnis)) {
echo 
$id=$zeile['id']." ";
echo 
$geschlecht=$zeile['geschlecht']." ";
echo 
$vorname=$zeile['vorname']." ";
if (
$vorname == "Max")
{
echo 
"shit"
}

Nach meiner Auffasung müsste er jetzt jedesmal, wenn max auftaucht dahinter shit schreiben.
Wo ist da der Denkfehler??
Gruß RedDragon
RedDragon ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.07.2008, 17:58  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wieso machst du eine Zuweisung IN einem echo??

Außerdem brauchst du diese ganzen Variablen nicht.

PHP-Code:
<?php
while ($zeile mysql_fetch_assoc($ergebnis)) {
    echo 
$zeile['id'].' '.$zeile['geschlecht'].' '.$zeile['vorname'].' ';
    if (
$zeile['vorname'] == 'Max') {
        echo 
'shit'
    }
}
Flor1an ist offline  
Alt 20.07.2008, 18:00  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Wenn in $zeile['vorname'] "Max" steht, dann steht in $vorname "Max ".
Und "Max " ist nicht das gleiche wie "Max".

btw.: die Zuweisung und Ausgabe in der selben Zeile zu machen finde ich hässlich, wozu machst du das überhaupt?
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 20.07.2008, 18:04  
Neuer Benutzer
 
Registriert seit: 16.07.2008
Beiträge: 18
RedDragon befindet sich auf einem aufstrebenden Ast
Standard

JA!...das war es. Ich hab die im echo definiert weil ich dann nur eine Zeile hatte und dann dementsprechen mit nur den variablen weiterarbeiten kann.
Aber ich hab nich gemerkt, dass die Variable ja noch mit "" verlängert wurde.
Danke!
RedDragon ist offline  
Alt 20.07.2008, 18:11  
Neuer Benutzer
 
Registriert seit: 16.07.2008
Beiträge: 18
RedDragon befindet sich auf einem aufstrebenden Ast
Standard

Achso und mein eigentliches Problem, war eigentlich, dass ich mittels einer While-Schleife in einer while-schleife, 2 Tabellen vergleich wollte.
Das dachte ich kann man so machen:
PHP-Code:
# Adressen:
$sql8="Select * from adressen1 order by id asc";
$ergebnis=mysql_query($sql8,$verbindung) or die (mysql_error()." Kann Tabelle der Datenbank nicht lesen!");
#plz:
$sql18="Select * from plz order by id asc";
$ergebnis2=mysql_query($sql18,$verbindung) or die (mysql_error()." Kann Tabelle der Datenbank nicht lesen!");

while (
$zeile mysql_fetch_assoc($ergebnis)) {
echo 
$zeile['id']." ";
echo 
$zeile['geschlecht']." ";
echo 
$zeile['vorname']." ";
echo 
$zeile['nachname']." ";
echo 
$zeile['strassenname']." ";
echo 
$zeile['postleitzahl']." ";
echo 
$zeile['ort']." ";
while (
$zeile2 mysql_fetch_assoc($ergebnis2))
         {
                 if (
$zeile['postleitzahl'] == $zeile2['postleitzahl'])
                 {
                 echo 
$zeile2['ort']." ";
                 }

         }


Aber pustekuchen!
Wie macht man das richtig?
RedDragon ist offline  
Alt 20.07.2008, 18:14  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Gar nicht in PHP!

Code:
SELECT * 
FROM adressen1 AS a1 
LEFT JOIN adressen2 AS a2
ON (a1.postleitzahl == a2.postleitzahl)
ORDER BY id ASC
Und dann kannst du ganz einfach in einer Schleife alle Werte auslesen.

Warum dein Code oben nicht funktioniert, wenn du das erste mal die 2te Schleife durchgehst funktioniert noch alles, beim zweiten mal ist mysql_fetch_assoc() aber schon durchgelaufen für das $ergebnis2, daher müsste das erst wieder zurück gesetzt werden.
Flor1an ist offline  
Alt 20.07.2008, 18:25  
Neuer Benutzer
 
Registriert seit: 16.07.2008
Beiträge: 18
RedDragon befindet sich auf einem aufstrebenden Ast
Standard

Das ist absolut nicht realisierbar mit PHP???
Und wie macht man das dann?
Den Code den du gepostet hast wie soll ich den unterbringen. Es soll ja am Ende etwas entstehen, womit man als user einfach nur überprüfen kann, ob die in adressen1 eingegeben plz richtig sind.
RedDragon ist offline  
Alt 20.07.2008, 18:31  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Mit PHP ist es schon möglich, wäre aber umständlich. Lässt sich viel einfacher mit einer DB Abfrage realisieren. Dazu solltest du dir mal JOINs in MySQL anschauen. Google mal nach Tutorials, gibt genug.

Und dann kannst du eigentlich ganz einfach in einer While Schleife drauf zugreifen.

PHP-Code:
<?php
while ($row mysql_fetch_assoc($query)) {
    echo 
$row['vorname']; // aus adresse1
    
echo $row['ort']; // aus adresse2
}
Flor1an ist offline  
Alt 20.07.2008, 18:50  
Neuer Benutzer
 
Registriert seit: 16.07.2008
Beiträge: 18
RedDragon befindet sich auf einem aufstrebenden Ast
Standard

Hardcore...das dauert voll lange die beiden zu joinen. Aber wenn cih dann 2mal die Spalte Ort habe und in PHP echo $zeile['ort'] steht dann gibt er nur den Eintrag der zweiten Tabelle aus. Wie schaff ich es, dass er beide ausgibt.
Also wie unterscheidet man in PHP die beiden Tabellen?
RedDragon ist offline  
Alt 20.07.2008, 18:55  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Du könntest im Query extra namen vergeben. Angenommen du hast adresse1 AS a1 (Abkürzung) und adresse2 AS a2 dann kannst du, wenn in beiden Adressen die Spalte "ort" existiert folgendes machen.
Code:
SELECT
    a1.ort AS ort1
    a2.ort AS ort2
[...]
Das kannst du natürlich mit allen Spalten machen.

Und was dauert so lange daran beide Spalten zu joinen? Das schreiben des Querys??
Flor1an 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
schleifen problem amsele1986 PHP Tipps 2008 3 21.06.2008 17:45
[Erledigt] probleme for bzw while phpmax PHP Tipps 2008 13 24.05.2008 21:12
mysql_query verschmelzen zweier abfragen (while schleife) Buschdieb PHP Tipps 2006 10 15.07.2006 17:11
HTML und while schleifen. vale PHP Tipps 2006 1 17.06.2006 21:08
while schleife in einer while schleife beim tmpl-sys PHP Tipps 2005-2 0 27.07.2005 15:07
2 verschachtelte while Schleifen. Großes Performanceproblem Datenbanken 3 30.05.2005 12:52
While Schleifen Problem PHP Tipps 2005 9 22.05.2005 22:35
While Schleifen PHP Tipps 2005 9 22.04.2005 13:04
while schleife beenden PHP Tipps 2005 3 29.03.2005 20:35
Mit While selektieren und Daten rausholen (HILFE)!! Spike_php Datenbanken 7 12.12.2004 20:08
while schleifen ($dsatz=mysql_fetch_assoc($abfrage1) stefan-miti PHP Tipps 2004 5 23.09.2004 20:46
While schleifen problem PHP Tipps 2004 8 19.09.2004 17:48
2 Schleifen durchlaufen PHP Tipps 2004 1 14.09.2004 14:33
Nach while Schleife funzt nix mehr?! PHP Tipps 2004 15 25.08.2004 00:25
Templatesystem: Wie realisiere ich Schleifen? TheSkaterFriend PHP Tipps 2004 2 14.08.2004 15:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
if( while = mysql_fetch_assoc($ergebnis)), while ($zeile = mysql_fetch_assoc($ergebnis)), php if \in einer zeile\

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