PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQL/MySQLi (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Mysql DB ausgabe Problem - hilllfffeee- (http://www.selfphp.de/forum/showthread.php?t=7850)

inkvc17 01.06.2004 17:59:29

Mysql DB ausgabe Problem - hilllfffeee-
 
Hallo,

bin Php Anfänger und versuche eine mysql abfrage zu realisieren die mir folgende daten ausgeben in einer tabelle mit 3 spalten ausgeben soll:

<tr>
<td>test1:</td>
<td>wert1</td>
<td>test2:</td>
<td>wert2</td>
<td>test3:</td>
<td>wert3</td>
</tr>

bzw so:

test1: wert1 test2: wert2 test3: wert3


ich habe das ganze bis jetzt soweit das er mir folgendes ausgbit:

test1: wert1 test1: wert1 test1: wert1
test2: wert2 test2: wert2 test2: wert2

ich weiss nicht was ich falsch mache, könnte sich bitte mal jemand den quelltext ansehen und mir kurz erklären was ich falsch mache?? bitte denkt dran ich bin anfänger*g*


PHP-Code:


$string 
"select * from template where name = '$cattpl'";
$result mysql_query ($string);
 
$row mysql_fetch_array($result);

while (
$zub 15)
{

 
$zub $zub 1;
 
$fieldname "z" $zub;
 
$tmpfield1z "z" $zub "_caption";


 
$caption_zub $row["$tmpfield1z"];




    print (
"<tr class=text>");
for (
$j =1$j <=2$j++){
    print(
"<td height=5>$caption_zub: "); if ($zubid[$zub] == 1) {print "<img src=aktiv.gif border=0></td>";}
}
    print (
"</tr>");
    
    


wäre super super nett wenn ihr mir weiterhelfen könntet

Corvin 01.06.2004 18:03:37

Joa, da ist einiges Falsch. Guck dir doch am besten mal ein kleines Tutorial zu diesem Thema an (hier).

inkvc17 01.06.2004 18:23:52

danke erstmal für den link aber der bringt mich nicht sehr viel weiter, ister fehler wirklich so gross? die ausgabe funktioniert soweit ja sehr gut nur er teilt das ganze leider nicht so in der tabelle auf wie ich mir das denke

Corvin 01.06.2004 18:31:06

Also ich finde deinen Code sehr umständlich, deswegen mal son kleines Beispiel:

PHP-Code:

<?php
$sqlhost
='localhost';
$username='';
$passwort='';
$database='';

mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$abfrage "SELECT * FROM news ORDER BY id DESC";
$ergebnis mysql_query($abfrage) or die( mysql_error() );
while(
$row mysql_fetch_array($ergebnis))
    {
    echo 
"<table width=500 align=center border=1 bordercolor=#000000 cellpadding=2 cellspacing=0 class=rahmen bgcolor=#e1e1e1><tr><td colspan='2' valign=top bgcolor=#c5c5c5 style='font-size:12px;'><b>" .$row["titel"] ."</b></td></tr>";
    echo 
"<tr><td width=150 class=rahmen valign=top bgcolor=#cecece><b>Verfasser:&nbsp;</b><a href=mailto:" .$row["verfassermail"] .">" $row["verfasser"] ."</a><font color=#c5c5c5>" .$row["id"] ."</font></td>";
    echo 
"<td width=350 class=rahmen valign=top>" .$row["newstext"] ."</td></tr></table><br>";
    }

?>

Das ist der Code von einem einfachen Script das auch mit Tabellen arbeitet und die Daten aus der DB dort hineinschreibt.

inkvc17 01.06.2004 18:39:53

das versteh ich soweit ja uch schon, ich erkläre mal kurz das prinzip meines scriptes. es handelt sich um einen anzeigenmarkt in in meinem fall gibt es eine liste von 30 austattungsmerkmalen die der kunde beim inserieren ankreuzen kann. d.h. wenn er ein merkmal hat wird der wert in der db auf 1 also vorhanden gesetzt. in meiner ausgabe erscheinen dann alle 30 merkmale in einer tabelle (30 werte unter bzw nebeneinander ist keine problem) jenachdem ob vorhanden oder nicht mit einem häkchen. so nun ist es aber etwas bläde wenn alle 30 werte untereinander stehen ale wollte ich das ganze aus 3 spalte aufteilen
also so das in jeder spalte 10 werte stehen nur das bekomme ich nicht hin ich vermute mal das dies irgendwie mit "for" gehen muss.

chris17 01.06.2004 19:26:52

Huhu,

der Modulo-Operator "%" hilft hier weiter.

Ein Bsp.:
PHP-Code:

/*
    Nur zum Test, ein Array mit 30 Werten fuellen...
*/
for ($i $i <31$i++) {
    
$row[] = $i;
}


$anz_pro_spalte 10;

echo 
'<table border="1">'."n";

for (
$i 0$i count($row); $i++) {
    
/*
        Mit Modulo berechnen, wann ein <tr> eingefuegt werden soll...
    */
    
if ($i $anz_pro_spalte == 0) {
        echo 
'<tr>'."n";
    }    
            echo 
'<td>';
            echo 
$row[$i];
            echo 
'</td>'."n";
            
    if (
$i $anz_pro_spalte == $anz_pro_spalte 1) {
        echo 
'</tr>'."n";
    }            
}

echo 
'</table>'

Gruss

chris17

P.S.: @inkvc17 Du hast 'ne nette Zahl in Deinem Nick :-)

inkvc17 01.06.2004 20:08:26

danke ;-) aber warscheinlich bin ich zu doof dafür kannst du dir bitte mal den quellcode ansehen und mir das genau erläutern ich check es ned mehr ab *heul*

chris17 02.06.2004 14:01:39

Hi inkvc17,

bin mir nicht sicher, ob es genau Deine Werte wiedergibt...
Die Richtung sollte aber schon stimmen.
PHP-Code:

$row mysql_fetch_array($result);

$anz_pro_spalte 10;

echo 
'<table border="1">'."n";

for (
$i 0$i count($row); $i++) {
    
/*
        Mit Modulo berechnen, wann ein <tr> eingefuegt werden soll...
    */
    
if ($i $anz_pro_spalte == 0) {
        echo 
'<tr>'."n";
    }    
            
            echo 
'<td>';
            
$fieldname 'z' . ++$i;
            echo 
$fieldname;
            echo 
'</td>';
            
            echo 
'<td>';
            
$tmpfield1z 'z' . ++$i '_caption';
            echo 
$row[$tmpfield1z]; # ohne die -> "
            /*
                Hier kommt dann die Abfrage fuer das GIF
            */
            
echo '</td>'."n";
            
    if (
$i $anz_pro_spalte == $anz_pro_spalte 1) {
        echo 
'</tr>'."n";
    }            
}

echo 
'</table>'

Grüsse

chris17


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:09:34 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.