tag:forum.selfhtml.org,2005:/self
php problem mit mysqli_query – SELFHTML-Forum
2018-06-14T08:30:16Z
https://forum.selfhtml.org/self/2018/jun/14/php-problem-mit-mysqli-query/1724677#m1724677
hannes2
2018-06-14T08:12:40Z
2018-06-14T20:11:44Z
php problem mit mysqli_query
<p>Hallo,
ich bin bereits den zweiten Tag am gleichen Problem, und finde die Lösung nicht (was ich nicht alles probiert habe!).</p>
<p>Ich möchte, dass eine Navigation dynamisch erweitert wird. Wenn z.B. ein neues Dokument hochgeladen wurde (inkl. DB-Eintrag), soll dieses Dokument als Navigationspunkt aufgeführt werden.
Die Navigation sieht so aus (Ausschnitt):</p>
<pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>#<span class="token punctuation">'</span></span><span class="token punctuation">></span></span>Mitteilungen<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ul</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ul</span><span class="token punctuation">></span></span>";
$query1 = "SELECT * FROM dokumente WHERE dir='Mitteilungen' AND thema='Publikationen Schulpflege' ORDER BY unix_time";
$RES = mysqli_query($connect,$query1);
while(list($dokumentID[],$dateiname[],$dokuName[]) = mysqli_fetch_array($RES,MYSQLI_BOTH));{
$max_num = count($dokuName);
$max_num = $max_num -1;
for($i=0;$i<$max_num;$i++){
echo "
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token punctuation">"</span>.$quellverzeichnis.$dateiname[$i]."<span class="token punctuation">'</span></span> <span class="token special-attr"><span class="token attr-name">onFocus</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token value javascript language-javascript"><span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">blur</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span><span class="token punctuation">'</span></span></span><span class="token punctuation">></span></span>".$dokuName[$i]."<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>../Grafik/pdf_small.gif<span class="token punctuation">'</span></span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token value css language-css"><span class="token property">margin</span><span class="token punctuation">:</span>0 0 -2px 3px<span class="token punctuation">;</span> <span class="token property">border</span><span class="token punctuation">:</span>0<span class="token punctuation">;</span></span><span class="token punctuation">'</span></span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>pdf-Datei<span class="token punctuation">'</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span>
";
}
}
echo"
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ul</span><span class="token punctuation">></span></span>".$Publikationen_Schulpflege."
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ul</span><span class="token punctuation">></span></span>";
$query2 = "SELECT * FROM dokumente WHERE dir='Mitteilungen' AND thema='amtliche Publikationen' ORDER BY unix_time";
$RES = mysqli_query($connect,$query2);
while(list($dokumentID[],$dateiname[],$dokuName[]) = mysqli_fetch_array($RES,MYSQLI_BOTH));{
$max_num = count($dateiname);
$max_num = $max_num -1;
for($i=0;$i<$max_num;$i++){
echo "
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token punctuation">"</span>.$quellverzeichnis.$dateiname[$i]."<span class="token punctuation">'</span></span> <span class="token special-attr"><span class="token attr-name">onFocus</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token value javascript language-javascript"><span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">blur</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span><span class="token punctuation">'</span></span></span><span class="token punctuation">></span></span>".$dokuName[$i]."<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>../Grafik/pdf_small.gif<span class="token punctuation">'</span></span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token value css language-css"><span class="token property">margin</span><span class="token punctuation">:</span>0 0 -2px 3px<span class="token punctuation">;</span> <span class="token property">border</span><span class="token punctuation">:</span>0<span class="token punctuation">;</span></span><span class="token punctuation">'</span></span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>pdf-Datei<span class="token punctuation">'</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span>
";
}
}
echo"
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ul</span><span class="token punctuation">></span></span>".$amtliche_Publikationen."
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ul</span><span class="token punctuation">></span></span>";
$query3 = "SELECT * FROM dokumente WHERE dir='Mitteilungen' AND thema='Medienmitteilungen' ORDER BY unix_time";
$RES = mysqli_query($connect,$query3);
while(list($dokumentID[],$dateiname[],$dokuName[]) = mysqli_fetch_array($RES,MYSQLI_BOTH));{
$max_num = count($dateiname);
$max_num = $max_num -1;
for($i=0;$i<$max_num;$i++){
echo "
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token punctuation">"</span>.$quellverzeichnis.$dateiname[$i]."<span class="token punctuation">'</span></span> <span class="token special-attr"><span class="token attr-name">onFocus</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token value javascript language-javascript"><span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">blur</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span><span class="token punctuation">'</span></span></span><span class="token punctuation">></span></span>".$dokuName[$i]."<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>../Grafik/pdf_small.gif<span class="token punctuation">'</span></span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span><span class="token value css language-css"><span class="token property">margin</span><span class="token punctuation">:</span>0 0 -2px 3px<span class="token punctuation">;</span> <span class="token property">border</span><span class="token punctuation">:</span>0<span class="token punctuation">;</span></span><span class="token punctuation">'</span></span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>pdf-Datei<span class="token punctuation">'</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span>
";
}
}
echo"
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ul</span><span class="token punctuation">></span></span>".$Medienmitteilungen."
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span>
</code></pre>
<p>Das sichtbare Resultat in der Navigation ist nicht wie erwüncht. Statt dass jeweils im entsprechenden <li> nur die Dokumente (entsprechend der DB-Afrage) angezeigt werden, werden alle Dokumente (alles, was im $RES-array ist) aufsummiert.</p>
<p>Ich hoffe, dass mein Anliegen verständlich formuliert ist. Vielleicht kann mir hier jemand helfen.</p>
https://forum.selfhtml.org/self/2018/jun/14/php-problem-mit-mysqli-query/1724678#m1724678
dedlfix
2018-06-14T08:27:53Z
2018-06-14T08:27:53Z
php problem mit mysqli_query
<p>Tach!</p>
<blockquote>
<p>Das sichtbare Resultat in der Navigation ist nicht wie erwüncht. Statt dass jeweils im entsprechenden <li> nur die Dokumente (entsprechend der DB-Afrage) angezeigt werden, werden alle Dokumente (alles, was im $RES-array ist) aufsummiert.</p>
</blockquote>
<p>Das ist aus der Sicht des Anwenders. Aber du bist der Programmierer und musst das Problem aus Programmierersicht untersuchen, damit du da weiterkommst. Also à la: In Zeile A erwarte ich in Variable / als Funktionsergebnis B den Wert C, bekomme aber D.</p>
<p>Du könntest dann merken, dass du zwar zeilenweise das Ergebnis aus der Datenbank holst, aber dann für jede Zeile über die gesamte bisherige Menge läufst und die Ausgabe machst. Natürlich wächst diese Menge mit jeder Fetch-Zeile. Aber eigentlich möchtest nur mit jedem Fetch die geholte Zeile ausgeben und dann mit dem nächsten Fetch fortfahren, genauso wie es die <a href="http://php.net/manual/en/mysqli-result.fetch-assoc.php" rel="noopener noreferrer">Beispiele im PHP-Handbuch</a> zeigen.</p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2018/jun/14/php-problem-mit-mysqli-query/1724679#m1724679
hannes2
2018-06-14T08:30:16Z
2018-06-14T08:30:16Z
php problem mit mysqli_query
<p>Entschuldigung, ich glaube, ich habe soeben das Problem selbst gelöst.
Ich habe vor jede DB-Abfrage die Arrays mit unset() geleert.</p>