jetzt nicht mehr
Allgemeine Frage PHP & MySQL
Einklappen
X
-
Die Sache ist noch nicht gelöst
Ich suche wie schon bereits erwähnt ne Lösung für das
in einer Tabelle die Daten mit den ungeraden Zahlen (1,3,5,7) und in ne anderen Tabelle die Daten mit geraden Zahlen (2,4,6,8) ausgeben.
Und die Lösung von TobiaZ
WHERE `id` % 2
Kommentar
-
ja und?
du willst alle datensätze. die zu holen ist kein problem.
du musst sie nur noch auf zwei tabellen aufteilen. sollte mit dem % 2 kein problem sein. setz es in PHP um.
Guck auch mal nach spaltenweise. da siehst du ansätze, wies gehen kann.
Kommentar
-
o.k. muss ich um die Daten aus der SQL-Datenbank zu holen eigentlich ímmer mit while beginnen oder kann ich die Daten auch mit for holen.
Ein Lösungsansatz ist:
PHP-Code:$i=0
if ($i%2){
echo //Alle ungeraden Datensätze}
{
echo // Alle geraden Datensätze
$i++}
Nach Spaltenweise habe ich schon gesucht, bin aber nicht wirklich weitergekommen.
Kommentar
-
holen tust du mit mysql_query.
aber verarbeiten kannst du sieh natürlich auch mit for. aber erzähl mir bitte nicht, dass das einfacher/schneller wäre...
damit man dir helfen kann, müsstest du aber schon den konkreten code posten. Ich vermute mal, dass du mal wieder die $is an ner unlogischen stelle positioniert hast.
Kommentar
-
Hallo,
also zuerst mal danke für die Hilfe, habe irgendwie nen Knoten im Hirn von lauter for und while,
folgender Lösungsansatz der wie nicht anders erwartet nicht funktioniert:
PHP-Code:<?php
$verbindung = mysql_connect("","","");
mysql_select_db("url");
$abfrage ="SELECT * FROM zeilen";
$ergebnis = mysql_query($abfrage);
$i=0;
$row = mysql_fetch_array ($ergebnis,MYSQL_ASSOC);
$uber=$row['zahl'];
$nach=$row['text'];
if ( $i%2 )
{
echo "$uber <br>";
echo "$nach <br>";}
{
echo "Hallo";
$i++;
}
?>
2. wird der Wert nicht erhöht
3. wird wenn $I=1 nur der erste Datensatz ausgegeben und nicht wie eigentlich gewollt der erste und der dritte Datensatz.
Ich glaube ich bin einfach nur zu blöd die Logik zu verstehen.
Kommentar
-
Eine andere Möglichkeit wäre ja auch folgende, die sogar ich hinbekomme:
Code:<html> <table border=1 align=left> <tr> <td>Tabelle Platzhalter für später</td> </tr> <table border=1 align=left> <?php $verbindung = mysql_connect("","",""); mysql_select_db("url"); $abfrage ="SELECT * FROM zeilen where auswahl='links'"; $ergebnis = mysql_query($abfrage); while ($row = mysql_fetch_array ($ergebnis,MYSQL_ASSOC)) { echo "<tr><td>$row[zahl]</td>"; echo "</tr><tr>"; echo "<td>$row[text]</td></tr>"; } echo "</table>"; echo "<table border=1>"; mysql_select_db("url"); $abfrage ="SELECT * FROM zeilen where auswahl='rechts'"; $ergebnis = mysql_query($abfrage); while ($row = mysql_fetch_array ($ergebnis,MYSQL_ASSOC)) { echo "<tr><td>$row[zahl]</td>"; echo "</tr><tr>"; echo "<td>$row[text]</td></tr>"; } ?> </table> </table> </html>
Kommentar
-
Hier noch mal ein Versuch, aber bei den Schleifen habe ich noch kleine Probleme mit dem Durchblick
PHP-Code:verbindung = mysql_connect("","","");
mysql_select_db("url");
$abfrage ="SELECT * FROM zeilen";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_array ($ergebnis);
$count = count( $row );
$spalten = 2;
$zeilen = ( $count % $spalten )?( ( $count - ( $count % $spalten ) ) / $spalten + 1 ):$count / $spalten;
echo "<table width=\"100%\">\n";
while ($row = mysql_fetch_array ($ergebnis);
for( $i = 0;$i < $zeilen; ++$i ) {
echo "\t<tr>\n";
for( $ii = 0;$ii < $spalten; ++$ii ) {
echo "\t\t<td>" . ( isset( $row[text] )?$row[text]:" " ) . "</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>";
Arrays geht aber sobald die Datenbank ins Spiel kommt bekomme ich Probleme.
Kommentar
-
aber bei den Schleifen habe ich noch kleine Probleme mit dem Durchblick
Aber wieso machst du jetzt auf einmal zwei schleifen. Wie wäre es, wenn du mal EINE nimmst. und die logisch einsetzt und nicht einfach so.
du kannst imprinzip jedes PHP-Teil in Pseudocode übersetzen.
in der form
solange es eine nächste spalte gibt,
mach mal echo
vielleicht hilft dir das um die logik hinter der programmierung zu entdecken.
Kommentar
-
Mein Problem liegt darin, dass der Counter einen falschen Wert auswirft und mir viermal der gleiche Datensatz ausgeworfen wird.
Meinst Du mit zwei Schleifen die beiden for Schleifen oder die while und die for Schleife? Die for Schleifen brauche ich doch um einmal die Zeilen zu generien und um einmal die Spalten zu genieren oder habe ich da einen Denkfehler?
Das Problem mit der Datenbank ist z.b. dass er mir logischerweise viermal den gleichen Tabelleninhalt ausgibt:
Wie bekomme ich das hin dass mit alle Daten der Tabelle ausgeworfen werden und nicht nur einer. In einem Array funktioniert das ja z.B. so
PHP-Code:$x=Array(1,2,3,4,5,6)
echo $X[0];
echo $x[1];
Kommentar
Kommentar