Willkommen in der Webstatt Zum Webstatt Blog und Stories
Bonze am 26.03.06 16:18

dieser code soll mir die einträge zählen, jedoch zeigt er mir , viel zu wenige an, es sind 9 vorhanden, anzeigen tut es aber nur2 !!
<?php
$mysql['handle'] = mysql_pconnect($mysql['host'], $mysql['user'], $mysql['pass']);
mysql_select_db($mysql['root']);
#####
$query = mysql_query('SELECT * FROM `'.$mysql['table'].'` ORDER BY `id` DESC');
while($row = mysql_fetch_assoc($query)) {

$ID = $row['ID'];
$query2 = mysql_query("SELECT COUNT(*) cnt FROM news_comments WHERE NewsID=$ID");
$data = mysql_fetch_assoc($query2);
$anzahlKommentare = $data['cnt'];


echo"anzahl der einträge blablabla,.";
}?>

weiss jemand woran das liegen könnte?

netcup.de Warum gibt es hier Werbung?
Franky Franky am 26.03.06 16:24

vll sind zwar 9 einträge in der tabelle, aber du sagst dem ja auch das er vll nur 2 anzeigen soll, da: WHERE NewsID=$ID
kannst das ja zum testen auch einfach mal wegmachen...

TheDoom TheDoom am 26.03.06 16:32

ich bevorzuge da eher mysql_num_rows()....

Bonze am 26.03.06 16:47

mhh hat sich eben erledigt :D

danke aber trotzdem

hab jedoch ein andere prob, und zwar bekomm ich hierdrin nen fehler "supplied argument is not a mysql resource"
<?php mysql_select_db($mysql['root']);
$query = mysql_query('SELECT * FROM `'.$mysql['table'].'` WHERE NewsID=$ID');

while($row = mysql_fetch_assoc($query)) {?
>

nuit nuit am 26.03.06 17:17

Überprüfe:


    [*] ist der Benutzername korrekt ?
    [*] ist das Passwort korrekt?
    [*] gibt es die Datenbank ?
    [*] gibt es die Tabelle ?
    [*] gibt es das Feld NewsID in der Tabelle ?


Wenn diese Punkte alle stimmen, tritt der Fehler nicht auf.
Thiemm Thiemm am 26.03.06 17:37

mysql_error() sollte dir weiterhelfen :)

Bonze am 26.03.06 18:33

mhh also hab nochma drübergeschaut aba keine weiteren fehler gefunden
$ID = $row['ID'];
$query = mysql_query('SELECT * FROM news_comments WHERE NewsID='.$ID.' ORDER BY `ID` DESC');
while($row = mysql_fetch_assoc($query)) {


soweit bin ich jetz,...

TheDoom TheDoom am 26.03.06 18:35

mach doch ma nen mysql_error() rein.......

Franky Franky am 26.03.06 18:36

mach mal in z2 ein intval($ID)

Bonze am 26.03.06 19:10

dann bekommich nen parse error, im query ,.

Julian am 26.03.06 19:15

Schreibs einfach mal so:

$query = mysql_query("SELECT * FROM news_comments WHERE NewsID = '".$ID."' ORDER BY ID DESC");

Bonze am 26.03.06 19:35

mhh jetzt bekomm ich zwar keine fehlermeldung mehr jedoch auch keine ausgabe mehr,.

milahu milahu am 26.03.06 21:55

Sicher, dass auch entsprechende Datensätze in der Datenbank sind? Sonst wär's ja irgendwie witzlos.

Franky Franky am 26.03.06 22:02

echo $ID?
echo mysql_error($connection) sagt nix?

Bonze am 27.03.06 12:55

echo $ID; geht
das andere hab ich so noch nich ausprobiert, allerdings kann ichs auch erst heut abend , da ich im mom noch aufer arbeit bin :(

mhh , so sieht mein code aus , <?php
// Der MySql-Server
$mysql['host'] = 'localhost';
// Der MySql-Benutzer
$mysql['user'] = 'root';
// Und das dazugehörige Passwort...
$mysql['pass'] = '';
// Noch die Datenbank
$mysql['root'] = 'projects';
// Und zu guter letzt die Tabelle
$mysql['table'] = 'news_comments';

// Verbindet zum MySQL-Server
$mysql['handle'] = mysql_pconnect($mysql['host'], $mysql['user'], $mysql['pass']);
// Und wählt die Datenbank aus
mysql_select_db($mysql['root']);
####

$ID = $_GET[id];
echo($ID);
#echo mysql_error($query);
#WHERE NewsID='$ID' ORDER BY ID DESC
$query = mysql_query('SELECT * FROM news_comments WHERE NewsID=$ID ');
while($row = mysql_fetch_assoc($query)) {
echo($ID);

#######uhrzeit umwandeln
$timestamp = $row['Datum'];
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
####
include("functions.php");

echo"
<table width='75%' border='0'>";
echo"<tr>";
echo"<td colspan='2'><a href='mailto:$row[Email]'>$row[Name]</a></td>";
echo"<td colspan='2'>vom $datum-$uhrzeit,'Uhr'</td>";
echo"</tr>";
echo"<tr>";
echo"<td colspan='4'>$row[Inhalt]</td>";
echo"</tr>";
echo"<tr>";
echo"<td>";
echo"</td>";
echo"<td colspan='3'></td>";
echo"</tr>";
echo"</table>\n";
}
?>


so , hab mal das $ID neu definiert, sollte eigentlich GET heissen , weil ich die id im link übergebe,.

Bonze am 27.03.06 20:32

mhh niemand nioch ne idee? bin nämlich auch am ende,.

milahu milahu am 27.03.06 21:01

Uargh!! Zum Debuggen IMMER
mysql_query('...') or die(mysql_error());
verwenden!

Dann wärst du früher oder später auch drauf gekommen, dass $ID in einem von einfachen Hochkommas eingefassten String nicht ersetzt wird. Das geht so nur mit doppelten Anführungszeichen.

Bonze am 27.03.06 21:07

tja dann bekomm ich Unknown column '5' in 'where clause'

milahu milahu am 27.03.06 21:16

Lass dir mal die Anfrage ausgeben.

Bonze am 27.03.06 21:19

wie meinste das? mit welchem befehl?

milahu milahu am 27.03.06 21:44

Du hast die Qual der Wahl zwischen:


    [*]print
    [*]echo
Bonze am 27.03.06 21:46

ja aber meinste den query , weil ne normale ausgabe mit den rows hab ich ja schon ,.

sry aber ich versteh grad garned weas du meinst , was ich ausgeben soll(steh voll aufem schlauch)

milahu milahu am 27.03.06 22:18

Du sollst einfach das Argument von mysql_query() ausgeben lassen...

TheDoom TheDoom am 28.03.06 13:51

*mitn finger auf den code zeig
*zitter
$mysql['root'] = 'projects';
NUR ICH DARF MEINE DATENBANK NAMEN VARIABLEN MIT ROOT BENNEN!!!! DAS HAB ICH MIR SCHON PATENTRECHTLICH SICHERN LASSEN :D :D :D
komisch.. bevor ich das verwendet habe hat das niemand genommen..
jetz jeder 3. oder so Oo
naja..



zum qry ausgeben:
mach ma statt
$query = mysql_query('SELECT * FROM news_comments WHERE NewsID='.$ID);


das hier:
$query = 'SELECT * FROM news_comments WHERE NewsID='.$ID;
echo $query;
$qery = mysql_query($query) or mysql_error();

Bonze am 28.03.06 17:27

mhh dann bekomme ich

SELECT * FROM news_comments WHERE NewsID=.$ID
angezeigt,
wenn ich jedoch $query = 'SELECT * FROM news_comments WHERE NewsID='.$ID.''; drin stehen hab bekomm ich
das richtige angezeigt :)
SELECT * FROM news_comments WHERE NewsID=5
jedoch funztt es trotzdem nit,.

TheDoom TheDoom am 28.03.06 17:29

Quote
Original von Bonze
mhh dann bekomme ich

SELECT * FROM news_comments WHERE NewsID=.$ID

sry nix gegen dich aber.... krichst dus nichma auf die reihe nen code zu kopieren und woanders wieder einzufügen?

naja, gibs denn nen eintrag mit der NewsID 5?

Bonze am 28.03.06 17:41

jo gibt ne news mit der id 5 un nen kommentar mit der news id 5, funzt so leider aber immernoch nicht,

bekomme imernoch alle kommentzare ausgegeben und nich nur die mit der die newdid übereinstimmen :(

TheDoom TheDoom am 28.03.06 17:43

Quote
Original von Bonze
jo gibt ne news mit der id 5 un nen kommentar mit der news id 5, funzt so leider aber immernoch nicht,

bekomme imernoch alle kommentzare ausgegeben und nich nur die mit der die newdid übereinstimmen :(

gib ma bitte den kompletten code her... also so wie dus jetz hast

Bonze am 28.03.06 17:45

<?php
// Der MySql-Server
$mysql['host'] = 'localhost';
// Der MySql-Benutzer
$mysql['user'] = 'root';
// Und das dazugehörige Passwort...
$mysql['pass'] = '';
// Noch die Datenbank
$mysql['root'] = 'projects';
// Und zu guter letzt die Tabelle
$mysql['table'] = 'news_comments';

// Verbindet zum MySQL-Server
$mysql['handle'] = mysql_pconnect($mysql['host'], $mysql['user'], $mysql['pass']);
// Und wählt die Datenbank aus
mysql_select_db($mysql['root']);
####

$ID = $_GET[id];

#WHERE NewsID='$ID' ORDER BY ID DESC
$query = mysql_query('SELECT * FROM news_comments` WHERE NewsID='.$ID.'');
while($row = mysql_fetch_assoc($query)) {

#######uhrzeit umwandeln
$timestamp = $row['Datum'];
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
####
include("functions.php");

echo"
<table width='75%' border='0'>";
echo"<tr>";
echo"<td colspan='2'><a href='mailto:$row[Email]'>$row[Name]</a></td>";
echo"<td colspan='2'>vom $datum-$uhrzeit,'Uhr'</td>";
echo"</tr>";
echo"<tr>";
echo"<td colspan='4'>$row[Inhalt]</td>";
echo"</tr>";
echo"<tr>";
echo"<td>";
echo"</td>";
echo"<td colspan='3'></td>";
echo"</tr>";
echo"</table>\n";
}
?>

TheDoom TheDoom am 28.03.06 17:51

Setz ma alle Tabellennamen und Spaltennamen in `..` gehört sich 1. so und 2. löst es viele probleme..

Bonze am 28.03.06 18:27

jo man merk das es das viele probs löst :) es geht :)

TheDoom TheDoom am 28.03.06 18:52

Quote
Original von Bonze
jo man merk das es das viele probs löst :) es geht :)

sag'sch doch xD np =P

Bonze am 28.03.06 19:01

man hätt ich das gkeich gewusst hött ich mir können ein haufen nerven sparen ,.

TheDoom TheDoom am 28.03.06 20:22

Quote
Original von Bonze
man hätt ich das gkeich gewusst hött ich mir können ein haufen nerven sparen ,.

is jetz mal nich nur an dich, sondern an die ganze welt:

ein ordentlicher programmier stil ersparrt unzählige probleme

wollts nurmal sagen :O

Michael Michael am 29.03.06 12:16

Hmm also ich quote auch nur kritische Tabellen-/Spaltenbezeichner, die eigentlich eh vermieden werden sollen.

War hier wirklich das fehlende Quoten das Problem oder eher ein falsches:

... FROM news_comments[color="red"]`[/color]

Bonze am 29.03.06 13:18

ne das quoten wars problem,.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt