ich in einem Array habe eine Tabelle wie folgt aus:Php: Gruppe und Feld verpasst add
cid plugin lang_id name father
1 Newspage 1 Actualidad 1
1 Newspage 2 News 1
2 Newspage 1 Tecnologia 1
2 Newspage 2 Tech 1
3 Newspage 1 Deportes 1
3 Newspage 2 Sports 1
4 Newspage 1 Ocio 1
In diesem Beispiel gibt es zwei Sprachen (1: Spanisch und 2: Englisch), aber Admin kann weitere Sprachen hinzufügen
Ich möchte einen "Kategorie ändern" Abschnitt und gruppieren sie nach CID mit Eingabefeldern für jede Sprache, wenn Sprache fehlt Ich möchte eine leere Eingabe für die fehlende Sprache anzeigen.
Etwas wie folgt aus: http://i.imgur.com/fGCUgKc.png
Meine tatsächlichen schlechten Code seine dies:
$content = "<div class='catlist'>";
$content .= "<p>{$LANGDATA['L_NEWS_MODIFIED_CATS']}</p>";
$query = $db->select_all("categories", array ("plugin" => "Newspage", "lang_id" => 1));
while ($cat_grouped = $db->fetch($query)) {
$content .= "<form id='cat_mod' method='post' action=''>";
$content .= "<div>";
foreach ($langs as $lang) {
if ($lang['lang_id'] == $cat_grouped['lang_id']) {
$content .= "<label>{$lang['lang_name']}</label> <input type='text' name='{$lang['lang_id']}' value='{$cat_grouped['name']}' />";
} else {
$query2 = $db->select_all("categories", array ("plugin" => "Newspage", "cid" => "{$cat_grouped['cid']}", "lang_id" => "{$lang['lang_id']}"));
if($db->num_rows($query2) <= 0) {
$content .= "<label>{$lang['lang_name']}</label> <input type='text' name='{$lang['lang_id']}' value='' />";
} else {
$other_lang_cat = $db->fetch($query2);
$content .= "<label>{$lang['lang_name']}</label> <input type='text' name='{$lang['lang_id']}' value='{$other_lang_cat['name']}' />";
}
}
}
$content .= "<input type='hidden' name='cid' value='{$cat_grouped['cid']}' />";
$content .= "<input type='submit' name='ModCatSubmit' value='{$LANGDATA['L_NEWS_MODIFY']}' />";
$content .= "</div></form>";
}
$content .= "</div>";
Dieses:
$db->select_all(...);
mittlere $ db-> select_all ("table", $ WO, ...)
ich wan t, um alle Inhalte in einer Abfrage abzurufen und die Arbeit in php
Mein tatsächlicher Code ist es eindeutig sehr schlecht und angenommen, lang_id=1
existiert für jeden Eintrag und tun einige Abfrage huh!
Mein alten Code verwenden „GROUP BY cid“ für die erste Abfrage und nicht verwenden müssen „lang_id = 1“, aber nach einem System-Upgrade dieser Zeile gibt den Fehler:
berichtet: Expression # 3 von SELECT-Liste ist nicht in der GROUP BY-Klausel und enthält nicht aggregierte Spalte
und möchte das nicht noch einmal verwenden.
irgendeine idee der beste weg dafür?
Ich weiß nicht, wie die anderen, aber meine Antwort auf Ihre Frage nicht klar ist, was Sie wirklich wollen. Ich schlage vor, Sie interveniert Eingabe-Array, und Sie möchten erhalten oder ausgeben. – rad11
besserer Code, mein tatsächlicher Code (ich poste es) sein sehr schlechtes und involve wenige Fragen ... – knack