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!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
22.05.2013, 16:21:30
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: MySQL Abfrage in einer For-Schleife
Zitat:
Zitat von sysop
[..]
Das nächste mal lassen wir das editieren der Posts, dann klappt das sicher etwas schneller.
|
So hat jeder was von Euch beiden gelernt. ;-)
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
22.05.2013, 16:31:53
|
Anfänger
|
|
Registriert seit: May 2013
Alter: 53
Beiträge: 16
|
|
AW: MySQL Abfrage in einer For-Schleife
ich hab ne kölsche tastatur :-)
sind wir jetzt alle im Eimer ??? *lach*
und ich hab schon wieder ein problem :-) *lach*
mit folgendem Code
PHP-Code:
for( $i = 1; $i <= $_REQUEST['anzahl']; $i ++ )
{
$query = "SELECT * FROM `kompetenznoten` Where `thema_id` = '". $_POST["thema_id".$i]. "' AND `note` = '". $_POST['note'.$i]."';";
$result = MYSQL_QUERY($query);
while($daten = mysql_fetch_array($result))
{
$id = $daten['id'].",";
}
}
bekomme ich folgende Ausgabe: 1,3,
Wenn ich die $id weiter im Script durch echo $id abfrage bekomme ich nur noch 3, angezeigt....
?????
|
22.05.2013, 16:46:23
|
Anfänger
|
|
Registriert seit: Jul 2011
Alter: 71
Beiträge: 30
|
|
AW: MySQL Abfrage in einer For-Schleife
Zitat:
bekomme ich folgende Ausgabe: 1,3,
|
Ja hättest Du gerne, aber hiermit:
PHP-Code:
$id = $daten['id'].",";
überschreibst Du in der WHILE-Schleife jedesmal die Variable $id, somit steht zum Schluss letztendlich der letzte Wert von $daten['id'] drin ;)
Das 'Wunsch'ergebnis würde so besser aussehen:
PHP-Code:
$id .= $daten['id'].",";
|
22.05.2013, 16:52:52
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: MySQL Abfrage in einer For-Schleife
Zunächst mal...
Du hast schon wieder die Fehlerquelle im Code, dass $result leer sein kann und dann Fehlermeldungen ausgibt, gewöhn dir an, $result auf Existenz abzufragen, und Fehler abzufangen, also:
PHP-Code:
for( $i = 1; $i <= $_REQUEST['anzahl']; $i ++ ) { $query = "SELECT * FROM `kompetenznoten` Where `thema_id` = '". $_POST["thema_id".$i]. "' AND `note` = '". $_POST['note'.$i]."';"; $result = MYSQL_QUERY($query);
if(!$result) { $query." -> ergibt 0 Ergebnisse"; }
else { $id = array(); while($daten = mysql_fetch_array($result)) { $id[] = $daten['id']; echo $daten['id'].","; // sollte alle ids ausgeben; } $ausgabe_zeug = implode(",",$id); } }
echo $ausgabe_zeug."<br>"; print_r($id);
Ich rate jetzt mal und behaupte, du gibst die id nach dem letzten Schleifendurchlauf aus. Da du $id immer mit dem letzten ausgelesenen Wert füllst, wird dir auch nur der Wert deines letzten gültigen Datensatzes ausgegeben.
Der Code oben erzeugt ein array $id und füllt nach und nach dieses Array an. Nach der Schleife erzeugt es eine ausgabevariable, die alle Ergebnisse durch Kommata getrennt zusammenfasst.
Ich hoffe, das ist was du wolltest
Auch hier gillt, bitte so genau als möglich definieren, was du eigentlich haben möchtest, also wie das Ergebnis aussehen soll. Meine Glaskugel ist derzeit in der Reparatur und dich weiss ja nicht, was du sehen möchtest. :-)
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
|
22.05.2013, 17:04:41
|
Anfänger
|
|
Registriert seit: May 2013
Alter: 53
Beiträge: 16
|
|
AW: MySQL Abfrage in einer For-Schleife
also :-)
ich möchte die id`s getrennt durch kommas haben.... in folgendem Code
PHP-Code:
for( $i = 1; $i <= $_REQUEST['anzahl']; $i ++ )
{
$query = "SELECT * FROM `kompetenznoten` Where `thema_id` = '". $_POST["thema_id".$i]. "' AND `note` = '". $_POST['note'.$i]."';";
$result = MYSQL_QUERY($query);
if(!$result)
{
$query." -> ergibt 0 Ergebnisse";
}
else
{
$id = array();
while($daten = mysql_fetch_array($result))
{
$id[] = $daten['id'];
echo $daten['id'].","; // sollte alle ids ausgeben;
}
$ausgabe_zeug = implode(",",$id);
}
}
Ausgabe hier: 1,3,3
(Gewünscht 1,3)
um...
dann eine weitere Datenbankabfrage ermöglichen zu können.
Das $query sieht wie folgt aus:
PHP-Code:
$query = "SELECT * FROM `kompetenznoten` WHERE `id` IN ('".$ausgabe_zeug."')";
Leider wird mir hier immer die ID mit dem Wert 3 angezeit und nicht wie gewünscht ID 1, 3
|
22.05.2013, 17:18:07
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: MySQL Abfrage in einer For-Schleife
Very Quick und dirty könntest du das schnell so lösen:
PHP-Code:
for( $i = 1; $i <= $_REQUEST['anzahl']; $i ++ )
{
$query = "SELECT * FROM `kompetenznoten` Where `thema_id` = '". $_POST["thema_id".$i]. "' AND `note` = '". $_POST['note'.$i]."';";
$result = MYSQL_QUERY($query);
if(!$result)
{
$query." -> ergibt 0 Ergebnisse";
}
else
{
$id = array();
while($daten = mysql_fetch_array($result))
{
$id[] = $daten['id'];
echo $daten['id'].","; // sollte alle ids ausgeben;
}
// ja das ist doppelt richtig
$id = array_flip($id); // tauscht den Inhalt mit index und filtert so doppelte einträge aus.
$id = array_flip($id); // tauscht wieder inhalt und Index, daher nun alles nur noch einfach vorhanden
$ausgabe_zeug = implode(",",$id);
}
}
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
|
22.05.2013, 17:24:30
|
Anfänger
|
|
Registriert seit: May 2013
Alter: 53
Beiträge: 16
|
|
AW: MySQL Abfrage in einer For-Schleife
Ausgabe = 1,13,3
statt
Ausgabe= 1,3
|
22.05.2013, 17:25:08
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: MySQL Abfrage in einer For-Schleife
Ich antworte mir mal selber, weil das Murks ist, das geht schöner, wollte mir aber partout nicht einfallen:
PHP-Code:
for( $i = 1; $i <= $_REQUEST['anzahl']; $i ++ ) { $query = "SELECT * FROM `kompetenznoten` Where `thema_id` = '". $_POST["thema_id".$i]. "' AND `note` = '". $_POST['note'.$i]."';"; $result = MYSQL_QUERY($query);
if(!$result) { $query." -> ergibt 0 Ergebnisse"; }
else { $id = array(); while($daten = mysql_fetch_array($result)) { $id[] = $daten['id']; // echo $daten['id'].","; // sollte alle ids ausgeben; ist aber als ausgabe überflüssig. } $ergebnis = array_unique($id); $ausgabe_zeug = implode(",",$ergebnis); } }
PS
bin für heute weg, komme morgen früh wieder.....
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
|
22.05.2013, 17:28:41
|
Anfänger
|
|
Registriert seit: May 2013
Alter: 53
Beiträge: 16
|
|
AW: MySQL Abfrage in einer For-Schleife
Ausgabe = 3 statt 1,3
:-)
Trotzdem danke :-)
|
22.05.2013, 18:22:18
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: MySQL Abfrage in einer For-Schleife
Die beiden codezeilen array_unique und das implode gehört wohl hinter die Schleife
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
|
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 17:10:36 Uhr.
|