| 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! Post your PHP questions here! |
 |
|

27-04-2011, 03:21
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
If (mysql_query)
Hallo zusammen
Ich finde nirgens einen Ansatz für mein Anfängerproblem, vielleicht kann mir hier jemand einen Tipp geben. Wäre schön.
Folgendes:
Ich habe eine IF Bedingung in diesem Style:
PHP-Code:
If ($test == "wert1" or $test == "wert2" ...usw.){}
Jetzt kommen aber die Werte aus einer MySql - abfrage:
PHP-Code:
$query_test = "SELECT * FROM $tab ";
$test = mysql_query($query_test , $conn) or die(mysql_error());
$row_test = mysql_fetch_assoc($test);
$totalRows_test = mysql_num_rows($test);
do{$werte= $row_test['werte'];}
while ($row_test = mysql_fetch_assoc($test));
Wie muss ich nun vorgehen um die werte aus der Abfrage in die if bedingung zu bringen?
|

27-04-2011, 07:55
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Mach das doch im SQL!
Und fast 180 Postings, da kannst du dich nicht mehr mit Anfänger raus reden.
Das riecht schon nach selber denk Verweigerung.
|

27-04-2011, 11:20
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
es funktioniert auch
if($test == $wert_aus_der_db)
Man kann durchaus auch zwei Variablem miteinander vergleichen.
Vielleicht ist aber auch in_array() für dich interessant.
|

27-04-2011, 12:54
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Ja TobiaZ
Das geht so nur wenn ich mehrere Bedingungen will scheitere ich
if($test == $wert_aus_der_db or $test == $wert_aus_der_db2)
muss es wohl in ein array packen dann oder?
|

27-04-2011, 12:59
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Oder besser schon im SQL Statement unterbringen.
|

27-04-2011, 13:07
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
die Frage ist halt, was überhaupt erreicht werden soll.
Bisher kann ich nicht erkennen, welche werte, wie worin gespeichert sind. Auch scheint die Variablenbenennung bisher willkürlich und teilweise ungültig.
|

27-04-2011, 13:55
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Ich will eine if Bedingung mit den Bedingungen mit Werten die in der DB gespeichert sind. Sprich die Werte sind nicht manuell gesetzt sondern kommen dynamisch von der Datenbank.
|

27-04-2011, 14:58
|
|
boeserfrosch
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 71
|
|
Aber die Werte aus "$test" müssen doch auch manuell irgendwoher kommen.
Schreibe doch einfach in dein statement rein
Code:
where spalte1 = ".$test." or spalte2 = ".$test." ...
|

27-04-2011, 16:06
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Man merkt dann doch, wie die hohe Anzahl Postings und der geringe Kenntnisstand zusammen gehen: Absolut nicht in der Lage eine Problembeschreibung, geschweige denn eigene Ansätze zu liefern!
1) welche Daten stehen in der DB?
2) was soll mit diesen Daten passiern?
Den Ist- und Sollzustand zu posten, kann doch nicht so schwer sein!
|

27-04-2011, 17:50
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
also hier die funktionierende Bedingung
PHP-Code:
if($date != $date_from && ($date < new DateTime("2011-04-24") or $date > new DateTime("2011-05-07")) && ($date < new DateTime("2010-12-20") or $date > new DateTime("2011-01-08")))
nun will ich die Daten (zbsp.2011-05-07) aus der DB nehmen und nicht manuell eingeben, da ich verschiedene Daten habe und diese nicht immer die selben sind versuche ich die aus der DB zu fischen
PHP-Code:
$abfrage_kalenderdaten = mysql_query ("SELECT * FROM $tab_kalenderdaten");
while ($row = mysql_fetch_array ($abfrage_kalenderdaten))
{
$event_von = $row["datum_event"];
$event_bis = $row["datum_event_end"];
}
also so zu beispiel:
PHP-Code:
&& ($date < new DateTime("$event_von") or $date > new DateTime("$event_bis"))
das geht auch ausserhalb der while Schleife einwandfrei, nur nimmt er natürlich dann nur den letzten ausgelesenen Datensatz.
|

27-04-2011, 17:57
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von sepp
das geht auch ausserhalb der while Schleife einwandfrei, nur nimmt er natürlich dann nur den letzten ausgelesenen Datensatz.
|
Na dann pack's in die While-Schleife, genauer in deren Anweisungsblock.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

27-04-2011, 22:01
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Sorry, wie meinst Du das?
Ich will ja nicht die koplette IF Bedingung in der Schlaufe haben, die soll nur einmal ausgeführt werden. Es soll nur innerhalb der Klammer bei der IF Bedingung die vergleiche Dynamisch ausgeben.
Ich stehe auf dem Schlach, bin vielleicht auch zu doof oder habe Alzheimer....aber ich komme einfach nicht auf die Lösung....HILFE
Geändert von sepp (28-04-2011 um 02:40 Uhr)
|

28-04-2011, 08:53
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Du denkst zu klein....
Meines Erachtens nach bist du auf einem falschen Weg. Aber dass kann ich dir nur beweisen, wenn ich das GANZE Problem kenne.
Aber den großen Rahmen hältst du geheim.
Behauptungen:
Zitat:
|
SELECT * FROM $tab_kalenderdaten
|
Ein Select mit Stern ist immer falsch, und sagt mir auch nichts über die verwendeten Felder.
Ein Select ohne Where ist selten sinnvoll, wann braucht man schon ALLE Daten?
Und zusätzlich vermisse ich dort ORDER BY und LIMIT.
Was von diesen Behauptungen richtig oder falsch ist, entscheidet sich anhand deiner Problemstellung, die ist aber leider geheim.
Deine Idee das im PHP if abzuhandeln kommt mir total seltsam vor, ungewöhnlich, Performance verplempernd. Aber auch das kann ich erst konkretisieren, bzw. eine bessere Lösung anbieten, wenn du dein Problem mal richtig schilderst....
Tipp:
Zeige die Tabellenstruktur und ein paar Testdaten.
Sage was du WIRKLICH erreichen willst.
Beharre nicht auf deinem Weg, denn er könnte/wird falsch sein.
|

28-04-2011, 12:20
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Nein geheim ist nichts.
Ich stelle Kalenderdaten eines bestimmten Wochentag in einem bestimmten Zeitraum dar.
PHP-Code:
$date_from = new DateTime("2010-08-22"); $date_to = new DateTime("2011-07-22");
for ($date = clone $date_from; $date <= $date_to; $date->modify('next monday')) { // hier werden mit der IF Bedingung gewisse Tage ausgeblendet. if($date != $date_from && ($date < new DateTime("2010-12-20") or $date > new DateTime("2011-01-05"))) { $tag =$date->format('d'); $monat =$date->format('M'); $woche =$date->format('W'); $jahr =$date->format('Y'); echo $tag.'-'. $monat.'-'.$jahr.'--'.$woche.$i.'<br />'; }
}
Jetzt habe ich aber verschiedene Zeitspannen (Tag) die ich ausblenden will, nicht nur wie im Beispiel vom 20.12.2010 - 05.01.2011.
Die Tabelle beinhaltet nur die Daten der Ausblendzeiten und somit hat diese nur 3 Felder
ID|datum_event_start|datum_event_end
1|20-12-2010|05-01-2011
2|22-10-2010|02-11-2010
3|19-04-2011|30-04-2011
Darum habe ich keine where bedingung oder kein Limit und noch kein Order - weil ich alle Felder und alle Daten darin brauche und diese Tabelle eigens zu diesem Zweck erstellt wurde. Später erstelle ich ein Formular wo ich zusätzliche Daten in diese Tabelle einfügen kann für Tage die auch ausgebelendet werden müssen.
Geändert von sepp (28-04-2011 um 12:27 Uhr)
|

28-04-2011, 12:37
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Geht doch!
So wirds deutlicher!
Ich würde da ganz stumpf ran gehen...
Weg 1:
Alle Daten in ein Array knallen
Die Daten aus der DB in ein anderes.
Array_Filter() darauf los lassen
Weg 2:
Einen DatumIterator basteln
Die Daten aus der DB in ein Array.
Den DatumIterator mit einem FilterIterator dekorieren
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
Ähnliche Themen
|
| Thema |
Autor |
Forum |
Antworten |
Letzter Beitrag |
|
mysql_query
|
Yooda |
PHP Developer Forum |
4 |
13-08-2005 21:32 |
|
mysql_query INSERT INTO
|
Future Soccer |
PHP Developer Forum |
6 |
13-10-2004 15:46 |
|
mysql_query()
|
slomox |
PHP Developer Forum |
11 |
21-04-2004 16:37 |
|
mysql_query
|
muitine |
SQL / Datenbanken |
5 |
18-03-2003 20:40 |
|
Mysql_query
|
Oraj |
PHP Developer Forum |
6 |
07-03-2003 10:57 |
| Themen-Optionen |
|
|
| 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.
HTML-Code ist aus.
|
|
|
|
PHP News
|