
61200
09.02.2008, aktualisiert am 11.02.2008
Vergleich von asynchronen Tabellen
Da bin ich schon wieder ;).
Mein erstes CMS ist fast fertig bis auf mein Update Formular.... nachdem ihr mir vor kurzem so gut geholfen habt bin ich nun erneut ins stocken geraten, ich probiere seit heute Morgen 9 UHR daran herum.
Unten findet ihr meinen letzten Stand, zwischendurch war es mal besser, aber nie 100%ig... also unfertiger nicht funktionierender code, oft aus Testzwecken umgebaut, natürlich mittendrin auch kein SVN COMMIT ausgeführt.
Naja zu meinem Problem
Im User hinzufügen Formular gebe ich Sprachen, Kennzeichen und andere als Checkboxen aus, diese checkboxen sind dynamisch, sprich man hat die Möglichkeit in meinem Skript der Datenbank weitere Sprachen und Kennzeichen hinzuzufügen, sprich sowohl mein Update User als auch mein user neu-anlegen Formular sind teildynamisch.
User einpflegen klappt alles ohne Probleme.
Jetzt habe ich das gleiche Formular zum "user ändern" und füttere es vorab mit den Daten die der User hat oder eben nicht hat.
Klappt auch soweit bei allen nicht dynamischen Checkboxen und Eingabefeldern.
Ich kriege es nicht hin die Sprachen die der User hat mit allen existierenden Sprachen zu vergleichen um anschließend bei denen die gleich sind die checkbox mit dem attribut checked="checked" auszugeben.
Tabellen:
Sprachen:
sprach_id,sprache
zu_sprachen (hier wird die user_id und die sprach_id verknüpft wenn dieser User eine der sprachen gewählt hat)
sprach_id,user_id
Ergebnis soll nun sein das er mir alle Checkboxen von allen Sprachen ausgibt die existieren so wie in meinem User hinzufügen Formular hier:
Nur das die Sprachen die dem User schon gegeben wurden das Attribut checked="checked" bekommen.
Sprachen wählen<br>
<?php
$result = mysql_query("SELECT * FROM sprachen");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$row_trimmed = str_replace(" ","_",$row[1]);
?>
<input type="checkbox" name="box_sprachen" value="<?php echo $row_trimmed; ?>"> <?php echo $row[1]; ?> <br>
<?php
}
Wenn ich beide Tabellen miteinander vergleiche klappt das nicht, da asynchron weil die sprachen die der user hat nicht mit der gesamtanzahl der verfügbaren sprachen übereinstimmt.
Ich hab bald alles probiert und steh kurz davor meine Monitore aus dem Fenster zu werfen ;).
Einzige Lösung die mir einfällt wäre, alle nicht gewählten Sprachen mit "0" in die "zu_sprachen" tabelle einzupflegen, das würde diese aber nur unnötig füllen.
Unten mein letzter Stand meiner Versuche...... ich denke der Code ist eher für die Tonne da ich so viel probiert habe...
PS: Habt ihr eine Spendemöglichkeit?
Sprachen wählen<br>
<?php
//Ermitteln der Sprachen
$db_anzahl = mysql_query("select count(sprach_id) from sprachen");
$anzahl = mysql_fetch_array($db_anzahl, MYSQL_NUM);
$db_user_sprachen=mysql_query("select sprachen.sprache from zu_sprachen, sprachen where zu_sprachen.sprach_id = sprachen.sprach_id and zu_sprachen.user_id=\"$user_id\"");
$x=1;
for($i=1;$i<=$anzahl;$i++){
$db_alle_sprachen=mysql_query("select * from sprachen where sprach_id=\"$x\" order by sprach_id asc");
$alle_sprachen=mysql_fetch_array($db_alle_sprachen);
$user_sprachen=mysql_fetch_array($db_user_sprachen);
$db_sprachen= mysql_query("select * from sprachen where sprache=\"$user_sprachen\" order by sprach_id asc");
$db_sprachen2= mysql_query ("select * from sprachen where sprache=\"$user_sprachen\" order by sprach_id asc");
$sprachen= mysql_fetch_array($db_sprachen);
$sprachen2= mysql_fetch_array($db_sprachen2);
$db_alle_sprachen=mysql_query("select * from sprachen");
$row_trimmed = str_replace(" ","_",$alle_sprachen[1]);
echo "alle sprachen: <br>" . $alle_sprachen[1] ."<br>";
if ($sprachen[1]!="")
{
echo $sprachen;
echo "if: <br>";
}
if ($sprachen1==$alle_sprachen)
{
echo "if2: <br>";
}
$x++;
}
?>
Mein erstes CMS ist fast fertig bis auf mein Update Formular.... nachdem ihr mir vor kurzem so gut geholfen habt bin ich nun erneut ins stocken geraten, ich probiere seit heute Morgen 9 UHR daran herum.
Unten findet ihr meinen letzten Stand, zwischendurch war es mal besser, aber nie 100%ig... also unfertiger nicht funktionierender code, oft aus Testzwecken umgebaut, natürlich mittendrin auch kein SVN COMMIT ausgeführt.
Naja zu meinem Problem
Im User hinzufügen Formular gebe ich Sprachen, Kennzeichen und andere als Checkboxen aus, diese checkboxen sind dynamisch, sprich man hat die Möglichkeit in meinem Skript der Datenbank weitere Sprachen und Kennzeichen hinzuzufügen, sprich sowohl mein Update User als auch mein user neu-anlegen Formular sind teildynamisch.
User einpflegen klappt alles ohne Probleme.
Jetzt habe ich das gleiche Formular zum "user ändern" und füttere es vorab mit den Daten die der User hat oder eben nicht hat.
Klappt auch soweit bei allen nicht dynamischen Checkboxen und Eingabefeldern.
Ich kriege es nicht hin die Sprachen die der User hat mit allen existierenden Sprachen zu vergleichen um anschließend bei denen die gleich sind die checkbox mit dem attribut checked="checked" auszugeben.
Tabellen:
Sprachen:
sprach_id,sprache
zu_sprachen (hier wird die user_id und die sprach_id verknüpft wenn dieser User eine der sprachen gewählt hat)
sprach_id,user_id
Ergebnis soll nun sein das er mir alle Checkboxen von allen Sprachen ausgibt die existieren so wie in meinem User hinzufügen Formular hier:
Nur das die Sprachen die dem User schon gegeben wurden das Attribut checked="checked" bekommen.
Sprachen wählen<br>
<?php
$result = mysql_query("SELECT * FROM sprachen");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$row_trimmed = str_replace(" ","_",$row[1]);
?>
<input type="checkbox" name="box_sprachen" value="<?php echo $row_trimmed; ?>"> <?php echo $row[1]; ?> <br>
<?php
}
Wenn ich beide Tabellen miteinander vergleiche klappt das nicht, da asynchron weil die sprachen die der user hat nicht mit der gesamtanzahl der verfügbaren sprachen übereinstimmt.
Ich hab bald alles probiert und steh kurz davor meine Monitore aus dem Fenster zu werfen ;).
Einzige Lösung die mir einfällt wäre, alle nicht gewählten Sprachen mit "0" in die "zu_sprachen" tabelle einzupflegen, das würde diese aber nur unnötig füllen.
Unten mein letzter Stand meiner Versuche...... ich denke der Code ist eher für die Tonne da ich so viel probiert habe...
PS: Habt ihr eine Spendemöglichkeit?
Sprachen wählen<br>
<?php
//Ermitteln der Sprachen
$db_anzahl = mysql_query("select count(sprach_id) from sprachen");
$anzahl = mysql_fetch_array($db_anzahl, MYSQL_NUM);
$db_user_sprachen=mysql_query("select sprachen.sprache from zu_sprachen, sprachen where zu_sprachen.sprach_id = sprachen.sprach_id and zu_sprachen.user_id=\"$user_id\"");
$x=1;
for($i=1;$i<=$anzahl;$i++){
$db_alle_sprachen=mysql_query("select * from sprachen where sprach_id=\"$x\" order by sprach_id asc");
$alle_sprachen=mysql_fetch_array($db_alle_sprachen);
$user_sprachen=mysql_fetch_array($db_user_sprachen);
$db_sprachen= mysql_query("select * from sprachen where sprache=\"$user_sprachen\" order by sprach_id asc");
$db_sprachen2= mysql_query ("select * from sprachen where sprache=\"$user_sprachen\" order by sprach_id asc");
$sprachen= mysql_fetch_array($db_sprachen);
$sprachen2= mysql_fetch_array($db_sprachen2);
$db_alle_sprachen=mysql_query("select * from sprachen");
$row_trimmed = str_replace(" ","_",$alle_sprachen[1]);
echo "alle sprachen: <br>" . $alle_sprachen[1] ."<br>";
if ($sprachen[1]!="")
{
echo $sprachen;
echo "if: <br>";
}
if ($sprachen1==$alle_sprachen)
{
echo "if2: <br>";
}
$x++;
}
?>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 80347
Url: https://administrator.de/forum/vergleich-von-asynchronen-tabellen-80347.html
Ausgedruckt am: 30.04.2025 um 15:04 Uhr
3 Kommentare
Neuester Kommentar